Заголовок сообщения: Разработка Slave устройства для I2C
Добавлено: 29 сен 2010, 18:37
Зарегистрирован: 13 сен 2010, 12:47 Сообщения: 317
Добрый день! Подскажите - как на С под Pic16 реализовать Slave -устройство по шине I2C. Для работы мастера есть встроенная библиотека, а как Slave сделать?
Последний раз редактировалось NorthStar 01 окт 2010, 21:46, всего редактировалось 1 раз.
Заголовок сообщения: Re: Разработка Slave устройства для I2C
Добавлено: 26 окт 2010, 11:28
Зарегистрирован: 28 июл 2009, 10:02 Сообщения: 862 Откуда: Самара
ФИО: Павел Сергеевич
Цитата:
подскажите - как на С под Pic16 реализовать Slave -устройство по шине I2C. Для работы мастера есть встроенная библиотека, а как Slave сделать?
"Си" - это простоя язык программирования. Встроенная библиотека для мастера где? в каком компиляторе или среде разработки?
I2C изначально МультиМастерная среда. Любой Мастер может "передавать" и "принимать". Если есть нормальная бибилиотека для Мастера, то ее можно и для Слейва использовать, применив только функцию приема "прием".
Заголовок сообщения: Re: Разработка Slave устройства для I2C
Добавлено: 26 окт 2010, 20:26
Зарегистрирован: 13 сен 2010, 12:47 Сообщения: 317
Я использую MikroC. Я вроде описание читал и из него не увидил, что там много мастеровможет быть. Как я понял алгоритм - мастер опрашивает модули, а Рабы отвечают и сами инициировать передачу не могут.
Заголовок сообщения: Re: Разработка Slave устройства для I2C
Добавлено: 27 окт 2010, 10:08
Зарегистрирован: 28 июл 2009, 10:02 Сообщения: 862 Откуда: Самара
ФИО: Павел Сергеевич
МикроС не панацея.
Если внимательнее вчитались бы то там написано примерное следующее: "... эта библиотека для протокола I2C с одним мастером для контроллера серии PIC16F..."
Для начала стоило ознакомиться с самим протоколом и на физическом и на логическом уровнях. Почитайте хотя бы: http://ru.wikipedia.org/wiki/I2C
Там рисунок кстати не совсем правильный приведен, а точнее частный случай, когда мастер один а ведомых много.
В тексте есть фраза перед ПРИМЕНЕНИЕМ: "...В любом случае, по спецификации шины все разрабатываемые устройства должны сбрасывать логику шины при получении сигнала СТАРТ или повторный СТАРТ и подготавливаться к приему адреса.
Тем не менее основные проблемы с использованием I2C шины возникают именно из-за того, что разработчики, «начинающие» работать с I2C шиной не учитывают того факта, что ведущий (часто — микропроцессор) не имеет монопольного права ни на одну из линий шины...."
Т.е. бибилиотека в МикроСи не предназначена и не учитывает возможность работы в шине нескольких мастеров. Ну не стали разработчики мучаться, хотя не так сложно проверку дописать.
На самом деле slave устройство проще сделать чем мастер. Достаточно проверять линию "клока" и после "старта" читать линию "дата" и т.п. Арбитраж и обработку коллизий делать не нужно. А вот нормальный мастер должен все это уметь
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения