|
Связь двух АВРов, Как связать? |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 27)
|
Nov 3 2008, 16:10
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(Anjey_N @ Nov 3 2008, 19:44)  Можно ли соединить 2 МК по интерфейсу 1-Wire? Почему бы и нет, один МК будет изображать пассивное устройство (Slave), а второй будет Master. Но, ИМХО конечно, у AVR есть более удобные интерфейсы для межсоединений, например UART и SPI, а также I2C.
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Nov 3 2008, 16:21
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Цитата(Nanobyte @ Nov 3 2008, 20:10)  Почему бы и нет, один МК будет изображать пассивное устройство (Slave), а второй будет Master. Но, ИМХО конечно, у AVR есть более удобные интерфейсы для межсоединений, например UART и SPI, а также I2C. а если длина линии связи 10 метров?
|
|
|
|
|
Nov 3 2008, 16:26
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(Anjey_N @ Nov 3 2008, 20:21)  а если длина линии связи 10 метров? Чтобы вам смогли помочь, укажите еще требуемую скорость передачи информации. Анатолий.
|
|
|
|
|
Nov 3 2008, 18:59
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(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 кбит
|
|
|
|
|
Nov 3 2008, 20:20
|
Местный
  
Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006

|
Цитата Для 10 метров подойдёт I2C, а также RS232/RS485 Ну, I2C я бы советовать не стал, он для таких длин не предназначался, емкость кабеля очень влиять будет. А вот UART на скоростях сравнимых с 1wire покатит даже без драйверов. Ну только буфернуть его на всякий пожарный скажем HC125-ой. Заодно на ней же можно сделать коммутатор приема/передачи, чтоб обойтись только 2-мя проводами. Но это все любительство. Для серьезного проекта - RS485 наилучший выбор.
|
|
|
|
|
Nov 4 2008, 00:56
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Artem_Petrik @ Nov 3 2008, 23:20)  Ну, I2C я бы советовать не стал, он для таких длин не предназначался, емкость кабеля очень влиять будет. На точке опоры проскакивали сообщения, что в новых домах, датчики температуры ставят. Или что-то подобное. До ста метров. Говорят очень устойчиво работает. Принципиально возразить нечего. Шина - статическая. Если значительно уменьшить скорость, то вполне... Хотя я не призываю, а просто отмечаю. Тут наверное больше вопрос помех... Если речь идёт о промышленном изделии, то думать нечего - есть соответствующие стандартные интерфейсы: RS232,RS485,CAN. Если о поделке - то I2C будет вполне работоспособна - минимум на 100кГц я думаю. Сопротивления я бы уменьшил Ом до 750.
|
|
|
|
|
Nov 4 2008, 19:46
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Прочитал все ваши сообщения, большое спасибо! Суть моей задумки проста. Первый МК будет динамически опрашивать опрашивать 12 кнопок. Номер нажатой кнопки будет передавать в линию связи. Назад будет получать отклик и включать соответствующий номеру нажатой кнопки светодиод. Устройство будет сделано в виде пульта. Второй МК будет управлять исполнительным устройством (в моём случае калибратором П320). Это устройство планирую сделать для облегчения труда при метрологии аппаратуры, тк надоело крутить ручки калибратора вручную, да и ходить постоянно от компа к нему - тоже надоедает. А так метролог будет сидеть за компом, и не вставая со стула управлять калибратором (задавать напряжение) . Вот поэтому и вопрос какой лучше применить интерфейс? Для 485 , я так понимаю, нужны дополнительные микросхемы. А хотелось бы слепить из того что есть - на пульт ATiny2313 или ATmega8, на управление - ATmega8.
|
|
|
|
|
Nov 5 2008, 09:12
|

nofb
  
Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218

