Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Связь двух АВРов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Anjey_N
Можно ли соединить 2 МК по интерфейсу 1-Wire?
Nanobyte
Цитата(Anjey_N @ Nov 3 2008, 19:44) *
Можно ли соединить 2 МК по интерфейсу 1-Wire?

Почему бы и нет, один МК будет изображать пассивное устройство (Slave), а второй будет Master.
Но, ИМХО конечно, у AVR есть более удобные интерфейсы для межсоединений, например UART и SPI, а также I2C.
Anjey_N
Цитата(Nanobyte @ Nov 3 2008, 20:10) *
Почему бы и нет, один МК будет изображать пассивное устройство (Slave), а второй будет Master.
Но, ИМХО конечно, у AVR есть более удобные интерфейсы для межсоединений, например UART и SPI, а также I2C.

а если длина линии связи 10 метров?
aesok
Цитата(Anjey_N @ Nov 3 2008, 20:21) *
а если длина линии связи 10 метров?


Чтобы вам смогли помочь, укажите еще требуемую скорость передачи информации.

Анатолий.
SasaVitebsk
Цитата(Anjey_N @ Nov 3 2008, 19:21) *
а если длина линии связи 10 метров?

Ниже - лично моё мнение.

Для 10 метров подойдёт I2C, а также RS232/RS485 с любыми драйверами. Можно использовать и спец режимы.

Эти интерфейсы являются также более скоростными. I2C/RS485 пригодны для подключения нескольких устр-в. В том числе и в мультимастер режиме.

1-wire интерфейс имеет несколько недостатков. Причём существенных.
1) Низкая скорость обмена.
2) В рамках протокола - незначительный размер сообщения.
3) Отсутствие реальной возможности работы по прерыванию (или городить огород).
4) Исходя из п.3. Сложность работы системы в реалтайм, с одновременным обслуживанием 1-wire протокола.
5) сжирает много ресурсов, при том бесполезно.

Преимущества RS485.
1) Аппаратная возможность расширения.
2) аппаратная поддержка
3) Жрёт мало ресурсов
Скорость до 2Мбит. Найболее приемлемая 100 кбит

Преимущество I2C
1) Простота реализации (в том числе и программная)
2) Возможность расширения
3) аппаратная поддержка
4) Жрёт очень мало ресурсов
5) завершённые простые протоколы
Скорость 400/100 кбит
Artem_Petrik
Цитата
Для 10 метров подойдёт I2C, а также RS232/RS485

Ну, I2C я бы советовать не стал, он для таких длин не предназначался, емкость кабеля очень влиять будет. А вот UART на скоростях сравнимых с 1wire покатит даже без драйверов. Ну только буфернуть его на всякий пожарный скажем HC125-ой. Заодно на ней же можно сделать коммутатор приема/передачи, чтоб обойтись только 2-мя проводами.
Но это все любительство. Для серьезного проекта - RS485 наилучший выбор.
SasaVitebsk
Цитата(Artem_Petrik @ Nov 3 2008, 23:20) *
Ну, I2C я бы советовать не стал, он для таких длин не предназначался, емкость кабеля очень влиять будет.

На точке опоры проскакивали сообщения, что в новых домах, датчики температуры ставят. Или что-то подобное. До ста метров. Говорят очень устойчиво работает.

Принципиально возразить нечего. Шина - статическая. Если значительно уменьшить скорость, то вполне... Хотя я не призываю, а просто отмечаю. Тут наверное больше вопрос помех...

Если речь идёт о промышленном изделии, то думать нечего - есть соответствующие стандартные интерфейсы: RS232,RS485,CAN. Если о поделке - то I2C будет вполне работоспособна - минимум на 100кГц я думаю. Сопротивления я бы уменьшил Ом до 750.
Anjey_N
Прочитал все ваши сообщения, большое спасибо!

Суть моей задумки проста.

Первый МК будет динамически опрашивать опрашивать 12 кнопок. Номер нажатой кнопки будет передавать в линию связи. Назад будет получать отклик и включать соответствующий номеру нажатой кнопки светодиод. Устройство будет сделано в виде пульта. 1111493779.gif

