Перейти к содержанию
    

Проблема там - у TWI нет FIFO и он почти у всей линейки не подключен к PDC (только начиная с at91sam9g.. они догадались сделать это), любая незначительная задержка записи в регистр для передачи - контроллер автоматом отпраляет STOP и завершает ее.

Решается прерываниями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Решается прерываниями.

"Решается", ага. Только если система "тянет" 45кГц прерываний, что бывает далеко не всегда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема там - у TWI нет FIFO и он почти у всей линейки не подключен к PDC (только начиная с at91sam9g.. они догадались сделать это)

Да и PDC прикручен весьма своеобразно. Скажем, NAK перед чтением последнего байта надо выставлять вручную, что практически сводит на нет это улучшение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Решается", ага. Только если система "тянет" 45кГц прерываний, что бывает далеко не всегда.

Мы говорим о конкретных камнях или в теории?

Имхо, изначально медленную I2C постоянно турзучить?? Что-то в консерватории надо поменять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мы говорим о конкретных камнях или в теории?

Имхо, изначально медленную I2C постоянно турзучить?? Что-то в консерватории надо поменять.

Если вспомнить теорию, то "изначально медленная" I2C уже более 10 лет поддерживает скорости до 3.4Мбит/с.

Если же спуститься на грешную землю, то хоть в атмеловских поделиях и заявлена скорость всего 400кбит/с,

кривизна реализации требует именно упомянутой выше частоты прерываний даже при использовании PDC.

В консерватории действительно надо что-то менять. Но сделать это должны атмеловские инженеры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вспомнить теорию, то "изначально медленная" I2C уже более 10 лет поддерживает скорости до 3.4Мбит/с.

Если же спуститься на грешную землю, то хоть в атмеловских поделиях и заявлена скорость всего 400кбит/с,

кривизна реализации требует именно упомянутой выше частоты прерываний даже при использовании PDC.

В консерватории действительно надо что-то менять. Но сделать это должны атмеловские инженеры.

Если Вас не устраивает Atmel'овская реализация используйте свою софтовую, никто же не запрещает и не настаивает, но не надо во всеуслышание заявлять о глючности TWI на AT91SAM. TWI AT91SAM работает в соответствии с datasheet. Про грабли TWI RM9200 я писал здесь на форуме, но это тоже обходится не слишком большими телодвижениями.

Бывают реализации и хуже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...не надо во всеуслышание заявлять о глючности TWI на AT91SAM.

Почему же не надо? Очень даже надо. Хотя бы для того, чтобы те, кто впервые сталкивается с TWI, не питали лишних иллюзий и не тратили зря время.

 

Не спорю, его можно использовать, но далеко не во всех случаях. Если кто-то готов поделиться историей успеха при работе в связке с SAA7113 или AD9887 - с удовольствием послушаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему же не надо? Очень даже надо. Хотя бы для того, чтобы те, кто впервые сталкивается с TWI, не питали лишних иллюзий и не тратили зря время.

 

Не спорю, его можно использовать, но далеко не во всех случаях. Если кто-то готов поделиться историей успеха при работе в связке с SAA7113 или AD9887 - с удовольствием послушаю.

Ну дык это не глючность, а ограниченность. Eeprom 24LC работает, сканер клавиатуры LM8333 работает, кодеки серии TLV320 (Texas), ForteMedia работает, это ближайшее что по памяти. Хотя странно, у приведенных Вами микросхем максимальная частота 100кГц, откуда там 45кГц прерываний? Но всей инфраструктуры не знаю, оспаривать не буду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну дык это не глючность, а ограниченность. Eeprom 24LC работает, сканер клавиатуры LM8333 работает, кодеки серии TLV320 (Texas), ForteMedia работает, это ближайшее что по памяти.

Дык удручает именно эта ограниченность. Когда на этапе проектирования не можешь сказать, будут проблемы, или на этот раз обойдется.

 

Хотя странно, у приведенных Вами микросхем максимальная частота 100кГц, откуда там 45кГц прерываний?

"Там" и до прерываний толком не доходит: SAA7113 на SAM7X при чтении в произвольный момент времени обрывает передачу (NAK ловит по всей видимости), AD9887 на SAM3U просто не отзывается по своему адресу. При этом те же микросхемы на других хостах (в т.ч. программных на тех же процессорах) работают без малейших нареканий.

 

EEPROM'ы работают, всякие TLV и TVP из тех, что мне попадались - тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык удручает именно эта ограниченность. Когда на этапе проектирования не можешь сказать, будут проблемы, или на этот раз обойдется.
вот здесь +10000

я всегда говорю разработчикам схемы что i2c на AT91 без особой надобности применять нельзя,

ОДНАКО, даже с софтовым слейвом на AVR у меня все работает, и даже при закоротке линий...

но конечно там все достаточно криво...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полностью разделяю точку зрения aaarrr. Могу конкретно сказать за Sam3, TWI в слейве не работает. Обращался к инженерам в ATMEL, указал на проблемы и ошибки в даташите. Инженер признал и то и другое. Ошибки в шите исправили, а как заставить TWI работать не сообщили. Несколько раз писал им, чтобы про меня не забыли, на последнее мое письмо ответили, что типа как только решим проблему сообщим, но воз и ныне там. Регистр флагов TWI это что-то вообще невообразимое! Я так и не смог осознать по каким законам он живет. Заставил работать только когда определил точки сбоя и путем сброса и конфигурирования TWI восстанавливал работу.

 

sashad, если еще есть необходимость могу сбросить код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заставил работать только когда определил точки сбоя и путем сброса и конфигурирования TWI восстанавливал работу.

А какие именно получились "точки сбоя"?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...