Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вопрос по TWI slave в AVR

Отправлено fmishin (95.86.232.17) 26 июля 2010, г. 15:22


Всем добрый день! Может, кто сталкивался со следующей ситуацией:

Есть соединённые по i2c (оптически развязан, SCL в одну сторону, SDA в обе) mega64 (master) и mega88 (slave). В мастере работа организована линейно - команда, ждём установки TWINT, следующая, ну и так далее. В слейве - по прерываниям, стандартный switch и смотрим в TWSR код операции.

Проблема заключается в следующем - и чтение, и запись почему-то проходят только в первый раз. После формирования мастером STOP слейв наглухо прижимает SCL к земле и разбудить его может только перезагрузка. В чём может быть причина? Отладка показала, что команду STOP слейв чувствует, т.е. TWSR становится как положено 0xA0, а при дальнейшей записи TWCR = (1<<TWSTO)|(1<<TWINT)|(1<<TWEN)|(1<<TWIE); виснет и жмёт к земле SCL.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 76:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru