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

 
 
> Tiny2313+USI = I2C, Кто-нибудь смог завести?
MTh
сообщение Jul 12 2008, 20:24
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771



Столкнулся с такой проблемой:
Есть Мега 8 с TWI на борту.
Есть Tiny2313 c USI на борту.
Надо заставить их общаться по интерфейсу I2C.

С мегой никаких проблем: TWI завелся, проверен на DS1307 - ACK есть, на данный момент больше ничего не интресует.
Проблема в Тини. USI не хочет отправлять ACK.

Долго рылся в инете, нашел вот это: http://www.avrfreaks.net/index.php?name=PN...t=usi+slave+i2c

Там выложен пример кода и для Меги (Мастер) и для Тини-ведомый (Code for Sharing.rar), и автор утверждает что все работает.

Я адаптировал этот код к CV AVR - ACKов нет...
Путем дебагинга с помощью светодиодов выяснил что тинька не узнает свой адрес. Судя по коду и даташиту - все нормально.

Где я не прав?
Прикрепленные файлы
Прикрепленный файл  Code_for_Sharing.rar ( 489.38 килобайт ) Кол-во скачиваний: 104
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Jul 15 2008, 10:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Да не надо никаким апнотам верить. Есть документы по данной шине - спецификация. Если реализуете протокол конкретной микрухи - то даташит на данную микруху читаем.

В общих чертах - всё просто. Возьмём устройство 1 и 2 (U1,U2). Если U1 выдаёт байт на шину, то U2 подтверждает приём ASKом. И наоборот. При пакетном чтении - если slave не хочет больше читать, то не выдаёт ASK. Master выдаёт стоп и прекращает передачу.
Go to the top of the page
 
+Quote Post



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

 


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


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