Связь по I2C
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Связь по I2C
Есть Атмега64(мастер) и 3 Атмеги8 (слеивы), могу ли я полноценно управлять 3мя слейвами по этой шине. К трем 8м мегам будут подключены матрицы светодиодов на сдвиговых регистрах. Скажите как мне управлять этими матрицами по этой шине, какова должна быть логика работы? Как просто управлять сдвиговыми регистрами я знаю, я не понимаю как это делать передавая команды с одного МК по I2C на другой МК.
Не бейте за глупости, я только учусь)
- Реклама
Re: Связь по I2C
конечно можно связать по i2c любые устройства , поддерживающие стандарт .
поищите - гдето в своих сообщениях в этом форуме я приводил ссылку на библиотеку i2c ,
очень хорошая библиотека - поддерживает все режимы i2c мастер, слейв, мультимастер.
поищите - гдето в своих сообщениях в этом форуме я приводил ссылку на библиотеку i2c ,
очень хорошая библиотека - поддерживает все режимы i2c мастер, слейв, мультимастер.
Re: Связь по I2C
только учтите что i2c это внутриприборный интерфейс и на расстояния больше 2 метров работать не будет .
если на сайте не нашли ссылку, то поищите в интернете по автору Author: Pascal Stang.
если на сайте не нашли ссылку, то поищите в интернете по автору Author: Pascal Stang.
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
Нет не в библиотеке дело, я знаю как передавать данные по шине, я не очень понимаю что надо передавать что бы устройство на другом конце выполнило то что я от него хочу, меня интересует логика общения с другой микросхемой.igor-x писал(а):конечно можно связать по i2c любые устройства , поддерживающие стандарт .
поищите - гдето в своих сообщениях в этом форуме я приводил ссылку на библиотеку i2c ,
очень хорошая библиотека - поддерживает все режимы i2c мастер, слейв, мультимастер.
Грубо говоря как будет выглядить передача такой команды:
Миросхема с адресом таким то, выстави 1 на 5 ножке порта А, если на 2 ножке порта B есть высокий уровень, иначе выстави 0 на 3 ножке порта С.
Последний раз редактировалось zzontt Чт мар 28, 2013 10:09:36, всего редактировалось 1 раз.
Не бейте за глупости, я только учусь)
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
А вот это плохо, очень плохо что на два метра максимум, у меня задача примерно каждые 5-10 метров на шину повесить много управляемых устройств, что можно тогда в альтернативе использовать?igor-x писал(а):только учтите что i2c это внутриприборный интерфейс и на расстояния больше 2 метров работать не будет .
если на сайте не нашли ссылку, то поищите в интернете по автору Author: Pascal Stang.
Не бейте за глупости, я только учусь)
- Реклама
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Связь по I2C
.. старый добрый ModBus. http://ru.wikipedia.org/wiki/Modbusу меня задача примерно каждые 5-10 метров на шину повесить много управляемых устройств, что можно тогда в альтернативе использовать?
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Связь по I2C
на длинные линии я рекомендую Вам интерфейс RS485/422 (в Вашем случае оба подойдут)
протокол - самое простое UART.
мастер отправляет посылку в режиме 9-битного UART с адресом необходимого слейва. В этот момент все слейвы ждут свой адрес в режиме 9-битного UART.
Если мастер отправил адрес слейва, который находится сейчас на шине, то слейв и мастер переходят в режим 8-бит UART и мастер передает необходимые команды и данные слейву.
например мастер отправляет 5 байт:
1) код команды - 1 байт
2) данные команды - 2-5 байты
слейв должен знать, что состав посылки состоит из 5 байт, принимает все байты в буфер, а после окончания приема анализирует всю посылку от мастера.
например анализирует команду в 1 байте, в зависимости от его значения делает то, что нужно с данными из 2-5 байтов посылки.
вроде элементарно.
можно и ModBus, если хочется)
протокол - самое простое UART.
мастер отправляет посылку в режиме 9-битного UART с адресом необходимого слейва. В этот момент все слейвы ждут свой адрес в режиме 9-битного UART.
Если мастер отправил адрес слейва, который находится сейчас на шине, то слейв и мастер переходят в режим 8-бит UART и мастер передает необходимые команды и данные слейву.
например мастер отправляет 5 байт:
1) код команды - 1 байт
2) данные команды - 2-5 байты
слейв должен знать, что состав посылки состоит из 5 байт, принимает все байты в буфер, а после окончания приема анализирует всю посылку от мастера.
например анализирует команду в 1 байте, в зависимости от его значения делает то, что нужно с данными из 2-5 байтов посылки.
вроде элементарно.
можно и ModBus, если хочется)
Ставим плюсы: )
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
Ох, разбираться с этим все, куча времени уйдет ну что же будем разбираться)ibiza11 писал(а):на длинные линии я рекомендую Вам интерфейс RS485/422 (в Вашем случае оба подойдут)
протокол - самое простое UART.
мастер отправляет посылку в режиме 9-битного UART с адресом необходимого слейва. В этот момент все слейвы ждут свой адрес в режиме 9-битного UART.
Если мастер отправил адрес слейва, который находится сейчас на шине, то слейв и мастер переходят в режим 8-бит UART и мастер передает необходимые команды и данные слейву.
например мастер отправляет 5 байт:
1) код команды - 1 байт
2) данные команды - 2-5 байты
слейв должен знать, что состав посылки состоит из 5 байт, принимает все байты в буфер, а после окончания приема анализирует всю посылку от мастера.
например анализирует команду в 1 байте, в зависимости от его значения делает то, что нужно с данными из 2-5 байтов посылки.
вроде элементарно.
можно и ModBus, если хочется)
Не бейте за глупости, я только учусь)
Re: Связь по I2C
Тут, мне кажется, путаница теплого с мягким. UART определяет физическую организацию интерфейса (уровни, число бит инф. и стоповых, скорость передачи etc ). А ModBus -- логическую организацию ( ASCII mode -- RTU mode ), адреса , команды , CS/CRC и пр.ibiza11 писал(а): протокол - самое простое UART. ..
можно и ModBus, если хочется)
В дюжине сваянных мной систем UART работал по протоколу Modbus ( слегка модифицированному ) .
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
А можно тоже самое только для новичков, просто я не очень понял про что вы. как правильнее всего соединить несколько МК на растояниях порядка 10 метров?Jack_A писал(а):Тут, мне кажется, путаница теплого с мягким. UART определяет физическую организацию интерфейса (уровни, число бит инф. и стоповых, скорость передачи etc ). А ModBus -- логическую организацию ( ASCII mode -- RTU mode ), адреса , команды , CS/CRC и пр.ibiza11 писал(а): протокол - самое простое UART. ..
можно и ModBus, если хочется)
В дюжине сваянных мной систем UART работал по протоколу Modbus ( слегка модифицированному ) .Среда передачи -- токовая петля или InfraRed .
Не бейте за глупости, я только учусь)
Re: Связь по I2C
не забывайте упомянуть вашу предидущую тему. чтоб было понятно всем что реч идет о длине шины сотни метров.А можно тоже самое только для новичков, просто я не очень понял про что вы. как правильнее всего соединить несколько МК на растояниях порядка 10 метров?
http://radiokot.ru/forum/viewtopic.php?f=24&t=87405
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
Ну это да, устройства на этой шине будут висеть примерно каждые 10 метров.igor-x писал(а):не забывайте упомянуть вашу предидущую тему. чтоб было понятно всем что реч идет о длине шины сотни метров.А можно тоже самое только для новичков, просто я не очень понял про что вы. как правильнее всего соединить несколько МК на растояниях порядка 10 метров?
http://radiokot.ru/forum/viewtopic.php?f=24&t=87405
Да шина будет достаточно длинная, поэтому я пока что и в поиске оптимального решения, ибо не очень мне пока что ясно с какой стороны подойти к решению данной задачи.
Не бейте за глупости, я только учусь)
Re: Связь по I2C
вам эти решения уже по кругу третий раз рассказывают - берете за основу шину RS485 , пишете протокол обмена со своими устройствами.ибо не очень мне пока что ясно с какой стороны подойти к решению данной задачи.
все.
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
Правильно я понимаю что RS485, это UART? который есть либо аппаратно во многих МК, либо пишется программно, что не должно поставить проблем связи по этому протоколу между МК?
И на этой основе можно строить длинные линии?
Просто прочитав все выше тут, и в теме которую я поднимал до этого http://radiokot.ru/forum/viewtopic.php? ... 9#p1629219 мне кажется это оптимальным вариантом.
И на этой основе можно строить длинные линии?
Просто прочитав все выше тут, и в теме которую я поднимал до этого http://radiokot.ru/forum/viewtopic.php? ... 9#p1629219 мне кажется это оптимальным вариантом.
Не бейте за глупости, я только учусь)
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
И еще насчет логики работы МК связанных например UARTом. Правильно ли я понимаю, что управляющий контролер отправляет команду, а в принимающем должны быть прошиты варианты реакций на приходящие команды. Тобишь если управляемый контролер принял символ A, то он должен выполнить набор команд зашитых в него изначально соответствующих приходу символу А? или я все же неправильно понимаю принцип управления?
Не бейте за глупости, я только учусь)
-
zzontt
- Открыл глаза
- Сообщения: 54
- Зарегистрирован: Чт дек 13, 2012 19:31:00
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Связь по I2C
Да это я уже понял, этот вариант и буду разрабатывать.igor-x писал(а):вам эти решения уже по кругу третий раз рассказывают - берете за основу шину RS485 , пишете протокол обмена со своими устройствами.ибо не очень мне пока что ясно с какой стороны подойти к решению данной задачи.
все.
Не бейте за глупости, я только учусь)
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Связь по I2C
Добрый день. В моем сообщении нет ни слова о том, что ModBus и UART это протоколы одного и того же уровня инкапсуляции. Если прочтете мое сообщение полностью, то найдете там описание протокола уровнем выше физического, основанном на данных, передающихся по UART. Именно этот безымянный (кустарный) протокол "верхнего" уровня я и имел в виду, говоря "можно и ModBus". Т.е. или тот, что я описал или ModBus. Думаю теперь должно быть понятно.Jack_A писал(а): Тут, мне кажется, путаница теплого с мягким.
Ставим плюсы: )


