roboforum.ru

Технический форум по робототехнике.

Связь ATmega16&ATiny2313 по I2C

Связь ATmega16&ATiny2313 по I2C

bravo24 » 17 янв 2010, 04:13

Добрый День Всем!
Делаю часы.
Часы состоят из 2-х основных модулей:
1-й Atmega 16: индикация
работа с DS1307
обработка будильников
включение исполнительных механизмов при их привязке к будильникам
опрос клавиатуры

2-й Atiny2313: опрос 2-х датчиков температуры DS18B20
передача значений температуры по I2C

Возникла проблема:

Как используя I2C протокол организовать опрос Slave Atiny2313 от master Atmega16:
1. Как прописать в slave адрес, к которому будет обращаться master?
(либо как его узнать, если он присваивается автоматически)
2. Как для slave организовать выдачу значений температуры при ообращении к нему master?

Поиск по нету дает результаты типа: ...слейв организовать очень сложно... и без всяких коментариев

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


Сами часы уже запустил. Идут!!!
Разводка платы протерялась при переустановке системы, но исходниками того, что есть могу запросто поделиться

Re: Связь ATmega16&ATiny2313 по I2C

avr123.nm.ru » 17 янв 2010, 12:07

Acronis true image !!! почтавьте и не будет терятся даже при поломках дисков. torrents.ru
torrents.ru/forum/viewtopic.php?t=2383324

Re: Связь ATmega16&ATiny2313 по I2C

bravo24 » 17 янв 2010, 17:22

Ага! Только теперь уже слишком рано это делать :)

А по существу вопроса у кого есть какие-нибудь идеи?

Переформулирую вопрос: как организовать передачу от slave к master информации по запросу от master?

P.S. Работаю в CodeVision.

Re: Связь ATmega16&ATiny2313 по I2C

ALHIMIK » 17 янв 2010, 22:19

1)читать DS там про TWI всё придельно понятно и просто
2)можно обойтись одним мк (мегой)

Re: Связь ATmega16&ATiny2313 по I2C

bravo24 » 17 янв 2010, 22:50

Глупый вопрос: TWI и I2C в моем случае одно и то же?

Есть ли какие-либо существенные тонкости?

Re: Связь ATmega16&ATiny2313 по I2C

ALHIMIK » 17 янв 2010, 22:53

одно и тоже

Re: Связь ATmega16&ATiny2313 по I2C

bravo24 » 17 янв 2010, 23:49

А каким регистром выставить TWAR для Tiny2313? В datasheets такого регистра нет :(

Re: Связь ATmega16&ATiny2313 по I2C

ALHIMIK » 18 янв 2010, 00:59

естественно нет там модуля TWI за то есть модуль USI
который можно использовать для TWI но для этого нужно его правильно настроить

Re: Связь ATmega16&ATiny2313 по I2C

bravo24 » 17 фев 2010, 05:43

Вот как я увидел подпрограмму для считывания данных мастером со слейва

/* read data from thermomodule */
unsigned char thermo_read(unsigned char address)
{

i2c_start();
i2c_write(address);
i2c_write(0);
i2c_start();
i2c_write(address);
data[0]=i2c_read(0);
data[1]=i2c_read(1);
data[2]=i2c_read(2);
data[3]=i2c_read(3);
i2c_stop();
return data[0];
return data[1];
return data[2];
return data[3];
}

вот так я пытаюсь вывести данные

{thermo_read(0x5);
temp11=data[0];
temp12=data[1];
temp21=data[2];
temp22=data[3];}
}


symbol[13] = data[0];
symbol[12] = data[1];

symbol[15] = data[2];
symbol[14] = data[3];

но на дисплей ничего не выводится

Добавлено спустя 3 минуты 31 секунду:
Еще не совсем понятно, где именно указывать данные для передачи мастеру в коде слейва :(

Добавлено спустя 5 минут 15 секунд:
Собрал схемку для экспериментов с протоколом I2c по этой ссылке http://ahtoxa.net/micros/tiny/leds/

Но не могу откомпилировать исходники, т.к. CV ругается постоянно.
Кто может откомпилировать и скинуть прошивку??? (я еще только учусь - до шамана мне еще курить и курить)
Вложения
1taras.c
код слейва 2313 (тот что я написал, а не тот что по ссылке)
(12.15 КиБ) Скачиваний: 191

Re: Связь ATmega16&ATiny2313 по I2C

Vooon » 17 фев 2010, 08:18

Это на каком языке?

Re: Связь ATmega16&ATiny2313 по I2C

bravo24 » 17 фев 2010, 17:02

Vooon писал(а):Это на каком языке?

Я пишу в codevision (Си), a антоха наверо писал в IAR or GCC (судя по ошибкам выдаваемым в codevision)

Re: Связь ATmega16&ATiny2313 по I2C

Romikgy » 05 мар 2010, 22:16

Ув. bravo24 вы раньше писали на языке си?

PS раз вы из Одессы можем связатся, и пообщатся на эту тему :)


Rambler\'s Top100 Mail.ru counter