-
- USART тоже занят? - =AlexD=(10.05.2013 11:26)
- Ногодрыганье - это совсем не пошло. А порой вообще очень красиво. - Леонид Иванович(10.05.2013 11:05)
- I like to move it, I like to move it! - AU08(10.05.2013 12:20, ссылка)
- а где ссылка на ЖЖ ? :=) - koyodza(10.05.2013 11:11)
- Держите ссылку если хотите! - AU08(10.05.2013 14:13, youtube)
- это не ЖЖ - koyodza(10.05.2013 14:44)
- Держите ссылку если хотите! - AU08(10.05.2013 14:13, youtube)
- поставьте PCF8574 и не мучайтесь - Snaky(10.05.2013 05:11)
- Не могу, там уже не моя часть, а уже готовая. Заменить 74HC595 на что-то другое не в моей власти. - Ксения(10.05.2013 05:32)
- Так отдрыгать ногами и все дела. ~10 тактов на бит, 100 тактов на байт. Может даже быстрее I2C получится... :) И резисторы для i2c паять не надо! тока 595 с фиксацией надо выбирать (вход RCK у TPIC6B595) - AU08(10.05.2013 05:36 - 05:47)
- Ну, а если я бит TWGCE (TWI General Call Recognition Enable Bit) не выставлю, запретив распознавать адрес, то достигну ли я этим безадресной передачи? Или из-за этого вообще работать перестанет? - Ксения(10.05.2013 06:07)
- Сама поняла, что это не поможет. - Ксения(10.05.2013 06:18)
- По STOP condition только последние 7 бит + ASK, итого 8 бит запишутся. Адрес уже пофиг, он в предыдущих 9 битах был. - AU08(10.05.2013 07:19)
- Так он 7-битный что ли? - Ксения(10.05.2013 12:20)
- По STOP condition только последние 7 бит + ASK, итого 8 бит запишутся. Адрес уже пофиг, он в предыдущих 9 битах был. - AU08(10.05.2013 07:19)
- Сама поняла, что это не поможет. - Ксения(10.05.2013 06:18)
- Если хочется почесать левой ногой за правым ухом (с I2C) - то сделать на SingleGate 74LVC1G175DBV формирователь фронта (RCK он же CS) по I2C stop condition. Только что в этом случае делать с отсутствием бита N9 - ответ от Slave устройства (ASK)? AU08(21 знак., 10.05.2013 06:01)
- Ну, не получит оно этого бита, и чего? Что делает мастер-передатчик, если ASK не приходит? Выставит ругательный флаг в статусе? Так я и не буду его читать, а потребую передать следующий байт. Он что откажется? - Ксения(10.05.2013 06:22)
- Да откажется, шина повиснит заново можно только рестартом всего модулч TWI - m9rs(10.05.2013 21:27)
- Интересный вопрос...А если слейв чего-то не дополучит(байт на середине оборвётся из-за сброса мастера, например)? Слейв застрянет в ожидании и рестарт TWI в меге не поможет? Есть какие-то способы шину сбросить? - Apтём(10.05.2013 21:32)
- Слейв тупее он ресетится стартом или повторным стартом. А если в момент передачи в 24С01 вы её просто извлекёте из панельки иона не даст ответный АСК то неполно реализовынный алгоритм (ну всё красивое дерево в даташите) повесит мегу. - m9rs(10.05.2013 21:37)
- По идее да - Apтём(609 знак., 10.05.2013 21:47)
- Во-первых, в AVR не I2C, а TWI ;) Во-вторых, проблема зависаний слейва решается процедурой Bus clear, описанной в спецификации I2C. - rezident(11.05.2013 00:20, ссылка)
- Можно ли совсем коротко привести основные отличия I2C от TWI? А то мне тягостно сравнивать по описанию, т.к. не имела дела ни с тем, ни с другим. - Ксения(11.05.2013 00:35)
- Ксения, вы смайлик не заметили что ли? - rezident(11.05.2013 01:43)
- C точки зрения управления слейвом (АВР - мастер) отличий не заметил. Всё прекрасно пишется и читается, как того хочет I2C слейв (т.е. в соответствии с протоколом). Adept(81 знак., 11.05.2013 01:01)
- Все три буквы отличаются - ничего общего у них нет вообще. - Apтём(11.05.2013 00:46)
- Спасибо, не знал что такая процедура предусмотрена. Почему-то не попадалась раньше ни в одной апноте или либе. Apтём(268 знак., 11.05.2013 00:31)
- ПроCLOCKкать шину процедурой Bus clear рекомендуется всегда после включения (подачи питания). - rezident(11.05.2013 01:46)
- Хм.. Зачем всегда? Не лучше ли в случае обнаружения ошибки это делать? Apтём(206 знак., 11.05.2013 01:57)
- Я написал рекомендуется, а не требуется. Не хотите - не делайте. Мастер, реализованный на МК, может ведь и
харакири"горячий" рестарт по какой-либо причине сделать (сброс по WDT, например). А "железячному" слейву этот "горячий" rezident(154 знак., 11.05.2013 02:11)- Я понял что рекомендуется, а не требуется. Я спросил есть документ где это рекомендация...просмотрел свой предыдущий пост и увидел, что там не вопросительного знака... Apтём(496 знак., 11.05.2013 03:04 - 03:13)
- Я удивляюсь вашему мастерству домысливать прочитанное между строк! :) Где вы увидели мою рекомендацию выполнять Bus clear при старте? Я писал, что рекомендуется а) при включении питания или "горячем" рестарте мастера (МК в режиме rezident(110 знак., 11.05.2013 20:38 - 20:41)
- гм... Apтём(664 знак., 12.05.2013 00:44)
- Ну я "старт" понял как START-условие на шине I2C. B общем добавить к написанному мне уже нечего, а переливать из пустого в порожнее дальше нет желания. Sapienti sat. - rezident(12.05.2013 15:10)
- Спасибо за разъяснения. - Apтём(12.05.2013 21:53)
- Ну я "старт" понял как START-условие на шине I2C. B общем добавить к написанному мне уже нечего, а переливать из пустого в порожнее дальше нет желания. Sapienti sat. - rezident(12.05.2013 15:10)
- гм... Apтём(664 знак., 12.05.2013 00:44)
- Я удивляюсь вашему мастерству домысливать прочитанное между строк! :) Где вы увидели мою рекомендацию выполнять Bus clear при старте? Я писал, что рекомендуется а) при включении питания или "горячем" рестарте мастера (МК в режиме rezident(110 знак., 11.05.2013 20:38 - 20:41)
- Я понял что рекомендуется, а не требуется. Я спросил есть документ где это рекомендация...просмотрел свой предыдущий пост и увидел, что там не вопросительного знака... Apтём(496 знак., 11.05.2013 03:04 - 03:13)
- Я написал рекомендуется, а не требуется. Не хотите - не делайте. Мастер, реализованный на МК, может ведь и
- Хм.. Зачем всегда? Не лучше ли в случае обнаружения ошибки это делать? Apтём(206 знак., 11.05.2013 01:57)
- ПроCLOCKкать шину процедурой Bus clear рекомендуется всегда после включения (подачи питания). - rezident(11.05.2013 01:46)
- Можно ли совсем коротко привести основные отличия I2C от TWI? А то мне тягостно сравнивать по описанию, т.к. не имела дела ни с тем, ни с другим. - Ксения(11.05.2013 00:35)
- Да. Если у вас нет других мастеров на шине, которые могут перебить мегу, то это наверное помеха которая распознаётся мастером как чужой старт. - m9rs(10.05.2013 21:56)
- Других мастеров не было. Apтём(375 знак., 10.05.2013 22:50)
- Во-первых, в AVR не I2C, а TWI ;) Во-вторых, проблема зависаний слейва решается процедурой Bus clear, описанной в спецификации I2C. - rezident(11.05.2013 00:20, ссылка)
- По идее да - Apтём(609 знак., 10.05.2013 21:47)
- Слейв тупее он ресетится стартом или повторным стартом. А если в момент передачи в 24С01 вы её просто извлекёте из панельки иона не даст ответный АСК то неполно реализовынный алгоритм (ну всё красивое дерево в даташите) повесит мегу. - m9rs(10.05.2013 21:37)
- Интересный вопрос...А если слейв чего-то не дополучит(байт на середине оборвётся из-за сброса мастера, например)? Слейв застрянет в ожидании и рестарт TWI в меге не поможет? Есть какие-то способы шину сбросить? - Apтём(10.05.2013 21:32)
- Да откажется, шина повиснит заново можно только рестартом всего модулч TWI - m9rs(10.05.2013 21:27)
- Ну, не получит оно этого бита, и чего? Что делает мастер-передатчик, если ASK не приходит? Выставит ругательный флаг в статусе? Так я и не буду его читать, а потребую передать следующий байт. Он что откажется? - Ксения(10.05.2013 06:22)
- Ну, а если я бит TWGCE (TWI General Call Recognition Enable Bit) не выставлю, запретив распознавать адрес, то достигну ли я этим безадресной передачи? Или из-за этого вообще работать перестанет? - Ксения(10.05.2013 06:07)
- Так отдрыгать ногами и все дела. ~10 тактов на бит, 100 тактов на байт. Может даже быстрее I2C получится... :) И резисторы для i2c паять не надо! тока 595 с фиксацией надо выбирать (вход RCK у TPIC6B595) - AU08(10.05.2013 05:36 - 05:47)
- Не могу, там уже не моя часть, а уже готовая. Заменить 74HC595 на что-то другое не в моей власти. - Ксения(10.05.2013 05:32)