Здравствуйте, возникла необходимость соеденить 3 arduino по rs-485. Применили преобразователи rs-485 в ttl, на коротких расстояниях передача работала хорошо. Затем, 3 устройства были подключены в сеть через каждые 15 метров, по концам закреплены резисторы на 120 Ом, 1Вт. Передача не идет, сталкивался ли кто с подобным? Как мне кажется проблема в правильной разводке этой сети, но глубоко копаться в теории не хватает знаний.
Запитываете каждое устройство от своего источника питания или источник общий для всех? В RS-485 используете три или два провода? ("a" + "b" + земля каждой платы) или (тоько "а" + "b") Должно быть обязательно три, если источник питания у каждого устройства свой! Соединили все "а" на один провод, все "b" второй провод, все земли на третий?
1. Каждый от своего. 2. 2 провода, попробуем 3. 3. С этим все правильно сделали. Я прочитал, что для rs485 достаточно 2 проводов, больше ничего не требуется. Попробуем ваш вариант, большое спасибо
Не забудьте, что "A" и "B" сигналы между устройствами по витой паре. Пары из ETHERNET кабеля очень даже хороши!
При использовании нескольких сетевых БП, во вторичной цепи, куда подключается Ваше устройство, между землями устройств, может возникать разница потенциалов даже более сотни вольт. Все зависит от конструкции БП. В случае отсутствия общей земли, существует довольно-таки большая вероятность выхода из строя микросхемы драйвера. Поэтому, при соединении различных устройств между собой, имеющих разные БП, даже кабелем, с наличием земляного провода внутри, рекомендуется, на момент соединения, отключать устройства от питающей сети. Так как в момент подключения разъема, (зависит от конструктива разъема) первыми могут соединиться сигнальные контакты, а земля позже, при этом на логический вход устройства может попасть недопустимо высокое напряжение.
Использовать два провода для RS-485 можно только в случае гальванической развязки у всех модулей. Если такой развязки нет и все модули запитаны от разных источников, то нужен третий провод "земля", который через 100 Ом подключается к "земле" каждого источника.
Спасибо за ответы, резистор 120 Ом подойдет? Под гальванической развязкой, как я понимаю, вы имеете ввиду общее питание драйверов max485? На данный момент добились такого результата: мастер вещает в сеть 'A' и 'B'. На слэйв_1 должен загореться светодиод при получении 'A', а на слэйв_2 при получении 'B'. Питание для max485 берется для каждого со своей платы, общая земля через резисторы результатов не дала. Когда в сети находится мастер и слэйв_1, слэйв_1 мигает светодиодом. Как только в сети появляется 2 - ой слэйв, все перестает работать. Вот такая ситуация, опыта маловато в работе с такими сетями, поэтому, как мне кажется, где-то кроется грубая ошибка. Может все-таки стоит сделать гальваническую развязку? Можете натолкнуть в нужную сторону? Буду рад любой помощи или предложению
120 Ом подойдет. Гальваническая развязка - когда питание драйверов RS-485 на всех устройствах гальванически развязано с основным источником питания. Проверьте, точно ли второй слэйв находится в режиме приема. На концах линии RS-485 должны находиться согласующие резисторы 120 Ом. Возможно вы используете готовые модули и там уже встроены эти резисторы. В этом случае у вас в линии вместо двух резисторов 120 Ом уже три резистора. Проверьте сопротивление линии, если оно меньше 60 Ом и равно приблизительно 40 Ом, то так оно и есть. Нужно на одном из слэйвов отключить этот резистор.
Проблема решилась, перепайкой всей цепи. Посмотрим как поведет себя сеть на большой дистанции, очень уж капризная эта RS485 Всем спасибо за помощь))