Второй МК будет управлять исполнительным устройством (в моём случае калибратором П320).
Это устройство планирую сделать для облегчения труда при метрологии аппаратуры, тк надоело крутить ручки калибратора вручную, да и ходить постоянно от компа к нему - тоже надоедает. А так метролог будет сидеть за компом, и не вставая со стула управлять калибратором (задавать напряжение) .
Вот поэтому и вопрос какой лучше применить интерфейс? Для 485 , я так понимаю, нужны дополнительные микросхемы. А хотелось бы слепить из того что есть - на пульт ATiny2313 или ATmega8, на управление - ATmega8.
gormih
Цитата(Anjey_N @ Nov 4 2008, 22:46) *
Для 485 , я так понимаю, нужны дополнительные микросхемы. А хотелось бы слепить из того что есть - на пульт ATiny2313 или ATmega8, на управление - ATmega8.

Если хочется обойтись минимальным числом корпусов - присмотритесь к беспроводным технологиям от Атмел: http://atmel.com/dyn/products/devices.asp?family_id=676
Для данной задачи вполне сгодится, и будет по моему дешевле, чем использование нескольких микросхем интерфейса.
К тому же на кабеле и прочих причендалах сэкономите:-)

P.S.: Хотя указанные микроконтроллеры сделаны в основном под ZigBee стек - применение их именно для Zigbee вовсе не обязательно - соединение точка - точка вполне легко реализуемо.
GDI
Если нужно просто опрашивать кнопки то может просто поставить какую-нибудь специализированную микросхему от Максима, которая на аппаратном уровне будет поддерживать 1-wire, поройтесь на www.ibutton.com там есть всякие АЦП, а есть и мультиплексоры и просто логические выходы, т.е. такую микруху можно поставить как со стороны пульта, так и со стороны устройства, на ваш выбор, а ответную сторону сделать на МК, где реализовать мастер 1-wire(что намного менее затратно по ресурсам чем слейв)
А вообще для RS485 вам потребуется из дополнительного только по одному драйверу RS485 которые подключаются к УАРТу и один вывод для управления направлением передачи.
navy2000
Для 10 м в лабораторных условиях нормально будет работать и просто TTL соединение. Но уж если помеховая обстановка не позволяет, хочется использовать диф. интерфейс и без дополнительных корпусов можно обойтись. Используя две ноги проца, еоторые могут быть как i/o, так и входами компаратора. А дальше а-ля RS-485 только программно.
gormih
Цитата(navy2000 @ Nov 5 2008, 13:09) *
Для 10 м в лабораторных условиях нормально будет работать и просто TTL соединение. Но уж если помеховая обстановка не позволяет, хочется использовать диф. интерфейс и без дополнительных корпусов можно обойтись. Используя две ноги проца, еоторые могут быть как i/o, так и входами компаратора. А дальше а-ля RS-485 только программно.

Это называется искать приключения на свою ***у извиняюсь...
navy2000
Цитата(gormih @ Nov 5 2008, 16:19) *
Это называется искать приключения на свою ***у извиняюсь...

Если лаборатория студенту пару баксов на драйверы не дает, пусть хоть получает опыт, в виде приключения на свою (что вы там имели в вижу?).
А иначе, зачем вобще там работать?
gormih
Цитата(navy2000 @ Nov 5 2008, 13:27) *
Если лаборатория студенту пару баксов на драйверы не дает, пусть хоть получает опыт, в виде приключения на свою (что вы там имели в вижу?).
А иначе, зачем вобще там работать?

Ну если только из чистого энтузиазма, ради получения драгоценного опыта - когда ничего не работает, ты ищешь решение полгода и находишь - самое оно. smile.gif Тут ведь кроме программирования еще куча подводных камней в плане схемотехники... которые несомненно всплывут.
delamoure
Что может быть проще соединения двух U(S)ART для данного применения? Скорость пониже и все получится. Ну сколько нужно для снятия данных о нажатых конпках? 300 бод smile.gif
В этот же кабель - питание пульта. Итого 4 жилы.
Если наводки в лаборатории, ну возьмите экранированный кабель. Подключите экран к общим двух связываемых устройств.
gormih
Цитата(GDI @ Nov 5 2008, 12:26) *
поройтесь на www.ibutton.com

есть кстати www.ibutton.ru smile.gif
Maik-vs
Цитата(Anjey_N @ Nov 4 2008, 22:46) *
Прочитал все ваши сообщения, большое спасибо!

Суть моей задумки проста.

