Tengo una pantalla en la que quiero escribir. Esto es posible a través del puerto serie. Cuando uso un convertidor de USB a RS-232, funciona de maravilla. Incluso intenté usar solo los cables RX, TX y GND del convertidor en serie, y todavía funciona. Ahora quiero usar esta pantalla en una caja pequeña combinada con una Raspberry Pi, por lo que no me queda espacio para el gran convertidor USB-RS-232.
He intentado usar el puerto serial interno de la Frambuesa. Se establece en 9600 baudios usando $ sudo stty -F /dev/ttyAMA0 9600
. Pero cuando lo conecto a la pantalla, solo muestra basura y los comandos de control normales (que funcionaban con el convertidor RS-232) tampoco funcionan.
Usar $ sudo minicom -b 9600 -o -D /dev/ttyAMA0
y enlazando los GPIO TX a RX, muestra los caracteres correctos en el minicom
consola.
Ahora conecte el puerto serie GPIO a los pines RX y TX del convertidor USB-RS-232 y conecte a tierra y abra ambos puertos en minicom
con baudios configurados en 9600, solo a veces muestra alguna salida en la otra terminal, pero cuando muestra alguna salida, también es basura.
Respuesta aceptada:
Estoy bastante seguro de que el problema es que Pi no tiene una interfaz RS232, mientras que la pantalla sí.
El Pi tiene una interfaz UART (LV-), su pin TX emite 0 V para un lógico y 3,3 V para un
1
lógico . Esto es bastante fácil de implementar, ya que 3.3V ya está disponible en Pi. Pero esto solo funciona para comunicaciones en una sola PCB o dentro de un solo dispositivo.
Para la comunicación entre dispositivos en distancias más largas, se utiliza un sistema menos propenso a señales de interferencia como RS232. Si bien la estructura lógica de la forma de onda (tasa de bits, temporización, inicio, parada, paridad y bits de datos) es la misma que para UART, los niveles de voltaje son -15V…-3V para un 1 y +15V…+3V para un
lógico . Esto significa que no solo hay voltajes más altos (y negativos), sino que también se invierte su significado.
Por lo tanto, si la pantalla espera niveles de RS232 y obtiene esos niveles de 3,3 V del Pi, en su mayoría no reconoce los datos y, si lo hace, a menudo es solo basura.
Y, por supuesto, si conecta RX y TX de la misma interfaz, obtiene lo que espera.
Pero:si la salida RS232 TX no tiene limitación de corriente, ¡incluso podría dañar su Pi!
Hay placas convertidoras de UART a RS232, pero si le gusta soldar, las placas solo contienen un MAX3232 (más cuatro condensadores). Este IC también genera los niveles de voltaje más altos (y negativos) a partir del voltaje de suministro de 3,3 V del Pi.
Relacionado:Linux:¿por qué redirigir la salida a 2>&1 y 1>&2?El más común es el MAX232 (adivina por qué se llama así), pero es para operación de 5 V, no de 3,3 V.
Finalmente, debido a que el UART y el RS232 usan la misma estructura lógica, a menudo no se distinguen entre ambos, especialmente por software (programadores). A menudo también se denominan simplemente "interfaz en serie", aunque existen otras interfaces como I²C y SPI, que son un tipo de interfaz en serie, pero nunca se consideran "la" interfaz en serie.