koljakh
Aug 2 2010, 12:41
Всем добрый день!
К хмеге128А1 подключены часы реального времени DS1337.
Если подать сброс на контроллер или перепрошить его, я так понимаю, что в момент обмена,
то иногда часы SDA линию удерживают в нуле. (скорее всего в часах никакого таймаута нет)
И после этого TWI контроллером проца не получается привести их в неактивное состояние на шине.
Приходится при старте контроллера дергать ножкой SCL через порт I/O,
что-бы вывести его из этого состояния.
Может кто сталкивался с этим приколом?
Кто как решал эту проблему?
Цитата(koljakh @ Aug 2 2010, 16:41)

Приходится при старте контроллера дергать ножкой SCL через порт I/O,
что-бы вывести его из этого состояния.
На самом деле это вполне годный способ для приведения в чувство слейвов после какого-либо бардака на шине.
rezident
Aug 2 2010, 12:49
Цитата(koljakh @ Aug 2 2010, 18:41)

Может кто сталкивался с этим приколом?
Кто как решал эту проблему?
Это не прикол, а документированный способ, описанный в спецификации I2С. См. раздел
3.16 Bus clear в
UM10204 I2C-bus specification and user manual Rev. 03 — 19 June 2007