Первый МК будет динамически опрашивать опрашивать 12 кнопок. Номер нажатой кнопки будет передавать в линию связи. Назад будет получать отклик и включать соответствующий номеру нажатой кнопки светодиод. Устройство будет сделано в виде пульта. 1111493779.gif

Второй МК будет управлять исполнительным устройством (в моём случае калибратором П320).
Это устройство планирую сделать для облегчения труда при метрологии аппаратуры, тк надоело крутить ручки калибратора вручную, да и ходить постоянно от компа к нему - тоже надоедает. А так метролог будет сидеть за компом, и не вставая со стула управлять калибратором (задавать напряжение) .
Вот поэтому и вопрос какой лучше применить интерфейс? Для 485 , я так понимаю, нужны дополнительные микросхемы. А хотелось бы слепить из того что есть - на пульт ATiny2313 или ATmega8, на управление - ATmega8.


Не понял, зачем "первый МК". Написать программку на компе с 12 кнопками в окне. Нажал мышой на кнопку - "Номер нажатой кнопки будет передавать в линию связи." - в COM порт.
Второй МК принял спокойно своим UARTом тот код и сделал что надо. Если обратной передачи нет, то для согласования по минимуму хватит одного резистра smile.gif
"второй МК", кстати, может быть простой десериалайзер.
Anjey_N
Цитата(Maik-vs @ Nov 5 2008, 17:47) *
Не понял, зачем "первый МК". Написать программку на компе с 12 кнопками в окне. Нажал мышой на кнопку - "Номер нажатой кнопки будет передавать в линию связи." - в COM порт.
Второй МК принял спокойно своим UARTом тот код и сделал что надо. Если обратной передачи нет, то для согласования по минимуму хватит одного резистра smile.gif
"второй МК", кстати, может быть простой десериалайзер.


Иногда приходится делать метрологию на оборудовании 1986года выпуска где компа совсем нет. maniac.gif
Напряжение вручную задаётся с калибратора, показания (результаты) визуально считываютя с индикатора и шариковой ручкой заносятся в таблицу.

Цитата(delamoure @ Nov 5 2008, 15:45) *
Что может быть проще соединения двух U(S)ART для данного применения? Скорость пониже и все получится. Ну сколько нужно для снятия данных о нажатых конпках? 300 бод smile.gif
В этот же кабель - питание пульта. Итого 4 жилы.
Если наводки в лаборатории, ну возьмите экранированный кабель. Подключите экран к общим двух связываемых устройств.


Кабель есть экранированый - 2 жилы + экран. Минус на экран, плюс на 1 жилу, информация на 2.

Цитата(gormih @ Nov 5 2008, 13:12) *
Если хочется обойтись минимальным числом корпусов - присмотритесь к беспроводным технологиям от Атмел: http://atmel.com/dyn/products/devices.asp?family_id=676
Для данной задачи вполне сгодится, и будет по моему дешевле, чем использование нескольких микросхем интерфейса.
К тому же на кабеле и прочих причендалах сэкономите:-)

P.S.: Хотя указанные микроконтроллеры сделаны в основном под ZigBee стек - применение их именно для Zigbee вовсе не обязательно - соединение точка - точка вполне легко реализуемо.


У нас в городе радиорынка нет, микросхемы только под заказ и долго ждать. А указанные мной МК уже есть в наличии.

ПРи такой длине линии связи и при помехах от электронного оборудования 1-Wire будет плохо работать? Если да, то I2C подойдёт?
Maik-vs
Цитата(Anjey_N @ Nov 5 2008, 19:32) *
Иногда приходится делать метрологию на оборудовании 1986года выпуска где компа совсем нет. maniac.gif
Напряжение вручную задаётся с калибратора, показания (результаты) визуально считываютя с индикатора и шариковой ручкой заносятся в таблицу.

Удобно наговаривать на диктофон мобилы, а потом заносить в комп, мне нравится.

07.gif А как же тогда
Цитата(Anjey_N @ Nov 5 2008, 19:32) *
надоело крутить ручки калибратора вручную, да и ходить постоянно от компа к нему - тоже надоедает. А так метролог будет сидеть за компом, и не вставая со стула управлять калибратором


Вообще-то можно "и то и то" - подключать исполнительный МК хошь к компу, хошь - к пульту.

