GNU/Linux >> Tutoriales Linux >  >> Linux

Linux – ¿Puerto serie Raspberrypi?

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.


Linux
  1. ¿Puerta de enlace de puerto serie Netbsd?

  2. Linux:¿cómo encontrar procesos usando el puerto serie?

  3. Comprobar el uso del puerto en Linux

  4. ¿Cómo abrir el puerto serie en Linux sin cambiar ningún pin?

  5. ¿Probar eficientemente si un puerto está abierto en Linux?

Comunicación serial en Linux moderno

Cómo hacer un escaneo de puertos en Linux

Cómo hacer ping a un número de puerto en Linux

Abrir un puerto en Linux

puerto serie frambuesa pi

Agotamiento del puerto de red de Linux