Недостаточная дельта сигнала 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
@SomeNanoUser, 👍1
Обсуждение1 ответ
Ладно, отвечаю себе здесь. Похоже, что выход щита по какой-то причине не может достаточно сильно воздействовать на внутренние подтягивания нано. (Да, он определенно находится в режиме ввода, вы проверяете значения портов, и это правильно)
Оставляя выход RX от экрана плавающим, он работает нормально, но если он подключен к внешнему подтягивающему резистору, то это не так - и я получаю то же поведение, что и когда RX привязан к nano.
По какой-то причине мне не удалось отключить внутренние подтягивания nano в программном обеспечении. Похоже, мне нужно будет добавить буфер, чтобы увеличить ток привода. Это немного раздражает, так как означает еще одну прорывную плату!
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Проблемы с последовательной связью от Arduino к Bluetooth HC-05
- Как Arduino может проверить, подключен ли он к ПК и включен ли компьютер?
- Как отправлять и получать беззнаковые целые (unsigned int) от одного arduino к другому arduino
- Использование последовательных контактов TX/ RX для связи по USB
- NRF24L01+ (библиотека TMRH20): Получатель получает пустые данные
Вы уверены, что вывод RX находится в режиме ввода?, @the busybee