AVR DS1302 & SPI

Jan Waclawek konfera@efton.sk
Pátek Září 5 10:16:11 CEST 2008


>Jj, to jsem pochopil, ale mozna jsem nepochopil vsechno nebo mi unikl
>princip....
>Dejme tomu, ze master napriklad posila najednou 3 byty a ocekava  pak 4 
>- predpokladam, ze hodiny generuje jen master 
>- s odesilanim master->slave neni problem, v okamziku, kdy se vyprazni
>buffer, vrazi tam dalsi znak a ten se predpokladam odesle, slave ma vzdy
>cas behem prijmu dalsiho znaku odebrat predchozi
>- pokud chce master cist ze slave, myslim, ze se chova stejne jako pri
>vysilani, tzn. Zapise do vysilaciho bufferu neco a toto se odesle a
>zaroven se prijme aktualni buffer slave. No ale jak si slave nacasuje,
>ze nezapise 2-4. byte do bufferu pozde nebo uz nekde v rozpracovanem
>byte, pokud se nekde zdrzi? Dle DS mam dojem, ze tam neni zadny registr,
>ktery by se synchronne prepisoval do shift registru ale ze se zapisuje
>primo do shift registru.  Nebo se mylim?

Ano, zrejme to tak je (este som to neskusal). A co? Myslite si, ze som na tych norskych studentov nadaval len tak (vid thread v juni o I2C a.k.a. TWI)? Proste su neskuseni a je to vidiet. Je sice appnote AVR151, ale je velmi povrchny (co ma neprekvapuje) a prilozeny software obsahuje len slave receive, co je trivialne.

Koliznym zapisom do vysielacieho registra pocas prenosu by mal branit hardware s naslednym nastavenim bitu WCOL. Ako to presne funguje, kedy sa u slave poklada prenos za zahajeny a co robit ked kolizia nastane, tak to som sa nedocital, ostava laborovat. 

Samozrejme master moze zahajit prenos kedykolvek, t.j. aj pred tym ako zapise slave novy byte do vysielaciaho registra, takze ostava len bud off-channel signalizacia (napr. nejakou zvlastnou linkou) - ci uz na zabranenie zahajenia prenosu alebo na signalizaciu neplatnosti preneseneho byte - alebo finta typu "M-S sa prenasaju byte s MSB=1 a S-M sa prenasaju byte s MSB=0".

wek


PS. A bude mozno aj horsie, vid http://www.mcu.cz/forum/viewtopic.php?f=529&t=1550&p=2953#p2953





Další informace o konferenci Hw-list