|
Цитата(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 вовсе не обязательно - соединение точка - точка вполне легко реализуемо.
--------------------
Это не то что вы подумали ...
|
|
|
|
|
Nov 5 2008, 10:19
|

nofb
  
Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218

|
Цитата(navy2000 @ Nov 5 2008, 13:09)  Для 10 м в лабораторных условиях нормально будет работать и просто TTL соединение. Но уж если помеховая обстановка не позволяет, хочется использовать диф. интерфейс и без дополнительных корпусов можно обойтись. Используя две ноги проца, еоторые могут быть как i/o, так и входами компаратора. А дальше а-ля RS-485 только программно. Это называется искать приключения на свою ***у извиняюсь...
--------------------
Это не то что вы подумали ...
|
|
|
|
|
Nov 5 2008, 10:27
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

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

nofb
  
Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218

|
Цитата(navy2000 @ Nov 5 2008, 13:27)  Если лаборатория студенту пару баксов на драйверы не дает, пусть хоть получает опыт, в виде приключения на свою (что вы там имели в вижу?). А иначе, зачем вобще там работать? Ну если только из чистого энтузиазма, ради получения драгоценного опыта - когда ничего не работает, ты ищешь решение полгода и находишь - самое оно.  Тут ведь кроме программирования еще куча подводных камней в плане схемотехники... которые несомненно всплывут.
--------------------
Это не то что вы подумали ...
|
|
|
|
|
Nov 5 2008, 11:45
|

Частый гость
 
Группа: Свой
Сообщений: 176
Регистрация: 2-04-08
Из: Днепропетровск
Пользователь №: 36 406

|
Что может быть проще соединения двух U(S)ART для данного применения? Скорость пониже и все получится. Ну сколько нужно для снятия данных о нажатых конпках? 300 бод  В этот же кабель - питание пульта. Итого 4 жилы. Если наводки в лаборатории, ну возьмите экранированный кабель. Подключите экран к общим двух связываемых устройств.
--------------------
Ребята, как же это вы без гравицапы пепелац выкатываете из гаража? Это непорядок. ©
|
|
|
|
|
Nov 5 2008, 13:47
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(Anjey_N @ Nov 4 2008, 22:46)  Прочитал все ваши сообщения, большое спасибо! Суть моей задумки проста. Первый МК будет динамически опрашивать опрашивать 12 кнопок. Номер нажатой кнопки будет передавать в линию связи. Назад будет получать отклик и включать соответствующий номеру нажатой кнопки светодиод. Устройство будет сделано в виде пульта. Второй МК будет управлять исполнительным устройством (в моём случае калибратором П320). Это устройство планирую сделать для облегчения труда при метрологии аппаратуры, тк надоело крутить ручки калибратора вручную, да и ходить постоянно от компа к нему - тоже надоедает. А так метролог будет сидеть за компом, и не вставая со стула управлять калибратором (задавать напряжение) . Вот поэтому и вопрос какой лучше применить интерфейс? Для 485 , я так понимаю, нужны дополнительные микросхемы. А хотелось бы слепить из того что есть - на пульт ATiny2313 или ATmega8, на управление - ATmega8. Не понял, зачем "первый МК". Написать программку на компе с 12 кнопками в окне. Нажал мышой на кнопку - "Номер нажатой кнопки будет передавать в линию связи." - в COM порт. Второй МК принял спокойно своим UARTом тот код и сделал что надо. Если обратной передачи нет, то для согласования по минимуму хватит одного резистра  "второй МК", кстати, может быть простой десериалайзер.
|
|
|
|
|
Nov 5 2008, 16:32
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Цитата(Maik-vs @ Nov 5 2008, 17:47)  Не понял, зачем "первый МК". Написать программку на компе с 12 кнопками в окне. Нажал мышой на кнопку - "Номер нажатой кнопки будет передавать в линию связи." - в COM порт. Второй МК принял спокойно своим UARTом тот код и сделал что надо. Если обратной передачи нет, то для согласования по минимуму хватит одного резистра  "второй МК", кстати, может быть простой десериалайзер. Иногда приходится делать метрологию на оборудовании 1986года выпуска где компа совсем нет. Напряжение вручную задаётся с калибратора, показания (результаты) визуально считываютя с индикатора и шариковой ручкой заносятся в таблицу. Цитата(delamoure @ Nov 5 2008, 15:45)  Что может быть проще соединения двух U(S)ART для данного применения? Скорость пониже и все получится. Ну сколько нужно для снятия данных о нажатых конпках? 300 бод  В этот же кабель - питание пульта. Итого 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 подойдёт?
|
|
|
|
|
Nov 5 2008, 18:36
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(Anjey_N @ Nov 5 2008, 19:32)  Иногда приходится делать метрологию на оборудовании 1986года выпуска где компа совсем нет. Напряжение вручную задаётся с калибратора, показания (результаты) визуально считываютя с индикатора и шариковой ручкой заносятся в таблицу. Удобно наговаривать на диктофон мобилы, а потом заносить в комп, мне нравится.  А как же тогда Цитата(Anjey_N @ Nov 5 2008, 19:32)  надоело крутить ручки калибратора вручную, да и ходить постоянно от компа к нему - тоже надоедает. А так метролог будет сидеть за компом, и не вставая со стула управлять калибратором Вообще-то можно "и то и то" - подключать исполнительный МК хошь к компу, хошь - к пульту. Насчёт RS232. У меня с 4-го этажа в подвал протянут к теплосчётчику, кабель UTP, работает на скорости 9600 как часы.
Сообщение отредактировал Maik-vs - Nov 5 2008, 18:45
|
|
|
|
|
Nov 5 2008, 19:23
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Anjey_N @ Nov 5 2008, 19:32)  ПРи такой длине линии связи и при помехах от электронного оборудования 1-Wire будет плохо работать? Если да, то I2C подойдёт? Не надо 1-wire. Пока будете долго ждать микросхему rs232, сделайте преобразователь уровня на одном транзисторе. Пока напишете программу - как раз и микросхемы подоспеют. А еще можете зайти с пивом в любую фирму, собирающую и ремонтирующую компьютеры и обменять там пиво на дохлую материнку. С которой и снять преобразователь уровня. Там, конечно, будет не max232, но вполне подходящий.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Nov 6 2008, 17:23
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Цитата(Сергей Борщ @ Nov 5 2008, 23:23)  Не надо 1-wire. Пока будете долго ждать микросхему rs232, сделайте преобразователь уровня на одном транзисторе. Пока напишете программу - как раз и микросхемы подоспеют. А еще можете зайти с пивом в любую фирму, собирающую и ремонтирующую компьютеры и обменять там пиво на дохлую материнку. С которой и снять преобразователь уровня. Там, конечно, будет не max232, но вполне подходящий. а могу ли я соединить 2 МК по UART напрямую?
|
|
|
|
|
Nov 7 2008, 12:37
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(Igor26 @ Nov 7 2008, 11:09)  По UTP обычно тянут всё же RS-485. Используется всего одна пара. Да ну?!! Всегда считал, что по UTP обычно тянут Ethernet. Я знаю, что "обычно". Я говорил о медицинском факте: два устройства связаны по RS232 кабелем UTP длиной 28 метров и всё работает.
|
|
|
|
|
Nov 7 2008, 20:12
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Цитата(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 провода. Выносные пульты и индикаторы я только так с основным блоком и соединяю. Жалоб не было. В ваших словах что-то есть! Наверно я так и сделаю!
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|