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

 
 
> SAM7 + Mega8 и I2C
beer_warrior
сообщение Mar 10 2007, 17:35
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Работаю со связкой - SAM7 + Mega8. SAM7 пишет управляющий байт и читает байт статуса.
И вот интересная картина получается. Поставил как возврат статуса константу 0x55.
1. После включения питания первое чтение 0x55, второе 0xFF, все последующие - 0x55.
2. После записи первое чтение 0xFF, все последующие - 0x55.

На код грешить боюсь - для связки мега-мега обкатан многократно. SAM7 без особых проблем работает с 24с02 на той же шине.

Мне кажется допускаю какую-то логическую неувязку в работе с шиной.(Не закрываю обмен или что-то подобное)


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kirill Frolov
сообщение Aug 6 2007, 23:33
Сообщение #2


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

Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241



Цитата(beer_warrior @ Mar 10 2007, 21:35) *
Работаю со связкой - SAM7 + Mega8.


Мне сабж всю душу вымотал. Вот именно в аналогичной конфигурации.
Если вкратцее -- у at91sam7x256 недоделанный и глючый TWI. Сбоит и
зависает от любой помехи на шине. И без костылей и подпорок ™ в виде
таймаутов, принудительных сбросов и принудительной же, ручной, манипуляции сигналами с целью освободить шину от "зависших" в таком состоянии slave -- зависает вусмерть. Благо что программно сбрасывается (причём где-то за несколько десятков микросекунд -- какие там процессы при этом внутри происходят, одному Билу Гейцу известно).
При том, что сам протокол I2C так интересно устроен, что отвалившийся
невовремя мастер в свою очередь вводит в неадекватное состояние
подчинённых (TWC если когда пропал невовремя), см. выше. С AVR проще, за ним
неадекватностей не замечено, за исключением того (у меня их много),
что арбитраж в режиме slave они "умеют" (именно, что в кавычках) только
на байтовом уровне. Требуют аккуратного обращения с флагом подтверждения обработки прерывания (ВНИМАНИЕ!) и, похоже, запись в CR без паузы в пару тактов иногда не имеет действия. В итоге -- у меня работает, вроде...

А, да, ещё в догонку. AR91SAM7 не умеет "repeated start condition" (для SMBUS),
впрочем ARV их толком и не распознаёт...

Цитата
SAM7 пишет управляющий байт и читает байт статуса.
И вот интересная картина получается. Поставил как возврат статуса константу 0x55.
1. После включения питания первое чтение 0x55, второе 0xFF, все последующие - 0x55.
2. После записи первое чтение 0xFF, все последующие - 0x55.


90%, что забыл, что в конце последнего байта NACK давать надо.

А, ещё одно. Перед установкой MREAD прочитай RHR...


--------------------
[ZX]
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- beer_warrior   SAM7 + Mega8 и I2C   Mar 10 2007, 17:35
- - singlskv   Цитата(beer_warrior @ Mar 10 2007, 17:35)...   Mar 10 2007, 18:07
- - beer_warrior   SAM работает поллингом, проще некуда: Кодbool Read...   Mar 10 2007, 19:09
- - beer_warrior   Еще интересный эффект всплыл. Попробовал в промежу...   Mar 10 2007, 19:40
|- - singlskv   Цитата(beer_warrior @ Mar 10 2007, 19:40)...   Mar 10 2007, 20:02
- - beer_warrior   Код//---------------------------------------------...   Mar 10 2007, 20:14
|- - singlskv   для начала попробуйте вот так: Цитата(beer_warrior...   Mar 10 2007, 20:28
- - beer_warrior   ЦитатаTWI_RHR; // !!!!!!...   Mar 10 2007, 20:35
|- - singlskv   Цитата(beer_warrior @ Mar 10 2007, 20:35)...   Mar 10 2007, 21:26
- - beer_warrior   ЦитатаТак что искать логику в TWI на SAM7 нет смыс...   Mar 10 2007, 21:47
|- - singlskv   Цитата(beer_warrior @ Mar 10 2007, 21:47)...   Mar 10 2007, 22:06
- - beer_warrior   Значит так, проблема решена следующим образом: Код...   Mar 10 2007, 22:13
|- - singlskv   Цитата(beer_warrior @ Mar 10 2007, 22:13)...   Mar 10 2007, 22:49
- - beer_warrior   ЦитатаЯ думаю что переносить пока рано С мегой там...   Mar 10 2007, 22:37
- - beer_warrior   ЦитатаЯ бы в Вашем коде тоже кое-что поменял. Согл...   Mar 10 2007, 23:34
|- - singlskv   Цитата(beer_warrior @ Mar 10 2007, 23:34)...   Mar 11 2007, 02:23
- - singlskv   ЦитатаЦитата основная проблема TWI на SAM7 это то,...   Mar 11 2007, 01:42
- - beer_warrior   Цитата"Модуль TWI прекрасно подходит для обме...   Mar 11 2007, 11:18
|- - singlskv   Цитата(beer_warrior @ Mar 11 2007, 11:18)...   Mar 15 2007, 03:08
- - _dem   Кстати, решение по остановке TWI у SAM есть - про...   Aug 3 2007, 15:12
- - SasaVitebsk   Забавно иногда смотреть. Разные программисты в раз...   Aug 3 2007, 19:04
|- - singlskv   Цитата(SasaVitebsk @ Aug 3 2007, 23:04) К...   Aug 3 2007, 22:14
- - SasaVitebsk   Мужчина!   Aug 4 2007, 18:52
|- - singlskv   Цитата(SasaVitebsk @ Aug 4 2007, 22:52) М...   Aug 4 2007, 19:26


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 23:52
Рейтинг@Mail.ru


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