AVR SPI Slave problem

Karel Minarčík karel.minarcik na gmail.com
Pondělí Únor 28 08:53:26 CET 2011


Zdravim, mam nasledujici problem:

Mam AVR mega16 zapojene na SPI sbernici jako slave.  Pomoci jineho mcu z AVR
vycitam paket nekolika byte.

Abych co nejlepe obslouzil vysilani, tak mam AVR misto slave na sbernici
nastaven jako master, ale nevysila.
Je povoleno preruseni SPCR =
(1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1<<CPOL)|(1<<CPHA) a v momente kdy skutecny
master na SPI shodi /SS u AVR, tak AVR se hardwarove samo prepne do rezimu
slave a vyvola se preruseni jako od dokonceneho prenosu znaku. Uvnitr
preruseni zakazu globalni preruseni (cli) Nasledne mam dost casu na to
pripravit data atd. Ve smycce pockam az si master odclockuje znak, prectu si
jej a vzdy pak hned jen do SPDR nahraju dalsi znak na vysilani. Na konci
paketu zas povolim SPI master a preruseni.
Funguje to, az na to, ze treba sto paketu prenesu bez problemu a pak jeden
je spatny (posunuty). Zjistil jsem pomoci log. analyzeru ze v AVR se
vyvolalo preruseni pozde, az po prijmu prvniho byte a ne hned po shozeni
/SS. Testoval jsem ten prenos kdyz byly veskere ostatni preruseni zakazane,
zadny program krome nekonecne smycky se nevykonaval, nic jineho to zpozdit
nemuze.
Nevite cim to muze byt?

Diky

KM
------------- dal?í ?ást ---------------
HTML p?íloha byla odstran?na...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20110228/d3cbd75b/attachment.htm>


Další informace o konferenci Hw-list