реклама на сайте
подробности

 
 
> SAM3U и I2C, как slave работает не правильно.
*rust*
сообщение Jun 1 2011, 11:33
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 109
Регистрация: 19-01-11
Пользователь №: 62 335



Добрый день!

Пытаюсь реализовать I2S на SAM3U, причем проц. должен работать как slave. Прежде всего хочу отметить что в описании на slave mode есть ошибки.
1.Бит SVREAD регистра TWI_SR говорит об направлении (прием\передача). лог.1-чтение мастером, лог 0-запись мастером, что вытекает из описания битов регистра TWI_SR(стр.656). На рисунке 33-32, стр. 661. наоборот.

2. Бит RXRDY регистра TWI_SR говорит о состоянии приемника. лог 1- был принят байт в регистр приемника TWI_RHR, после последнего чтения, лог 0- не был принят байт в регистр приемника TWI_RHR, после последнего чтения. На рисунке 33-32, стр. 661. опять же наоборот.


Но ошибки это не главное, чудеса начинаются после запуска.

После того как был принят свой адрес, направление передачи "R"-чтение, sam3u посылает ASK-это нормально, и я должен положить байт в регистр передачи TWI_THR. Я так и делаю, но в зависимости от значения байта, мой SAM3U(slave) либо отпускает линию SDA или нет - а вот это уже странно.
Как вообще slave может удерживать линию SDA?

Судите сами.
(адрес slave -10)
1 картинка- после ASKа загружаю 0xFF. sam3u отпускает шину SDA - нормально. Далее мастер формирует ПОВСТАРТ и СТОП-условие
Прикрепленный файл  receive_FF.bmp ( 19 килобайт ) Кол-во скачиваний: 17

2 картинка- после ASKа загружаю 0x01. sam3u не отпускает шину SDA- не понятно. Далее мастер пытается сформировать СТОП, но Sam3u пытается удерживать линию SDA в нуле.
Прикрепленный файл  receive_01_first.bmp ( 18.54 килобайт ) Кол-во скачиваний: 14

3 картинка для информации, что происходит после 2 картинки, когда линия SDA в каком-то непонятном состоянии.
Прикрепленный файл  receive_01_second.bmp ( 18.51 килобайт ) Кол-во скачиваний: 8


А теперь главный вопрос, кто виноват и что делать? Я готов написать в ATMEL, но хотелось бы услышать, мнения форумчан.
Может где-то мой косяк зарыт? Код перекраивал много раз, итог один.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jun 1 2011, 11:50
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

А вот картинки ваши странные: средний уровень откуда взялся? У мастера push-pull на SDA?
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jun 11 2011, 12:24
Сообщение #3


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(aaarrr @ Jun 1 2011, 15:50) *
Про атмеловский TWI ничего хорошего не скажу. У меня была надежда, что в SAM3 его исправят, однако практика показала, что воз и ныне там.

А можете подробнее рассказать про грабли TWI модуля?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 11 2011, 12:39
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sonycman @ Jun 11 2011, 16:24) *
А можете подробнее рассказать про грабли TWI модуля?

Они практически в полном составе унаследованы от SAM7, разве что убрали наиболее одиозные глюки и добавили PDC. Идеология, однако, осталась прежней: мастер синхронного интерфейса у них может вылететь в overrun/underrun.

Мое общение с TWI на SAM3 закончилось довольно быстро. Сдуру был написан честный драйвер с PDC и прерываниями, однако на тестировании выяснилось, что из 10 слейвов в составе устройства отзываются 8. Два AD9887 принципиально не дают ACK после адреса.
Памятуя безблагодатные пляски с бубном при аналогичных симптомах на SAM7, не стал даже разбираться в причинах сего явления и просто откатился на bit-band.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 8 2011, 17:07
Сообщение #5


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(aaarrr @ Jun 11 2011, 16:39) *
Они практически в полном составе унаследованы от SAM7, разве что убрали наиболее одиозные глюки и добавили PDC. Идеология, однако, осталась прежней: мастер синхронного интерфейса у них может вылететь в overrun/underrun.

Мое общение с TWI на SAM3 закончилось довольно быстро. Сдуру был написан честный драйвер с PDC и прерываниями, однако на тестировании выяснилось, что из 10 слейвов в составе устройства отзываются 8. Два AD9887 принципиально не дают ACK после адреса.
Памятуя безблагодатные пляски с бубном при аналогичных симптомах на SAM7, не стал даже разбираться в причинах сего явления и просто откатился на bit-band.
Если не сложно, покажите запуск PDC для I2C,
не могу понять как его стартовать в различных вариантах:
-запись от мастера слейву
-чтение от слейва
ну или полный драйвер запостите с PDC
если запостите полный драйвер, обещаю опубликовать свое решение, если конечно выгорит...,
ну и как бонус могу опубликовать решение для SAM7.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 8 2011, 17:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(singlskv @ Sep 8 2011, 21:07) *
ну или полный драйвер запостите с PDC

Держите. Но только совершенный as is, никаких комментариев не будет - наелся я уже атмеловского TWI и слышать о нем больше не хочу.
Прикрепленный файл  iic.rar ( 1.32 килобайт ) Кол-во скачиваний: 114
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- *rust*   SAM3U и I2C   Jun 1 2011, 11:33
|- - sonycman   Цитата(aaarrr @ Jun 11 2011, 16:39) Они п...   Jun 11 2011, 14:07
||- - aaarrr   Цитата(sonycman @ Jun 11 2011, 18:07) Пос...   Jun 11 2011, 14:24
||- - sonycman   Цитата(aaarrr @ Jun 11 2011, 18:24) Вот у...   Jun 13 2011, 13:04
||- - aaarrr   Цитата(sonycman @ Jun 13 2011, 17:04) Ну ...   Jun 13 2011, 21:01
|- - singlskv   [/quote name='aaarrr' date='Sep 8 2011...   Sep 8 2011, 18:08
- - BurglarInt   Цитата(*rust* @ Jun 1 2011, 15:33) *rus...   Jun 1 2011, 12:04
- - *rust*   stan@ngfp.ru ЦитатаПро атмеловский TWI ничего хор...   Jun 1 2011, 12:24
|- - aaarrr   Цитата(*rust* @ Jun 1 2011, 16:24) Slave ...   Jun 1 2011, 12:36
- - BurglarInt   *rust*, письмо на твой e-mail я отправил, спасибо.   Jun 1 2011, 12:26
- - *rust*   У FTDI232 100 процентов не I2C, многое не по специ...   Jun 1 2011, 12:43
- - SergeyDDD   По идеологии I2C, таких ступенек как у Вас принцип...   Jun 11 2011, 14:02
- - *rust*   Привожу мою переписку с тех. службой ATMEL, хотя о...   Jun 23 2011, 12:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016