I2C Проблемы? Реализации?

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

I2C Проблемы? Реализации?

Сообщение Виталий » 23 ноя 2004, 20:57

Если кто-то работал с этим протоколом, то попрошу высказаться.
Сразу возникает вопрос, в нем есть контроль ошибок?
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Сообщение aliens » 23 ноя 2004, 21:00

На robo.com.ua есть статья про протокол, почитай мож найдешь ответ
aliens
 
Сообщения: 171
Зарегистрирован: 26 окт 2004, 14:16
Откуда: Севастополь сити...

Сообщение setar » 24 ноя 2004, 19:27

Поговорил с коллегой по работе, он реализовавал самостоятельно протокол последовательного асинхронного обмена меж контроллерами, обещал поделиться наработками.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение setar » 24 ноя 2004, 19:37

aliens писал(а):На robo.com.ua есть статья про протокол, почитай мож найдешь ответ

вот эта статья http://www.robo.com.ua/articles.php?cmd=22&id=28
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение Змей-Горыныч » 03 мар 2005, 07:04

А вот ещё инфа про I2C http://www.gaw.ru/html.cgi/txt/interface/iic/index.htm
Это перевод Datasheet-а с интернетовского сайта производителя.  :!:
В электронике чудес не бывает! Бывают плохие контакты!
Аватара пользователя
Змей-Горыныч
 
Сообщения: 70
Зарегистрирован: 01 мар 2005, 14:54
Откуда: г. Томск

Сообщение Змей-Горыныч » 27 апр 2005, 06:10

:?:
Ну так что? Никому I2C не приглянулся? Никто не использует этот протокол обмена?
Чувствую, придётся взяться за освоение самому...
В электронике чудес не бывает! Бывают плохие контакты!
Аватара пользователя
Змей-Горыныч
 
Сообщения: 70
Зарегистрирован: 01 мар 2005, 14:54
Откуда: г. Томск

Сообщение ASin » 27 апр 2005, 11:53

Змей-Горыныч писал(а)::?:
Ну так что? Никому I2C не приглянулся? Никто не использует этот протокол обмена?
Чувствую, придётся взяться за освоение самому...


Осваиваю его :-)
Приятная штука, недостатков пока не замечено.
Среди железа -- полный зоопарк. Master -- at90s2313, програмная реализация (переходник COM<->I2C). Slave 1 -- atmega8, железный I2C (Контроллер двигателей). Slave 2 -- какой-то PIC, похоже железный I2C (сонар SRF08).
Обе пары Master-Slave работают замечательно, подключать оба устройства однвременно буду на днях.
ASin
 
Сообщения: 155
Зарегистрирован: 18 дек 2004, 03:14
Откуда: Москва

Сообщение -= Александр =- » 28 апр 2005, 17:10

У меня вот вопрос возник: есть у меня пачка восьминогих ЕЕПРОМин I2C, можно ли их все в один контроллер параллельно воткнуть? И как тогда выбирать с какой из них общаться? Да и вообще как в нее записать и прочитать байт?

Теоретически то все понятно, но вот с шиной этой раньше дело не имел, да и память внешнюю только параллельную юзал...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение Stepan » 28 апр 2005, 17:19

-= Александр =- писал(а):У меня вот вопрос возник: есть у меня пачка восьминогих ЕЕПРОМин I2C, можно ли их все в один контроллер параллельно воткнуть? И как тогда выбирать с какой из них общаться? Да и вообще как в нее записать и прочитать байт?

Теоретически то все понятно, но вот с шиной этой раньше дело не имел, да и память внешнюю только параллельную юзал...

Зачем параллельно когда можно последовательно.  :о) Если я правильно помню- у таких еепром есть спец входы для задания адреса- то есть просто задаёшь всем разные адреса, вешаешь на одну шину и вперёд. Сам контроллер в этом случае будет генерировать нужный адрес слейва.
Stepan
 
Сообщения: 39
Зарегистрирован: 16 апр 2005, 19:49
Откуда: Санкт-Петербург

Сообщение -= Александр =- » 30 апр 2005, 01:33

Тоесть ноги адреса - это адрес на шине, а не в памяти?
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение ASin » 30 апр 2005, 03:35

-= Александр =- писал(а):У меня вот вопрос возник: есть у меня пачка восьминогих ЕЕПРОМин I2C, можно ли их все в один контроллер параллельно воткнуть? И как тогда выбирать с какой из них общаться?


С ЕЕПРОМами не общался, но, по идее, каждая посылка в i2c начинается с адреса slave. Тот slave, который получил свой адрес, продолжает слушать шину, остальные отключаются. Сонар, например, по дефолту имеет адрес 0xE0. Для того, чтобы повесить их на шину несколко штук, надо каждому прописать уникальный адрес. Это делается по той же i2c, спец-последовательностью команд.

-= Александр =- писал(а): Да и вообще как в нее записать и прочитать байт?


Есть тут под рукой библиотечка для работы с ЕЕПРОМ. Там доступ организован побайтово. То есть для записи в память по шине посылается пакет [Адрес устройства, Старший байт адреса ячейки памяти, Младший байт я.п., Новое значение]. Для чтения -- аналогично.
Однако, в даташите по какому-то ЕЕПРОМу видел такие слова, как page write и sequential read. В принципе, размер пакета i2c неограничен -- можно хоть всё подряд считывать.
ASin
 
Сообщения: 155
Зарегистрирован: 18 дек 2004, 03:14
Откуда: Москва

Сообщение Stepan » 30 апр 2005, 23:09

-= Александр =- писал(а):Тоесть ноги адреса - это адрес на шине, а не в памяти?

Да- только это последние бита три -четыре адреса- остальные предопределены для вида микросхемы -в данном случае еепром.
Про то, что адрес можно установить программно не слышал- но почему нет.
Stepan
 
Сообщения: 39
Зарегистрирован: 16 апр 2005, 19:49
Откуда: Санкт-Петербург

Сообщение Змей-Горыныч » 06 фев 2006, 14:30

Воистину, пока сам не поставишь себе конкретную задачу, и не разберёшься САМ, всё кажется сложно и непонятно.
Зато когда припрёт - берёшь и делаешь. Вот, например я закончил системку недавно, где на шине TWI (aka I2C) 5 контроллеров ATmega16. Использовал хардовые модули TWI. Не просто было только по началу. Когда разобрался - очень даже "ничегошный" протокол!
Аватара пользователя
Змей-Горыныч
 
Сообщения: 70
Зарегистрирован: 01 мар 2005, 14:54
Откуда: г. Томск

Сообщение DeHuCoH » 06 фев 2006, 16:28

реализовывал программно i2c на at89c51. работал как с еепром, так и с srf и вроде ничего сложного. есть у каждого девайса свой адрес, и контроллер просто выбирает, с кем работать.но для еепромов есть помоему ограничение на длину пакета,для каких то 16 байт,для каких то 64 да и инфы помоему много.
DeHuCoH
 
Сообщения: 6
Зарегистрирован: 20 июн 2005, 18:09

Сообщение NeoLP » 07 фев 2006, 17:25

Я реализовывал этот протокол в меге и связывал два процессора между собой, изумительная вещь, адресация, контроль того, что данные приняты, а еще возможно объединять на одной линии 3.3в устройства и 5в, песня и сказка...
Аватара пользователя
NeoLP
 
Сообщения: 62
Зарегистрирован: 01 авг 2005, 12:44
Откуда: Novosibirsk

След.

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

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

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

cron