Насчёт RS232. У меня с 4-го этажа в подвал протянут к теплосчётчику, кабель UTP, работает на скорости 9600 как часы.
Сергей Борщ
Цитата(Anjey_N @ Nov 5 2008, 19:32) *
ПРи такой длине линии связи и при помехах от электронного оборудования 1-Wire будет плохо работать? Если да, то I2C подойдёт?
Не надо 1-wire. Пока будете долго ждать микросхему rs232, сделайте преобразователь уровня на одном транзисторе. Пока напишете программу - как раз и микросхемы подоспеют. А еще можете зайти с пивом в любую фирму, собирающую и ремонтирующую компьютеры и обменять там пиво на дохлую материнку. С которой и снять преобразователь уровня. Там, конечно, будет не max232, но вполне подходящий.
Anjey_N
Цитата(Сергей Борщ @ Nov 5 2008, 23:23) *
Не надо 1-wire. Пока будете долго ждать микросхему rs232, сделайте преобразователь уровня на одном транзисторе. Пока напишете программу - как раз и микросхемы подоспеют. А еще можете зайти с пивом в любую фирму, собирающую и ремонтирующую компьютеры и обменять там пиво на дохлую материнку. С которой и снять преобразователь уровня. Там, конечно, будет не max232, но вполне подходящий.


а могу ли я соединить 2 МК по UART напрямую?
SasaVitebsk
Цитата(Anjey_N @ Nov 6 2008, 21:23) *
а могу ли я соединить 2 МК по UART напрямую?

2 - да. Больше - нет. Надо драйвера по типу adm485. По I2C можно много устр-в соединить.
При вашей задаче можно и 1-wire. Только с развитием системы будут определённые сложности.
Igor26
Цитата(Maik-vs @ Nov 5 2008, 22:36) *
... кабель UTP, работает на скорости 9600 как часы.

По UTP обычно тянут всё же RS-485. Используется всего одна пара.
Maik-vs
Цитата(Igor26 @ Nov 7 2008, 11:09) *
По UTP обычно тянут всё же RS-485. Используется всего одна пара.


Да ну?!! Всегда считал, что по UTP обычно тянут Ethernet.

Я знаю, что "обычно". Я говорил о медицинском факте: два устройства связаны по RS232 кабелем UTP длиной 28 метров и всё работает.
Nanobyte
Оптроны в хозяйстве есть? На передающей стороне ставится транзисторный ключ с открытым коллектором, на приёмной оптрон (я применял АОТ128Б), после оптрона сигнал инвертируем и готово.
Получается обычный RS-232 в виде токовой петли (например по стандарту MIDI током 5 мА передаются данные до 15 метров со скоростью 31,25 Кбит/с). Если в пульте будет своя батарея питания, тогда потребуется только 2 провода. Выносные пульты и индикаторы я только так с основным блоком и соединяю. Жалоб не было.
Anjey_N
Цитата(SasaVitebsk @ Nov 6 2008, 22:08) *
2 - да. Больше - нет. Надо драйвера по типу adm485. По I2C можно много устр-в соединить.
При вашей задаче можно и 1-wire. Только с развитием системы будут определённые сложности.


А мне больше двух и не нужно! Буду соединять по MK по UART. Скорость 9600 выберу.

Цитата(Nanobyte @ Nov 7 2008, 19:05) *
Оптроны в хозяйстве есть? На передающей стороне ставится транзисторный ключ с открытым коллектором, на приёмной оптрон (я применял АОТ128Б), после оптрона сигнал инвертируем и готово.
Получается обычный RS-232 в виде токовой петли (например по стандарту MIDI током 5 мА передаются данные до 15 метров со скоростью 31,25 Кбит/с). Если в пульте будет своя батарея питания, тогда потребуется только 2 провода. Выносные пульты и индикаторы я только так с основным блоком и соединяю. Жалоб не было.


В ваших словах что-то есть! Наверно я так и сделаю! 1111493779.gif
Visor
Цитата(Anjey_N @ Nov 8 2008, 04:12) *
А мне больше двух и не нужно! Буду соединять по MK по UART. Скорость 9600 выберу.
В ваших словах что-то есть! Наверно я так и сделаю! 1111493779.gif

"Токовая петля" замечательный интерфейс. Но желательно делать его по правилам: с источником тока 20мА в контуре. Тогда и 100м не проблема, и скорость 115200 тоже.
Nanobyte
Ток 5 мА тоже "по правилам", а 115200 здесь не требуется. При батарейном питании пульта эти лишние 15 мА будут просто греть помещение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.