Недостаточная дельта сигнала RX при использовании MKR RS485 + Nano, но не Mega

У меня возникла проблема, когда arduino Mega использовался для связи с шиной RS485, используя MKR shield [1] в качестве платы прорыва. Когда я строю его с помощью Мега, система работает нормально. Я сносил и перестраивал его несколько раз, и каждый раз он работает, никаких проблем.

Однако, когда я строю его с помощью nano, он не работает - rx неисправен. Устройства на шине могут слышать нано, и последовательность ответных импульсов отправляется обратно правильно, так что исходящая связь в порядке. Однако на выводе RX на nano последовательный сигнал присутствует при просмотре на осциллографе, но колеблется от +5 В до 4,5 В, и светодиод RX никогда не мигает.

Компоновка представляет собой простую проводку, нет никаких (соответствующих) внешних компонентов (есть ЖК-дисплей, но это прекрасно работает), просто пин-пин соединения.

Почему это мега, кажется, работает, а нано-нет? В настоящее время я предполагаю, что вывод /RE на устройстве MKR RS485 (MAX3157 [2]) не питается должным образом, и я вижу не усиленный последовательный выход? Однако я не могу понять, почему это так, поскольку и mega, и nano имеют одинаковый номинальный максимальный ток на вывод.

Я проверил только линию /RE при отключении, и она правильно работает на 5 В, когда не приводится в движение, и работает на 0 В, когда контакт вытянут низко.

Есть ли альтернативное исправление, которое я мог бы использовать, чтобы довести +5V-4.5 V до +5V-0V ? Нужно ли мне иметь

[1] Схема экрана MKR : https://www.jameco.com/Jameco/Products/ProdDS/2294031Schematic.pdf

[2] Максимальная спецификация : https://datasheets.maximintegrated.com/en/ds/MAX3157.pdf

, 👍1

Обсуждение

Вы уверены, что вывод RX находится в режиме ввода?, @the busybee


1 ответ


1

Ладно, отвечаю себе здесь. Похоже, что выход щита по какой-то причине не может достаточно сильно воздействовать на внутренние подтягивания нано. (Да, он определенно находится в режиме ввода, вы проверяете значения портов, и это правильно)

Оставляя выход RX от экрана плавающим, он работает нормально, но если он подключен к внешнему подтягивающему резистору, то это не так - и я получаю то же поведение, что и когда RX привязан к nano.

По какой-то причине мне не удалось отключить внутренние подтягивания nano в программном обеспечении. Похоже, мне нужно будет добавить буфер, чтобы увеличить ток привода. Это немного раздражает, так как означает еще одну прорывную плату!

,