|
AT91SAM9263 и I2C, Не запускается. |
|
|
|
Oct 26 2011, 14:54
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 6-07-05
Пользователь №: 6 587

|
Не идут синхроимпульсы через TWCK. Сконфигурировал аппаратный TWI по даташит, пытаюсь записать байт, если выполнить пошагово в отладчике, то после AT91C_BASE_TWI->TWI_THR = data; обмен идет нормально. Если выполнять код без остановки, то проходят 2 - 3 синхроимпульса, потом на порту устанавливается единица, причем процесс носит случайный характер, может застрять в 0 или 1, также варьируется количество синхроимпульсов.
Даже не знаю в какую сторону копать , ПулАП установлен 2,5кОм.
Если поставить останов на while, обмен также идет нормально, если после while, опять начинается ерунда, как будто процессор мешает работе модуля TWI, если ядро остановить отладчиком, то все нормально.
AT91C_BASE_TWI->TWI_THR = data; while(!(AT91C_BASE_TWI->TWI_SR & AT91C_TWI_TXCOMP)); return;
Сообщение отредактировал sashad - Oct 26 2011, 14:56
|
|
|
|
|
 |
Ответов
|
Nov 6 2011, 10:48
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Цитата Да вообще-то это известный факт Вот эта ветка тоже бы могла стать "общеизвестным фактом". К слову, я действительно никогда не использую флаги ошибок периферии (любой). За бессмысленностью. -- Ошибки не существует, пока не выяснены точно условия ее возникновения. Ибо случайные сбои могут быть вызваны некачественным изготовлением микросхемы. А вот регулярные - чаще всего ошибкой разработчиков. И вот регулярные сбои достаточно легко определить. И задокументировать. Пока вот такой задокументированности я не встречал. (Правда и не искал, ибо проблемы не стояло).
Сообщение отредактировал DpInRock - Nov 6 2011, 10:55
--------------------
On the road again (Canned Heat)
|
|
|
|
|
Nov 7 2011, 19:26
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(aaarrr @ Nov 7 2011, 12:03)  "Решается", ага. Только если система "тянет" 45кГц прерываний, что бывает далеко не всегда. Мы говорим о конкретных камнях или в теории? Имхо, изначально медленную I2C постоянно турзучить?? Что-то в консерватории надо поменять.
|
|
|
|
|
Nov 7 2011, 19:43
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DmitryM @ Nov 7 2011, 23:26)  Мы говорим о конкретных камнях или в теории? Имхо, изначально медленную I2C постоянно турзучить?? Что-то в консерватории надо поменять. Если вспомнить теорию, то "изначально медленная" I2C уже более 10 лет поддерживает скорости до 3.4Мбит/с. Если же спуститься на грешную землю, то хоть в атмеловских поделиях и заявлена скорость всего 400кбит/с, кривизна реализации требует именно упомянутой выше частоты прерываний даже при использовании PDC. В консерватории действительно надо что-то менять. Но сделать это должны атмеловские инженеры.
|
|
|
|
|
Nov 8 2011, 05:29
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(aaarrr @ Nov 7 2011, 23:43)  Если вспомнить теорию, то "изначально медленная" I2C уже более 10 лет поддерживает скорости до 3.4Мбит/с. Если же спуститься на грешную землю, то хоть в атмеловских поделиях и заявлена скорость всего 400кбит/с, кривизна реализации требует именно упомянутой выше частоты прерываний даже при использовании PDC. В консерватории действительно надо что-то менять. Но сделать это должны атмеловские инженеры. Если Вас не устраивает Atmel'овская реализация используйте свою софтовую, никто же не запрещает и не настаивает, но не надо во всеуслышание заявлять о глючности TWI на AT91SAM. TWI AT91SAM работает в соответствии с datasheet. Про грабли TWI RM9200 я писал здесь на форуме, но это тоже обходится не слишком большими телодвижениями. Бывают реализации и хуже.
|
|
|
|
|
Nov 8 2011, 12:56
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(aaarrr @ Nov 8 2011, 14:30)  Почему же не надо? Очень даже надо. Хотя бы для того, чтобы те, кто впервые сталкивается с TWI, не питали лишних иллюзий и не тратили зря время.
Не спорю, его можно использовать, но далеко не во всех случаях. Если кто-то готов поделиться историей успеха при работе в связке с SAA7113 или AD9887 - с удовольствием послушаю. Ну дык это не глючность, а ограниченность. Eeprom 24LC работает, сканер клавиатуры LM8333 работает, кодеки серии TLV320 (Texas), ForteMedia работает, это ближайшее что по памяти. Хотя странно, у приведенных Вами микросхем максимальная частота 100кГц, откуда там 45кГц прерываний? Но всей инфраструктуры не знаю, оспаривать не буду.
|
|
|
|
|
Nov 8 2011, 14:06
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DmitryM @ Nov 8 2011, 16:56)  Ну дык это не глючность, а ограниченность. Eeprom 24LC работает, сканер клавиатуры LM8333 работает, кодеки серии TLV320 (Texas), ForteMedia работает, это ближайшее что по памяти. Дык удручает именно эта ограниченность. Когда на этапе проектирования не можешь сказать, будут проблемы, или на этот раз обойдется. Цитата(DmitryM @ Nov 8 2011, 16:56)  Хотя странно, у приведенных Вами микросхем максимальная частота 100кГц, откуда там 45кГц прерываний? "Там" и до прерываний толком не доходит: SAA7113 на SAM7X при чтении в произвольный момент времени обрывает передачу (NAK ловит по всей видимости), AD9887 на SAM3U просто не отзывается по своему адресу. При этом те же микросхемы на других хостах (в т.ч. программных на тех же процессорах) работают без малейших нареканий. EEPROM'ы работают, всякие TLV и TVP из тех, что мне попадались - тоже.
|
|
|
|
Сообщений в этой теме
sashad AT91SAM9263 и I2C Oct 26 2011, 14:54 sashad Пришлось сделать програмный I2C Nov 3 2011, 18:38 aaarrr Цитата(sashad @ Nov 3 2011, 22:38) Пришло... Nov 3 2011, 19:31 Aleph Попробуйте сразу после
Цитата(sashad @ Oct 26... Nov 4 2011, 09:07 DpInRock Неча на TWI пенять. Работает безукоризненно. Nov 4 2011, 12:27 aaarrr Цитата(DpInRock @ Nov 4 2011, 16:27) Рабо... Nov 4 2011, 19:23 sasamy Цитата(DpInRock @ Nov 4 2011, 16:27) Неча... Nov 6 2011, 10:25 Aleph Цитата(aaarrr @ Nov 4 2011, 20:23) Работа... Nov 4 2011, 23:01 SimpleSoft Если посылаете 1 байт то сразу засылайте STOP, а п... Nov 5 2011, 07:47 DpInRock ЦитатаРаботает непредсказуемо на всей линейке AT91... Nov 5 2011, 08:46 aaarrr Цитата(DpInRock @ Nov 5 2011, 12:46) Если... Nov 5 2011, 09:21 DpInRock Логично предположить, что если TWI работает с сотн... Nov 5 2011, 10:57 aaarrr Цитата(DpInRock @ Nov 5 2011, 14:57) Логи... Nov 5 2011, 12:32          singlskv Цитата(aaarrr @ Nov 8 2011, 17:06) Дык уд... Nov 8 2011, 18:28  aaarrr Цитата(sasamy @ Nov 6 2011, 16:21) Пробле... Nov 7 2011, 09:16 *rust* Полностью разделяю точку зрения aaarrr. Могу конкр... Nov 11 2011, 09:40 sonycman Цитата(*rust* @ Nov 11 2011, 13:40) Заста... Dec 29 2011, 07:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|