-
- Слейв, если обмен начался и не завершился за определённое время -- сбрасывает свой I2C модуль и освобождает шину (если держал SCL в нуле и т.п.) Мастер свой сброс выполняет так в общем случае: через SFR регистры сбрасывает свой I2C модуль (если fk0(1400 знак., 04.02.2013 20:04)
- насчет сброса whale(316 знак., 04.02.2013 20:23)
- Всё НЕ В ПОРЯДКЕ. На N/ACK вообще расчитывать нельзя, но даже не в том дело. "Зависать" может на более низком уровне: слейв увидел лишний клок, например, где его нет (помеха). И в ACK ему подошёл какой нужно битик. А дальше висит с SDA=0 ожидая fk0(358 знак., 04.02.2013 21:02)
- эээ ну эта whale(469 знак., 04.02.2013 22:52 - 23:13)
- При коллизии мастер прекращает работу и где-то в SFR появляется битик "коллизия". И так в цикле. И ничего не сделать, кроме как не проклокать вручную. Напильник на "+" не надо. На GND достаточно. - fk0(04.02.2013 23:22)
- это понятно что на минус ) короче тест напильник сделал whale(105 знак., 04.02.2013 23:28)
- При коллизии мастер прекращает работу и где-то в SFR появляется битик "коллизия". И так в цикле. И ничего не сделать, кроме как не проклокать вручную. Напильник на "+" не надо. На GND достаточно. - fk0(04.02.2013 23:22)
- эээ ну эта whale(469 знак., 04.02.2013 22:52 - 23:13)
- Всё НЕ В ПОРЯДКЕ. На N/ACK вообще расчитывать нельзя, но даже не в том дело. "Зависать" может на более низком уровне: слейв увидел лишний клок, например, где его нет (помеха). И в ACK ему подошёл какой нужно битик. А дальше висит с SDA=0 ожидая fk0(358 знак., 04.02.2013 21:02)
- Выдержки из слейва на atmega, может поможет: fk0(8069 знак., 04.02.2013 20:13)
- у меня все на асе написано ) - whale(04.02.2013 20:26)
- атмега. ассемблер. конденсаторы в I2C. просто классика жанра. лучше бросай это... - fk0(04.02.2013 23:20)
- ниче, еще помучимся - whale(04.02.2013 23:28)
- атмега. ассемблер. конденсаторы в I2C. просто классика жанра. лучше бросай это... - fk0(04.02.2013 23:20)
- у меня все на асе написано ) - whale(04.02.2013 20:26)
- насчет сброса whale(316 знак., 04.02.2013 20:23)
- Слейв, если обмен начался и не завершился за определённое время -- сбрасывает свой I2C модуль и освобождает шину (если держал SCL в нуле и т.п.) Мастер свой сброс выполняет так в общем случае: через SFR регистры сбрасывает свой I2C модуль (если fk0(1400 знак., 04.02.2013 20:04)