2 МК по шине I2C

Модератор: boogyman

Ответить
Аватара пользователя
Maks_24
Новичок
Сообщения: 3
Зарегистрирован: 25 янв 2014, 23:07

2 МК по шине I2C

#1

Сообщение Maks_24 »

Здравствуйте ув. радиолюбители.
Прошу сразу не пинать за ,может быть, тупые вопросы(я начинающий программист МК).
Такой вопрос!
Как соединить 2 и более МК (Attiny461) по I2c. Причем по этой шине к одному из МК подключены часы ДС1307.
В общем делаю приборную панель на АВТО( термометр, бакомер, часы, спидометр и что-то типа Бортового компа). По отдельности приборы работают, но кнопки управления, настройки приборов и т.д подключены только к БК. Также при вкл. габаритов в приборы необходимо записать код изменения яркости (Спасибо Админу за помощь).
Короче запарился вообще с этой шиной(Master,Slave и т.д). Понял только что система работает в режиме Multi-masner или Арбитраж.
Программу пишу в CodeVision!
Спасибо за ответы.
Последний раз редактировалось Maks_24 27 янв 2014, 16:19, всего редактировалось 1 раз.
Аватара пользователя
boogyman
Модератор
Сообщения: 183
Зарегистрирован: 25 дек 2011, 22:48
Откуда: Москва

Re: 2 МК по шине I2C

#2

Сообщение boogyman »

Рекомендую ознакомиться http://radioparty.ru/index.php/literatu ... hinaushich , http://radioparty.ru/index.php/literatu ... en-dannymi , если еще не читали
Аватара пользователя
Maks_24
Новичок
Сообщения: 3
Зарегистрирован: 25 янв 2014, 23:07

Re: 2 МК по шине I2C

#3

Сообщение Maks_24 »

Лебедева уже прочитал(по этой книге осваивал CVAVR). Есть там примеры с I2c, но о работе двух и более ведущих МК ни слова.
Посмотрю вторую книгу может что нибудь прояснится.
Спасибо.
Аватара пользователя
Maks_24
Новичок
Сообщения: 3
Зарегистрирован: 25 янв 2014, 23:07

Re: 2 МК по шине I2C

#4

Сообщение Maks_24 »

По теории все выглядит очень просто. Но запустив кодвижн - ступор.
Можно ли использовать стандартные библиотеки i2c для работы в режиме арбитраж?
Как определять занятость шины? Может так(PA0-sda,PA1-scl):

Код: Выделить всё

... 
if(PINA.0 == 1)//определяем свободна ли шина
{
       i2c_start();
        i2c_write(0х1а);// обращаемся к нужному устройству
        i2c_write(data);
       i2c_stop();// пишем данные в шину
       
}
...

Не могу сообразить как это все отобразить!
Ответить