Проблема:
У меня есть переключатель HDMI, который управляется через RS232
Аппаратное обеспечение:
Код:
[Примечание: Galileo Gen 2 требует Serial1 для связи UART]
void setup() {
Serial1.begin(19200);
}
void loop() {
Serial1.print("sw i01");
Serial1.write(13); // CR
Serial1.write(10); // LF
delay(1000);
}
Вопрос:
Похоже, что Сценарии 1 и 2 подтверждают, что связь переключателя Arduino-> HDMI должна работать, но это не так. Я что-то упустил в отношении физической связи? Отправляет ли вручную «sw i01» в PuTTY команды, отличные от моих в коде Arduino?
Ваш переключатель HDMI и конвертер USB в RS-232 говорят на RS-232. Ардуино говорит TTL UART .
Хотя концепция, лежащая в их основе, и общий формат данных одинаковы, существуют серьезные различия:
Это означает, что вам нужно преобразовать TTL UART Arduino в & # 177; 10V NRZ с обратной логикой, чтобы общаться с IOGear.
К счастью, это достаточно простая задача с использованием специального чипа интерфейса. Они легко доступны и могут быть куплены за небольшие суммы в виде прорывной доски или даже полного щита, если хотите (например, это от Sparkfun). Чип известен как MAX232 в его наиболее распространенной форме, хотя другие производители могут использовать разные буквы.
Если вы зайдете на eBay (или ваш любимый сайт бюджетного продавца) и поищите «Arduino MAX232 DB9» (DB9 - это тип штекера на плате - 9-контактный разъем D), вы получите множество хитов на выбор.
Я обнаружил, что это связано с физической связью!
В сценарии 3 у меня изначально был адаптер Sparkfun TTL / RS232, который имел гнездовой разъем DB9, подключенный к гнездовому разъему DB9 переключателя HDMI с помощью последовательного кабеля штекер / штекер. Последовательный кабель, который я купил, был прямым кабелем.
Я поменял его с помощью нуль-модемного кабеля, и он сразу сработал.
Глядя на схему подключения, я подумал, что замена выводов Tx / Rx на адаптере Sparkfun достигла бы того же результата, что и кабель нуль-модема, но, видимо, нет.
Если кто-то может указать, почему нуль-модемный кабель изменил ситуацию, это было бы полезно узнать в будущем.