Я подключаю это к Arduino. (после того, как Arduino запрограммировал, я удалил разъем USB, так как он разделяет последовательную связь с контактами 0 и 1)
RS232<->Arduino
VCC <-> 5V
GND <-> GND
TX <->Pin0(RX)
RX <->Pin1(TX)
Кажется достаточно простым. Однако, когда я подключил порт DB9 к фактическому последовательному устройству, я мог ясно видеть, что последовательные данные отправляются на RS232 (светодиод RedRX был активен), но ничего не возвращалось с фактического устройства, к которому я подключался.
Так...
Затем я подключил устройство к своему ноутбуку и гипертерминалу, чтобы проверить, могу ли я с ним общаться. Отправлял те же самые команды, которые я заставлял Arduino делать... И да, я получал правильные ответы от устройства.
Затем я подключил Arduino + SparkFun RS232 к Hyper-Terminal и загрузил в Arduino базовую программу, которая а) отправляет приветственное сообщение, а затем б) отправляет сообщение каждый раз, когда получает символ через последовательный интерфейс (один из примеров скетчей Ардуино). В результате я получаю только приветственное сообщение, SparkFun RS232 не видит ничего, что я отправляю обратно из Hyper-Terminal.
Это неисправно или я упускаю жизненно важный трюк, чтобы заставить его работать правильно?
Спасибо за любую помощь.
edit: я также должен добавить, что сегодня утром я проверил контакты 0 и 1 с помощью простого эскиза мигания светодиода, чтобы доказать, что контакты arduino функционируют (а они были).
Это Kellenjb. Мне трудно понять, какие кейсы работают, а какие нет. Вместо того, чтобы писать длинный и сложный для понимания комментарий или ответ, который не является ответом, я добавлю его сюда, и пусть ОП или кто-то другой поправит меня, если я неправильно понял.
Arduino Sparkfun Shifter -> Serial Device (No Go)
Serial Device -> Arduino Sparkfun Shifter (Go)
Serial Device -> Laptop (Go)
Laptop -> Serial Device (Go)
Arduino Sparkfun Shifter -> Laptop (Go)
Laptop -> Arduino Sparkfun Shift (No Go)
Sparkfun — это что-то вроде хакерского устройства, которое на самом деле не выполняет должного переключения уровня RS-232. Вместо этого он использует напряжения с другого конца для зарядки конденсаторов, чтобы использовать их для передачи напряжения - умная идея, но я могу предвидеть недостатки, если другой конец не посылает достаточно высокое напряжение...
Я бы порекомендовал отказаться от sparkfun и использовать MAX232 или подобное устройство для реального переключения уровней.
Убедитесь, что ваши провода к Arduino имеют хорошие электрические соединения. Кроме этого, я не думаю, что вы действительно могли что-то упустить... Возможно, вы пробовали более медленные скорости передачи данных (например, 2400)? Если это не плохие провода или соединения, я бы сказал, что ваш SMD действительно виноват.
Келленджб
Маженко