I2C на dsPIC30xxxx

Hi, All !

Если при передаче данных от слейва к мастеру слейв по каким-либо причинам не получит необходимое количество clock'ов (мастер перезапустили по reset'у, помеха на шине и т.д.), то шина может оказаться в "странном состоянии" - слейв держит данные в нулевом уровне и ждёт clock. При этом мастер не может выдать ни start condition ни что-либо ещё, что вывело бы шину из "странного состояния".

Сейчас дял решения проблемы применяю перевод пинов SCL, SDA в режим PIO и "вручную" генерирую start condition и 9 clock'ов, после чего снова активирую модуль I2C.

Есть странное чувство, что данное решение, хм... "через задницу" что-ль...

Как данная проблема _правильно_ решается на dsPIC30хххх програмным путём ?

P.S.: В качестве слейва - DS1307

Hе прощаюсь, Alexander Gribanov.

Reply to
Alexander Gribanov
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.