roboforum.ru

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

I2C 2 мастера на шине или как сообщить мастеру...

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

I2C 2 мастера на шине или как сообщить мастеру...

Сообщение RoboTok » 06 янв 2009, 15:29

Всем привет !

Вот делаю связь между модулями на I2C шине и возник вопрос.

Есть ведущий модуль с МК и ведомый.

Как может сообщить ведомый, что у него есть вопросы к ведущему ?
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение EdGull » 06 янв 2009, 15:33

1. стать ведущим (режиммультимастер)
2. дернуть отдельную ногу
3. ждать когда его спросят.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение avr123.nm.ru » 06 янв 2009, 16:13

Притянуть можно любую линию i2c а мастер обнаружит это и сигналом по другой линии попросит отпустить и пообщаются потом.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение =DeaD= » 06 янв 2009, 17:59

avr123.nm.ru писал(а):Притянуть можно любую линию i2c а мастер обнаружит это и сигналом по другой линии попросит отпустить и пообщаются потом.

Только надо понять, кто это трогал линию :wink:

(Если i2c-устройств кучка)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение Серг » 07 янв 2009, 09:36

ну так опросить у кого вопроы есть
Последний раз редактировалось EdGull 07 янв 2009, 10:03, всего редактировалось 1 раз.
Причина: излишнее цитирование!
Серг
 
Сообщения: 6
Зарегистрирован: 08 июл 2006, 23:55
Откуда: Томск
ФИО: Дрожжин Сергей

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение RoboTok » 07 янв 2009, 14:08

Что то сложный этот I2C по сравнению с UART-ом.
Плюнул, готовую библиотеку скачал.
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение avr123.nm.ru » 07 янв 2009, 14:28

RoboTok писал(а):готовую библиотеку скачал.

Для того они и есть, чтоб использовать.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение RoboTok » 09 янв 2009, 15:37

Кто имел опыт с I2C подскажите пожалуйста, если поставить подтяжки на плату Мастера и Ведомого может ли шина не работать совсем ? И ещё на выходе у каждого устройства резисторы по 330 Ом.
Скорость 100кГц.
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение =DeaD= » 09 янв 2009, 15:38

Смотря какие резисторы стоят :) правило для параллельных резисторов никто не отменял :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение RoboTok » 09 янв 2009, 15:39

Подтяжка 4.7кОм с каждой стороны
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение =DeaD= » 09 янв 2009, 15:42

На выходе 330 Ом, подтяжка получилась 4700 Ом / 2 = 2350 Ом. Искажение сигнала = 330/2350 = 14%, вроде не должно валить всё подряд... но и красоты не наблюдается, поставьте 150 Ом резисторы на входах\выходах и 10 кОм резисторы с каждой стороны или уберите резисторы с 1 стороны и попробуйте еще раз.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение RoboTok » 09 янв 2009, 15:47

330 Ом у каждого модуля, то есть 660 Ом между ними !
У меня ведомый вообще не реагирует никак !
Точнее у него не возникает прерываний.
Вот мне и интересно, может быть что просто ведомый не правильно адрес получает и не реагирует из-за этого ?
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение =DeaD= » 09 янв 2009, 16:01

RoboTok писал(а):330 Ом у каждого модуля, то есть 660 Ом между ними !

Имхуется мне, что не важно сколько между модулями, важно насколько мешает резистор подтягивать 1 модулю линии к земле.

RoboTok писал(а):У меня ведомый вообще не реагирует никак! Точнее у него не возникает прерываний.
Вот мне и интересно, может быть что просто ведомый не правильно адрес получает и не реагирует из-за этого ?

Мне кажется, что действительно проблемы не из-за резисторов, они по идее сбои могут давать, но чтобы 100% всё валить - вряд ли...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение Сергей » 09 янв 2009, 16:48

=DeaD= писал(а):...линии к земле.

А что тут к земле нада подтягивать? На I2C нужны подтягивающие резисторы на VCC
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: I2C 2 мастера на шине или как сообщить мастеру...

Сообщение =DeaD= » 09 янв 2009, 16:57

2Сергей: А как работает I2C не забываешь? :) как оба устройства работают с одной и той же линией подтянутой через резистор к VCC? Не к земле ли её переодически подтягивают жестко? :)

Вот только т.к. тут 330 Ом стоит у каждого девайса, то и к земле они её через резистор подтягивают.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

След.

Вернуться в Микроконтроллеры

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

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

cron