Последовательный порт RaspberryPi

Обычно я использую это:

for e in $(find . -maxdepth 1 -type d); do echo ${e#\./}; done | grep -v '^\.'

$ {e% \ ./} удалит первый ./ и затем grep удаляет все, что начинается с точки.

7
13.11.2016, 15:20
2 ответа

Я уверен, что проблема в том, что у Pi нет интерфейса RS232, а у дисплея есть.

У Pi есть интерфейс (LV-)UART, его TX-pin выводит 0V для логического 0 и 3.3V для логического 1. Это довольно легко реализовать, поскольку 3,3 В уже есть на Pi. Но это работает только для связи на одной печатной плате или внутри одного устройства.

Для связи между устройствами на больших расстояниях используется система, менее подверженная воздействию мешающих сигналов, например RS232. Хотя логическая структура формы сигнала (битрейт, синхронизация, старт-, стоп-, четность и дата-биты) такая же, как и у UART, уровни напряжения -15В...-3В для логической 1 и +15В...+3В для логической 0. Это означает, что существуют не только большие (и отрицательные) напряжения, их значение также инвертировано.

Таким образом, если дисплей ожидает уровни RS232, а получает от Pi уровни 3,3 В, он в большинстве случаев не распознает данные, а если и распознает, то часто это просто мусор.

И конечно, если вы соедините RX и TX одного и того же интерфейса, вы получите то, что ожидаете.

Но: Если выход RS232 TX не ограничен по току, он может даже повредить ваш Pi!

Существуют платы преобразователей UART в RS232, но если вы любите паять, то эти платы содержат только MAX3232 (плюс четыре конденсатора). Эта микросхема также генерирует более высокие (и отрицательные) уровни напряжения из напряжения питания 3,3 В от Pi.

Более распространенным является MAX232 (догадайтесь, почему он так называется), но он предназначен для работы с напряжением 5 В, а не 3,3 В.


Наконец, поскольку UART и RS232 используют одну и ту же логическую структуру, их часто не различают, особенно в программном обеспечении (программисты). Их также часто называют просто "последовательным интерфейсом", хотя существуют и другие интерфейсы, такие как I²C и SPI, которые являются разновидностью последовательного интерфейса, но никогда не считаются "последовательным" интерфейсом.

10
27.01.2020, 20:15

Встроенный последовательный порт Raspberry Pi использует уровни напряжения от 0 до 3,3 Вольт, как описано здесь. Конвертер USB в последовательный порт и ваш дисплей будут использовать уровни напряжения RS232 номинально от -15 В до +15 В, с минимальным значением -3 В/+3 В. Вам необходимо выполнить преобразование между этими двумя уровнями.

Порт будет работать при обратном подключении, поскольку выходные и входные напряжения совместимы.

5
27.01.2020, 20:15

Теги

Похожие вопросы