Разработка Slave устройства для I2C

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

Разработка Slave устройства для I2C

Сообщение NorthStar » 29 сен 2010, 18:37

Добрый день!
Подскажите - как на С под Pic16 реализовать Slave -устройство по шине I2C. Для работы мастера есть встроенная библиотека, а как Slave сделать?
Последний раз редактировалось NorthStar 01 окт 2010, 21:46, всего редактировалось 1 раз.
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Разработка Slave устройства для L2C

Сообщение =DeaD= » 29 сен 2010, 20:39

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

Re: Разработка Slave устройства для I2C

Сообщение NorthStar » 01 окт 2010, 21:48

Исправил. Но легче не стало. Почему как-то всё недоделано (((
Я не верю, что в рунете так мало энтузиастов в области микроконтроллеров.
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Разработка Slave устройства для I2C

Сообщение =DeaD= » 01 окт 2010, 21:50

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

Re: Разработка Slave устройства для I2C

Сообщение NorthStar » 24 окт 2010, 13:52

Подскажите - хоть как для AVR это сделать?
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Разработка Slave устройства для I2C

Сообщение Radist » 24 окт 2010, 16:10

Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Разработка Slave устройства для I2C

Сообщение Romikgy » 24 окт 2010, 16:15

die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Разработка Slave устройства для I2C

Сообщение Drunya » 24 окт 2010, 20:21

:D У ATMEL есть домен atmle.com. Видно, много клиентов промазывают по буквам :D
Глюк по-немецки означает "счастье"...
Аватара пользователя
Drunya
 
Сообщения: 196
Зарегистрирован: 05 июн 2007, 12:20
Откуда: Киев
прог. языки: C/C++, ASSEMBLER

Re: Разработка Slave устройства для I2C

Сообщение Zeus » 26 окт 2010, 11:28

подскажите - как на С под Pic16 реализовать Slave -устройство по шине I2C. Для работы мастера есть встроенная библиотека, а как Slave сделать?


"Си" - это простоя язык программирования.
Встроенная библиотека для мастера где? в каком компиляторе или среде разработки?

I2C изначально МультиМастерная среда. Любой Мастер может "передавать" и "принимать".
Если есть нормальная бибилиотека для Мастера, то ее можно и для Слейва использовать, применив только функцию приема "прием".
«Сон разума рождает чудовищ»
Аватара пользователя
Zeus
 
Сообщения: 862
Зарегистрирован: 28 июл 2009, 10:02
Откуда: Самара
ФИО: Павел Сергеевич

Re: Разработка Slave устройства для I2C

Сообщение NorthStar » 26 окт 2010, 20:26

Я использую MikroC. Я вроде описание читал и из него не увидил, что там много мастеровможет быть.
Как я понял алгоритм - мастер опрашивает модули, а Рабы отвечают и сами инициировать передачу не могут.
NorthStar
 
Сообщения: 317
Зарегистрирован: 13 сен 2010, 12:47

Re: Разработка Slave устройства для I2C

Сообщение Zeus » 27 окт 2010, 10:08

МикроС не панацея.

Если внимательнее вчитались бы то там написано примерное следующее: "... эта библиотека для протокола I2C с одним мастером для контроллера серии PIC16F..."

Для начала стоило ознакомиться с самим протоколом и на физическом и на логическом уровнях.
Почитайте хотя бы: http://ru.wikipedia.org/wiki/I2C

Там рисунок кстати не совсем правильный приведен, а точнее частный случай, когда мастер один а ведомых много.

В тексте есть фраза перед ПРИМЕНЕНИЕМ: "...В любом случае, по спецификации шины все разрабатываемые устройства должны сбрасывать логику шины при получении сигнала СТАРТ или повторный СТАРТ и подготавливаться к приему адреса.

Тем не менее основные проблемы с использованием I2C шины возникают именно из-за того, что разработчики, «начинающие» работать с I2C шиной не учитывают того факта, что ведущий (часто — микропроцессор) не имеет монопольного права ни на одну из линий шины...."

Т.е. бибилиотека в МикроСи не предназначена и не учитывает возможность работы в шине нескольких мастеров. Ну не стали разработчики мучаться, хотя не так сложно проверку дописать.

Вкратце вот так:
iic_r.pdf
(179.42 КиБ) Скачиваний: 0

Подробнее:
I2C_BUS_SPECIFICATION_3.pdf
(279.86 КиБ) Скачиваний: 0


На самом деле slave устройство проще сделать чем мастер.
Достаточно проверять линию "клока" и после "старта" читать линию "дата" и т.п. Арбитраж и обработку коллизий делать не нужно.
А вот нормальный мастер должен все это уметь ;)

Добавлено спустя 1 минуту 32 секунды:
Посмотрите еще здесь: http://www.gaw.ru/html.cgi/txt/interface/iic/index.htm

Там в содерждании ссылки на русский перевод.
«Сон разума рождает чудовищ»
Аватара пользователя
Zeus
 
Сообщения: 862
Зарегистрирован: 28 июл 2009, 10:02
Откуда: Самара
ФИО: Павел Сергеевич


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

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

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