Страница 1 из 1
Как связать два микроконтроллера по UART?
Добавлено: Пн янв 13, 2014 10:36:52
Ледокот
Здравствуйте!
Пытаюсь соединить по UART два микроконтроллера 1986ВЕ91Т производства "Миландр", но не суть важно... Ищу в интернетах схему соединения по UART, и не могу понять, какая из них правильная. Для начала есть два варианта:

При этом в первой схеме при высоком уровне на выводе TX 1-го контроллера получаем низкий уровень на выводе RX 2-го... А во второй схеме при высоком уровне на выводе TX источника получаем также высокий уровень на выводе RX приёмника. Опять же, где-то приводятся схемы с резисторами, где-то без резисторов.
Да, кстати, контроллеры у меня будут гальванически развязаны, поэтому мне ближе вторая схема, но непонятно, возможно, мне следует "перевернуть" вход или выход оптрона, чтобы при высоком уровне на TX источника получить высокий уровень на RX приёмника? 1-я схема не вызывает доверия, т.к. резистор в 4,7 кОм явно великоват для использования на входе оптрона...
Спасибо за внимание

Re: Как связать два микроконтроллера по UART?
Добавлено: Пн янв 13, 2014 11:25:27
КРАМ
Baud Rate какой?
От этого зависит тип оптрона.
Re: Как связать два микроконтроллера по UART?
Добавлено: Пн янв 13, 2014 11:34:42
Jack_A
Из одного моего старого проекта. Работает как зверь. А с чего бы ему не работать ?

Re: Как связать два микроконтроллера по UART?
Добавлено: Пн янв 13, 2014 15:50:41
Ледокот
КРАМ писал(а):Baud Rate какой?
От этого зависит тип оптрона.
Спасибо за ответ. 9600 бод. Вроде разобрался уже, схему подключения возьму у смежника, который вторым контроллером занимается.
Re: Как связать два микроконтроллера по UART?
Добавлено: Пн янв 13, 2014 15:53:10
Ледокот
Jack_A писал(а):Из одного моего старого проекта. Работает как зверь. А с чего бы ему не работать ?
Спасибо, скопирую Ваше решение, кстати, именно это я и имел в виду под "перевернуть оптрон" (у Вас на выход TX подключается к катоду оптрона, а не к аноду, как на первой схеме).
Re: Как связать два микроконтроллера по UART?
Добавлено: Пн янв 13, 2014 17:56:32
Alkul
Ледокот писал(а):Пытаюсь соединить по UART два микроконтроллера
Ограничения на применение импорта есть?
Если есть, то я рекомендовал бы применить микросхемы 5559ИН10АУ. Гальванической развязки, правда нет, но зато дифференциальная пара в протоколе RS-485 гораздо более устойчива к помехам, нежели обычная линия с уровнями ТТЛ.
А если ограничений на импорт нет, то рекомендую микросхему ADM2484EBRWZ - приемопередатчик шины RS485/422 с гальванической развязкой. Требует второго питания для выходных цепей, но при отсутствии ограничений на импорт дешевый DC-DC преобразователь не проблема. На другой стороне можно поставить приемопередатчик типа ADM1485.
Если линия связи длинная, то RS-485 гораздо надежней.
Re: Как связать два микроконтроллера по UART?
Добавлено: Пн янв 13, 2014 18:47:28
Jack_A
Если длинная, то таки да, а если в пределах комнаты, то это из пушки по воробьям. Банальная токовая петля рулит
Re: Как связать два микроконтроллера по UART?
Добавлено: Вт янв 14, 2014 03:54:15
akl
Alkul писал(а):... рекомендую микросхему ADM2484EBRWZ - приемопередатчик шины RS485/422 с гальванической развязкой. Требует второго питания для выходных цепей, но при отсутствии ограничений на импорт дешевый DC-DC преобразователь не проблема. На другой стороне можно поставить приемопередатчик типа ADM1485. Если линия связи длинная, то RS-485 гораздо надежней.
ADM2587 интереснее, т.к. не нужен источник питания линии.
Для UART неплохо показал себя
ADuM1201. Но, всё равно,
токовая петля (И2 в старину

) мне больше нравится.
Re: Как связать два микроконтроллера по UART?
Добавлено: Вт янв 14, 2014 18:52:21
Alkul
akl писал(а):ADM2587 интереснее
Спасибо, интересная микросхема
Re: Как связать два микроконтроллера по UART?
Добавлено: Ср янв 15, 2014 13:42:50
Ледокот
Alkul писал(а): ... я рекомендовал бы применить микросхемы 5559ИН10АУ. Гальванической развязки, правда нет, но зато дифференциальная пара в протоколе RS-485 гораздо более устойчива к помехам, нежели обычная линия с уровнями ТТЛ.
Простите за дурацкий вопрос, но я пока не знаком с протоколом RS-485 и поэтому не могу себе представить, чем интерфейсная микросхема для протокола RS-485 поможет мне в связи по протоколу UART... Может быть подскажете хотя бы в общих чертах, как её можно использовать в UART?
Re: Как связать два микроконтроллера по UART?
Добавлено: Ср янв 15, 2014 18:32:49
Dmitry Dubrovenko
Ледокот писал(а):я пока не знаком с протоколом RS-485
RS-485, это не протокол, а интерфейс.

Т.е. разновидность UART'а (как RS-232).
Может быть, как дуплексным, так и полудуплексным.
Отличается повышенной дальностью (опять же, зависит от скорости).
Длиннее, наверное, только оптика.
Re: Как связать два микроконтроллера по UART?
Добавлено: Ср янв 15, 2014 19:13:27
Alkul
Ледокот писал(а):Простите за дурацкий вопрос, но я пока не знаком с протоколом RS-485
RS-485, равно как и RS-422, а также RS-232 абсолютно "прозрачны" для пользователя.
Если вы связываете два МК по UART и в "разрыв" этой цепи вставляете два преобразователя интерфейса TTL<->RS485 и RS-485<->TTL, то МК, "общающиеся" друг с другом по UART, даже не "заметят" того, что в линии было преобразование из TTL в RS-485 и обратно. На программах МК это абсолютно не скажется.
Re: Как связать два микроконтроллера по UART?
Добавлено: Чт янв 16, 2014 09:28:52
КРАМ
Dmitry Dubrovenko писал(а):RS-485, это не протокол, а интерфейс.

Таки протокол... И таки интерфейс.
Точнее,
протокол ФИЗИЧЕСКОГО уровня ПОСЛЕДОВАТЕЛЬНОГО
интерфейса.
http://ru.wikipedia.org/wiki/RS-485
Для общего понимания.
Протокол (интерфейса) - это СТАНДАРТНОЕ ОПИСАНИЕ ИНТЕРФЕЙСА. Т.е. ДОКУМЕНТ на этот интерфейс.
Документ может описывать разные УРОВНИ интерфейса.
Re: Как связать два микроконтроллера по UART?
Добавлено: Чт янв 16, 2014 12:04:00
Jack_A
Alkul писал(а): МК, "общающиеся" друг с другом по UART, даже не "заметят" того, что в линии было преобразование из TTL в RS-485 и обратно.
При условии, что преобразователь сам умеет определять направление передачи и не надо программно дёргать пин преобразователя, отвечающий за это направление. Речь, естественно, идёт о полудуплексе.
Re: Как связать два микроконтроллера по UART?
Добавлено: Чт янв 16, 2014 12:48:47
Alkul
Jack_A писал(а):При условии, что преобразователь сам умеет определять направление передачи и не надо программно дёргать пин преобразователя, отвечающий за это направление.
Согласен.