[HWnews] (no subject) - ale ma byt I2C - no co, uklepol som sa

Wek wek@evona.sk
Středa Březen 31 12:30:03 CEST 2004


David Belohrad wrote:

> Podle tech odpovedi soudim, ze jsem se spatne vyjaril.
> Mam 1 master, cca 30prijimacu, rozmistenych vicemene ekvidistantne podel
> cca 300 metru. Jestlize se nekde neco stane (pomineme-li duvody proc se
> tak stane - to je momentalne irelevantni) a jeden(vice) z primacu se
> dostane za startbit, tj je v rezimu aktivni odpovedi (=sem tam si
> zavysila nejakou tu nulu). Z tohoto vyplyva ze nevim, ktery prijimac
> odpovida a nevim v kolikatem je momentalne bitu odpovedi.
> Jak se z tohoto stavu dostat do pocatecniho (=SDA=SCL=H). (Mimochodem -
> ta zalezitost muze nastat take pri resetu)

Aha. No tak to je celkom ine.
Vsade, kde sa seriozne pise o I2C je priamo napisane, ze to patri do krabice
(presnejsie: do televizora :-) a nie je to zbernica na roztahovanie po
miestnosti/po urychlovaci :-); a ak sa takto pouzije, tak si priamo zarabate
na problemy.
No a ja som si naivne myslel, ze balu zartoval... (ved smajliky tam boli!)

Takze moznosti su podla mna hadam dve:
1. klasika je to, co som uz pisal - musite vygenerovat STOP.
Je sice mozne, ze niektore zariadenie na STOP uprostred komunikacie
nezareaguje; ale take nezodpoveda specifikacii a je treba ho radsej hned
zahodit. No a aby ste mohli vygenerovat STOP, musite najprv dostat SDA aj SCK
na jednicku. U beznych zariadeni s SCK nie je problem, ak nepouzivaju clock
stretching, prip. ak nemaju moznost byt masterom, tak s SCK necvicia (a ak
pouzivaju clock stretching a natahuju clock do nekonecna, tiez ich treba
zahodit). A ak je na SDA nula, znamena to, ze niekto vysiela. Vtedy treba
clockom cvicit dovtedy, kym SDA nevylezie na jednicku a vtedy zacvicit s SDA,
cim sa vygeneruje START a okamzite aj STOP.
Pochopitelne, toto ide len vtedy, ak mate plnu kontrolu nad SDA a SCK pinmi a
tiez ak viete monitorovat ich stav v kazdom okamihu - to vlastne tak ci tak
potrebujete pre kompletnu detekciu patologickeho stavu.

2. resetnut vsetky zariadenia.
Toto sice znie brutalne, navyse vacsina (ak nie vsetky) I2C chipov vyvod RESET
nemaju, ale zrejme ten I2C stavovy stroj musi byt po zapnuti v nejakom
definovanom stave, takze na resetovanie treba zacvicit napajanim. No, mozno
toto tiez zne perverzne alebo nerealisticky; ale na druhej strane toto je
daleko bezpecnejsia metoda nez cvicit bezhlavo clockom a nevediet, co to v
ktorom zariadeni spravi...

Pre rypalov: samozrejme, mozem sa mylit, opravte ma.

Jano Waclawek





Další informace o konferenci Hw-list