Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USI ATTiny2313 в режиме 2-Wire (I2C) на asm.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Deka
Всем привет. 1111493779.gif
Мне надо подключить две тиньки к меге8535. Был выбран 2-х проводный интерфейс типа I2C. У меги он реализуется аппаратно на TWI, а у тинек программно-аппаратно на USI. TWI на меге вроде как запустился, а вот тиньку никак победить не удается. crying.gif Не видит мега ACK от тиньки после адреса и всё. Пробовал разные варианты - не помогает. Может быть у кого есть готовый код на ассемблере для USI тинек? Для TWI меги тоже не откажусь.
Спасибо.
P.S. После получения адресного байта пробовал на один так SCK притягивать SDA к нулю формируя таким образом ACK - не помогло. Также пробовал сделать так, как в апликухе от атмела. Там ACK формируется самим USI включаемым всего на один такт SCK. Тоже не работает. Мега не видит ACK. В меге идёт банальная проверка состояния TWI после выполнения операции по отправке адреса девайса + бит R/W.
Да, забыл сказать, мега - мастер, а тиньки - слэйвы.
ILYAUL
Цитата(Deka @ Dec 4 2009, 20:07) *
Всем привет. 1111493779.gif
Мне надо подключить две тиньки к меге8535. Был выбран 2-х проводный интерфейс типа I2C. У меги он реализуется аппаратно на TWI, а у тинек программно-аппаратно на USI. TWI на меге вроде как запустился, а вот тиньку никак победить не удается. crying.gif Не видит мега ACK от тиньки после адреса и всё. Пробовал разные варианты - не помогает. Может быть у кого есть готовый код на ассемблере для USI тинек? Для TWI меги тоже не откажусь.
Спасибо.
P.S. После получения адресного байта пробовал на один так SCK притягивать SDA к нулю формируя таким образом ACK - не помогло. Также пробовал сделать так, как в апликухе от атмела. Там ACK формируется самим USI включаемым всего на один такт SCK. Тоже не работает. Мега не видит ACK. В меге идёт банальная проверка состояния TWI после выполнения операции по отправке адреса девайса + бит R/W.
Да, забыл сказать, мега - мастер, а тиньки - слэйвы.


Есть такая темка "Помогите по i2c, вопрос по asm, Подскажите начинающему, не ясны некоторые моменты" Кстати , а что у Вас после старта -тинька отвечает кодом 0x08
Deka
Для того, чтобы мастер в виде меги получил после старта код 0x08 достаточно просто подтяжки на шине и не мешать ему. На старт тинька слэйв никак не должна реагировать (имеется в виду никакими сигналами на шине). Поэтому мастер получает 0x08 в ответ на формирование СТАРТ и начинает передавать адрес. После передачи адреса он ждёт ACK от тини. Тини нормально принимает адрес, но сформированный ею ACK (разными способами) мега не видит.
P.S. А темку сейчас поисчу... Спасибо.
P.P.S. Поиск не пашет. Всё время ругается на то, что запрос меньше трёх символов или использовались недопустимые. Попробую через гугл поискать на форуме...
P.P.P.S. Кое что накопал - спасибо за наводку. К концу недели приедет цифровой осциллограф из Китая - смогу проверить нормально уровни сигналов на шине, а то может просто тинька линию опустить не может...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.