DmitryM 0 7 ноября, 2011 Опубликовано 7 ноября, 2011 · Жалоба Проблема там - у TWI нет FIFO и он почти у всей линейки не подключен к PDC (только начиная с at91sam9g.. они догадались сделать это), любая незначительная задержка записи в регистр для передачи - контроллер автоматом отпраляет STOP и завершает ее. Решается прерываниями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 ноября, 2011 Опубликовано 7 ноября, 2011 · Жалоба Решается прерываниями. "Решается", ага. Только если система "тянет" 45кГц прерываний, что бывает далеко не всегда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 ноября, 2011 Опубликовано 7 ноября, 2011 · Жалоба Проблема там - у TWI нет FIFO и он почти у всей линейки не подключен к PDC (только начиная с at91sam9g.. они догадались сделать это) Да и PDC прикручен весьма своеобразно. Скажем, NAK перед чтением последнего байта надо выставлять вручную, что практически сводит на нет это улучшение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 7 ноября, 2011 Опубликовано 7 ноября, 2011 · Жалоба "Решается", ага. Только если система "тянет" 45кГц прерываний, что бывает далеко не всегда. Мы говорим о конкретных камнях или в теории? Имхо, изначально медленную I2C постоянно турзучить?? Что-то в консерватории надо поменять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 ноября, 2011 Опубликовано 7 ноября, 2011 · Жалоба Мы говорим о конкретных камнях или в теории? Имхо, изначально медленную I2C постоянно турзучить?? Что-то в консерватории надо поменять. Если вспомнить теорию, то "изначально медленная" I2C уже более 10 лет поддерживает скорости до 3.4Мбит/с. Если же спуститься на грешную землю, то хоть в атмеловских поделиях и заявлена скорость всего 400кбит/с, кривизна реализации требует именно упомянутой выше частоты прерываний даже при использовании PDC. В консерватории действительно надо что-то менять. Но сделать это должны атмеловские инженеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба Если вспомнить теорию, то "изначально медленная" I2C уже более 10 лет поддерживает скорости до 3.4Мбит/с. Если же спуститься на грешную землю, то хоть в атмеловских поделиях и заявлена скорость всего 400кбит/с, кривизна реализации требует именно упомянутой выше частоты прерываний даже при использовании PDC. В консерватории действительно надо что-то менять. Но сделать это должны атмеловские инженеры. Если Вас не устраивает Atmel'овская реализация используйте свою софтовую, никто же не запрещает и не настаивает, но не надо во всеуслышание заявлять о глючности TWI на AT91SAM. TWI AT91SAM работает в соответствии с datasheet. Про грабли TWI RM9200 я писал здесь на форуме, но это тоже обходится не слишком большими телодвижениями. Бывают реализации и хуже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба ...не надо во всеуслышание заявлять о глючности TWI на AT91SAM. Почему же не надо? Очень даже надо. Хотя бы для того, чтобы те, кто впервые сталкивается с TWI, не питали лишних иллюзий и не тратили зря время. Не спорю, его можно использовать, но далеко не во всех случаях. Если кто-то готов поделиться историей успеха при работе в связке с SAA7113 или AD9887 - с удовольствием послушаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба Почему же не надо? Очень даже надо. Хотя бы для того, чтобы те, кто впервые сталкивается с TWI, не питали лишних иллюзий и не тратили зря время. Не спорю, его можно использовать, но далеко не во всех случаях. Если кто-то готов поделиться историей успеха при работе в связке с SAA7113 или AD9887 - с удовольствием послушаю. Ну дык это не глючность, а ограниченность. Eeprom 24LC работает, сканер клавиатуры LM8333 работает, кодеки серии TLV320 (Texas), ForteMedia работает, это ближайшее что по памяти. Хотя странно, у приведенных Вами микросхем максимальная частота 100кГц, откуда там 45кГц прерываний? Но всей инфраструктуры не знаю, оспаривать не буду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба Ну дык это не глючность, а ограниченность. Eeprom 24LC работает, сканер клавиатуры LM8333 работает, кодеки серии TLV320 (Texas), ForteMedia работает, это ближайшее что по памяти. Дык удручает именно эта ограниченность. Когда на этапе проектирования не можешь сказать, будут проблемы, или на этот раз обойдется. Хотя странно, у приведенных Вами микросхем максимальная частота 100кГц, откуда там 45кГц прерываний? "Там" и до прерываний толком не доходит: SAA7113 на SAM7X при чтении в произвольный момент времени обрывает передачу (NAK ловит по всей видимости), AD9887 на SAM3U просто не отзывается по своему адресу. При этом те же микросхемы на других хостах (в т.ч. программных на тех же процессорах) работают без малейших нареканий. EEPROM'ы работают, всякие TLV и TVP из тех, что мне попадались - тоже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба Дык удручает именно эта ограниченность. Когда на этапе проектирования не можешь сказать, будут проблемы, или на этот раз обойдется.вот здесь +10000 я всегда говорю разработчикам схемы что i2c на AT91 без особой надобности применять нельзя, ОДНАКО, даже с софтовым слейвом на AVR у меня все работает, и даже при закоротке линий... но конечно там все достаточно криво... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
*rust* 0 11 ноября, 2011 Опубликовано 11 ноября, 2011 · Жалоба Полностью разделяю точку зрения aaarrr. Могу конкретно сказать за Sam3, TWI в слейве не работает. Обращался к инженерам в ATMEL, указал на проблемы и ошибки в даташите. Инженер признал и то и другое. Ошибки в шите исправили, а как заставить TWI работать не сообщили. Несколько раз писал им, чтобы про меня не забыли, на последнее мое письмо ответили, что типа как только решим проблему сообщим, но воз и ныне там. Регистр флагов TWI это что-то вообще невообразимое! Я так и не смог осознать по каким законам он живет. Заставил работать только когда определил точки сбоя и путем сброса и конфигурирования TWI восстанавливал работу. sashad, если еще есть необходимость могу сбросить код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 1 29 декабря, 2011 Опубликовано 29 декабря, 2011 · Жалоба Заставил работать только когда определил точки сбоя и путем сброса и конфигурирования TWI восстанавливал работу. А какие именно получились "точки сбоя"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться