KARLSON
Dec 23 2013, 09:46
Пытался подключиться к счётчикам Меркурий 206RN (c 485 интерфейсом). И понимаю что не так управляю передатчиком.
Использовал разные микросхемы ADM485, MAX487, SN65HVD3082EP. Получил одну и ту же картину (во вложении).
Сначала RE установил в 0, а DE установил в 1. Когда в голову ничего не приходило разобрал счётчик и увидел, что RE и DE установлены в 0. Установил так, но так вообще обмена не стало. А и В выравнялись на уровне 2.5 В.
Как надо правильно управлять передатчиком? На время передачи DE в 1, а после передачи устанавливать в 0? Можно его включить в режим передатчика и приёмника одновременно?
Длина линии 0.5м. Терминаторы и ставил и убирал и резисторы подтяжки ставил/убирал.
vadimp61
Dec 23 2013, 10:20
DE и RE внутри чипа приемопередатчика обычно инверсны, поэтому надо управлять обеими ногами сразу соединив их вместе, что и сделано в счетчике.
KARLSON
Dec 23 2013, 10:23
Т.е. объединить RE и DE и этим управлять? Во время передачи 1, а на время приёма 0?
kolobok0
Dec 23 2013, 10:28
Цитата(KARLSON @ Dec 23 2013, 14:23)

Т.е. объединить RE и DE и этим управлять? Во время передачи 1, а на время приёма 0?
либо приёмник включён постоянно - для возможности контроля выхода. но тогда софтверно разгребать, либо запрещать когда штатный режим.
Цитата(kolobok0 @ Dec 23 2013, 14:28)

для возможности контроля выхода
Не только.
Есть ещё такая кака, что при включении передачи, выход драйвера дёргается, и приёмник МК воспринимает это, как стартовый бит, со всеми вытекающими.
редактор
Dec 25 2013, 08:22
А еще бывает, что нет флага окончания передачи (опустошения сдвигового регистра) и тогда отследить окончание своей передачи можно только приняв собственный пакет (или таймаут).
Так же контроль за выходом позволяет вовремя прекратить передачу когда два устройства лезут в линию одновременно.
А с ложным стартовым битом мы боролись, выдавая для синхронизации первым символом 0xFF.
KARLSON
Dec 25 2013, 10:03
Победил я этот интерфейс. RE всегда в 0. DE управляю. Пробовал выставлять его в 0 в следующем прерывании передатчика (опустошение буфера), оказалось рано. Измерил длительность передачи и начало ответа. И теперь выставляю его в 0 после 10 мс от начала передачи пакета (скорость 9600). А эхо мне не мешает.
P.S. CAN всё таки лучше. Там не надо управлять передатчиком.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.