roboforum.ru

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

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

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

NorthStar » 29 сен 2010, 18:37

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

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

=DeaD= » 29 сен 2010, 20:39

Может всё-таки I2C? :wink:

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

NorthStar » 01 окт 2010, 21:48

Исправил. Но легче не стало. Почему как-то всё недоделано (((
Я не верю, что в рунете так мало энтузиастов в области микроконтроллеров.

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

=DeaD= » 01 окт 2010, 21:50

Возможно их мало для PIC, тут в основном все под AVR пишут :pardon:

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

NorthStar » 24 окт 2010, 13:52

Подскажите - хоть как для AVR это сделать?

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

Radist » 24 окт 2010, 16:10


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

Romikgy » 24 окт 2010, 16:15


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

Drunya » 24 окт 2010, 20:21

:D У ATMEL есть домен atmle.com. Видно, много клиентов промазывают по буквам :D

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

Zeus » 26 окт 2010, 11:28

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


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

I2C изначально МультиМастерная среда. Любой Мастер может "передавать" и "принимать".
Если есть нормальная бибилиотека для Мастера, то ее можно и для Слейва использовать, применив только функцию приема "прием".

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

NorthStar » 26 окт 2010, 20:26

Я использую MikroC. Я вроде описание читал и из него не увидил, что там много мастеровможет быть.
Как я понял алгоритм - мастер опрашивает модули, а Рабы отвечают и сами инициировать передачу не могут.

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

Там в содерждании ссылки на русский перевод.


cron
Rambler\'s Top100 Mail.ru counter