Я испытываю сильный шум в сети RS485, которую я собрал с использованием чипов ST485. Длина кабеля очень короткая (общая длина кабеля менее 1 м), я правильно смещаю сигналы A и B, и я пробовал как с терминатором, так и без него (кажется, без разницы), и я работаю только на 19200 бод.
Я подозреваю, что проблема заключается в шуме земли, так как я использую входные сигналы RS485 для установки уровней ШИМ для мощных светодиодов (до 1000 мА на мгновение при 3,8 В). Я использую четырехпроводное соединение между каждым узлом (+12 В, GND, RS485-A, RS485-B, с RS485-A и -B самоскрученная пара соединительных проводов).
Хотя это не предлагается в техническом описании ST485, будет ли достаточно добавить провод заземления сигнала между входами заземления устройства RS485 с резисторами 100 Ом последовательно между заземлением устройства RS485 и проводом заземления сигнала? Или мне следует подумать о добавлении полной изоляции к устройству RS485, включая трансформатор для плавающего питания и оптоизоляторы на сигнальных линиях A и B? Или это чрезмерно?
Заранее спасибо.
РЕДАКТИРОВАТЬ Я знаю, что получаю шум, потому что для получения желаемого эффекта (конкретной яркости определенных светодиодов) я должен использовать CRC-8 для каждого пакета (чтобы отбрасывать плохие пакеты на принимающей стороне) и отправлять каждое сообщение дважды (чтобы компенсировать отброшенные плохие пакеты), и даже тогда я все еще получаю неправильные пакеты, появляющиеся на принимающей стороне.
РЕДАКТИРОВАТЬ Удалены комментарии об ошибках скорости передачи, так как скорость передачи на самом деле очень точная.
Я предполагаю, что импульсный ток, потребляемый источником питания +12 В, создает шум в сигналах RS-485. В целях отладки попробуйте отключить светодиоды. Если ваши проблемы с шумом исчезнут, то вы знаете, что это импульсный ток в 1 ампер. Предполагая, что это так, ваша задача будет заключаться в том, чтобы уменьшить пики тока на проводе +12 В (которые также находятся на проводе GND). Фильтр с использованием катушки индуктивности + большой_кап поможет. Также может помочь использование другого кабеля, где питание изолировано от данных.
мой фактический бод 19966, на 3,8% - может быть, это моя проблема?
Я бы сказал да, особенно если вы используете 9-битный режим ведущий/ведомый. С запуском и остановкой это 11 бит, которые должны пройти. Даже при «нормальных» 8 битах (что приводит к передаче 10 бит) ошибка должна быть намного меньше 5%.
мой F_CPU на 8МГц
Как вы генерируете эти 8 МГц? «Внутренние часы» обычно имеют погрешность 1% и более. С добавлением этого 1% ваши 3,8% выпадают «из окна».
Обратите внимание, что вы также должны учитывать ошибки часов принимающей стороны. Вот почему большинство людей используют так называемый «кварц скорости передачи».
Ошибка 3,8% слишком высока, замените кристалл или используйте скорость передачи данных с меньшей ошибкой. Это не будет причиной вашей проблемы с шумом, хотя шум будет иметь больший эффект, чем если бы ошибка была меньше.
Кортук
jpc
jpc
Леон Хеллер
Дамиан