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

 
 
 
Closed TopicStart new topic
> USI ATTiny2313 в режиме 2-Wire (I2C) на asm., Помогите примером кода...
Deka
сообщение Dec 4 2009, 17:07
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Всем привет. 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.
Да, забыл сказать, мега - мастер, а тиньки - слэйвы.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 4 2009, 20:36
Сообщение #2


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(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

Сообщение отредактировал ILYAUL - Dec 4 2009, 20:39


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Deka
сообщение Dec 6 2009, 06:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Для того, чтобы мастер в виде меги получил после старта код 0x08 достаточно просто подтяжки на шине и не мешать ему. На старт тинька слэйв никак не должна реагировать (имеется в виду никакими сигналами на шине). Поэтому мастер получает 0x08 в ответ на формирование СТАРТ и начинает передавать адрес. После передачи адреса он ждёт ACK от тини. Тини нормально принимает адрес, но сформированный ею ACK (разными способами) мега не видит.
P.S. А темку сейчас поисчу... Спасибо.
P.P.S. Поиск не пашет. Всё время ругается на то, что запрос меньше трёх символов или использовались недопустимые. Попробую через гугл поискать на форуме...
P.P.P.S. Кое что накопал - спасибо за наводку. К концу недели приедет цифровой осциллограф из Китая - смогу проверить нормально уровни сигналов на шине, а то может просто тинька линию опустить не может...
Go to the top of the page
 
+Quote Post

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

 


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


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