I2C на dsPIC30xxxx

Dec 22, 2006 0 Replies

Hi, All !



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



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



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



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


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



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


Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required