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

 
 
> непонятные проблемы с TWI
abbot
сообщение Feb 26 2006, 13:10
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 16-02-06
Пользователь №: 14 395



Пытаюсь свзять ATmega128L и ATmega8L по I2C/TWI, и там и там использую аппаратный.

ATmega128 - Master Transmitter, ATmega8 - Slave Receiver.
Как правило все работает нормально, но иногда случается странная проблема: master не может сгенерировать start condition. Slave при этом вроде бы ничего не делает, и линию не держит. Ресет не помагает, ситуация исправляется только после отключения питания на Slave'е. Если код на ATmega128 запускать под JTAG-отладчиком, то вероятность возникновения такой ситуации резко увеличивается.

Питание 3.3В, подтяжки на I2C по 4.7k, скорость выставлена ~57600 bit/sec (кварц 7.3728МГц, TWBR=0x38, TWPS=0), расстояние между контроллерами ~10см.

Если контроллеры поменять местами, ситуация тоже иногда возникает, и питание нужно убирать опять же на Slave'е.

В чем же могут быть грабли? Уже окончательно задолбался с этими подвисаниями sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Feb 27 2006, 13:22
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Такая ситуация возникает если линия SCL или SDA оказыватеся приятнутой к земле. К сожалению у AVR нет аппаратного таймаута и модуль TWI просто зависает пока линии не осовободятся.
Надо делать софтом... если по таймауту операция не завершилась отключать TWI и ждать пока SDA и SCL не установятся в 1.
И на слейве тоже полезно по таймауту вытсавлять STOP (или отключать и подключать TWI)

Обычно такая ситуация возникает при ошибках на шине ( пропущенный клок....) слейв просто удерживает линию SDA в 0
Go to the top of the page
 
+Quote Post



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

 


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


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