roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 15:34

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 янв 2010, 04:13 
Не в сети
Аватара пользователя

Зарегистрирован: 10 мар 2009, 22:31
Сообщения: 29
Откуда: Odessa
Добрый День Всем!
Делаю часы.
Часы состоят из 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
СообщениеДобавлено: 17 янв 2010, 12:07 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Acronis true image !!! почтавьте и не будет терятся даже при поломках дисков. torrents.ru
torrents.ru/forum/viewtopic.php?t=2383324

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 янв 2010, 17:22 
Не в сети
Аватара пользователя

Зарегистрирован: 10 мар 2009, 22:31
Сообщения: 29
Откуда: Odessa
Ага! Только теперь уже слишком рано это делать :)

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 янв 2010, 22:19 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
1)читать DS там про TWI всё придельно понятно и просто
2)можно обойтись одним мк (мегой)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 янв 2010, 22:50 
Не в сети
Аватара пользователя

Зарегистрирован: 10 мар 2009, 22:31
Сообщения: 29
Откуда: Odessa
Глупый вопрос: TWI и I2C в моем случае одно и то же?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 янв 2010, 22:53 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
одно и тоже


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 янв 2010, 23:49 
Не в сети
Аватара пользователя

Зарегистрирован: 10 мар 2009, 22:31
Сообщения: 29
Откуда: Odessa
А каким регистром выставить TWAR для Tiny2313? В datasheets такого регистра нет :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 18 янв 2010, 00:59 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
естественно нет там модуля TWI за то есть модуль USI
который можно использовать для TWI но для этого нужно его правильно настроить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 фев 2010, 05:43 
Не в сети
Аватара пользователя

Зарегистрирован: 10 мар 2009, 22:31
Сообщения: 29
Откуда: Odessa
Вот как я увидел подпрограмму для считывания данных мастером со слейва

/* 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 ругается постоянно.
Кто может откомпилировать и скинуть прошивку??? (я еще только учусь - до шамана мне еще курить и курить)


Вложения:
Комментарий к файлу: код слейва 2313 (тот что я написал, а не тот что по ссылке)
1taras.c [12.15 КиБ]
Скачиваний: 191
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 фев 2010, 08:18 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Это на каком языке?

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 17 фев 2010, 17:02 
Не в сети
Аватара пользователя

Зарегистрирован: 10 мар 2009, 22:31
Сообщения: 29
Откуда: Odessa
Vooon писал(а):
Это на каком языке?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связь ATmega16&ATiny2313 по I2C
СообщениеДобавлено: 05 мар 2010, 22:16 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
Ув. bravo24 вы раньше писали на языке си?

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

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO