[actualizado con la forma de onda final y operativa al final de la pregunta]
He estado tratando de conectar algunos equipos automotrices con un Teensy 3.2 para comunicación en serie a 19200 baudios. Para establecer una interfaz entre RS232 y la lógica TTL, estoy usando esta palanca de cambios de Sparkfun .
Teensy está configurado para el usuario Serial2 para esa conexión. Y si conecto un CP2102 en Serial2, obtengo la comunicación serial correcta en 19200 baudios 8N1. Esto confirma que los pines son correctos y que el UART está funcionando.
La serie del dispositivo remoto llega sobre tres conductores; Tierra, Tx, Rx.
Conecto los tres al cambiador de nivel y encuentro esta forma de onda limpia y agradable a través de Ground y TX (RS232 Pin 2) que está etiquetada en Esquema del desplazador como RS-OUT >
CuandousoVcc=3v3deTeensy,veoestaformadeondaenlalíneaRx(JP2Posición4)>
Ymientrasmialcancepuededecodificarlosdatosenserie,miTeensynoreconocelosdatosenserie.
LaúnicacosaobviaquepuedovermaleseldesplazamientodeCC..
¿DeberíaestetipodeformadeondaTTLtrabajardirectamenteenunUART?¿DebosubirobajarparaobtenerlosnivelesTTLadecuados?
¿Lohecableadoincorrectamente?(EstecableRS232funcionacuandomeconectoaundongleUSB<>RS232yloconectoaunacomputadora).
Seguimiento
Sí,lohabíacableadoincorrectamente;LospinesDB9debíanserintercambiadosporTX/RX.
Conelcambiodevoltajecorrectoaplicadoenloslugarescorrectosdelapalancadecambios,losniveleslógicossonlosquedeberíanser.
Tengaencuentaquelacapturadepantallaanteriores5v/div.
Esteesunvistazomásdecercaa1v/div.
El teensy ahora está leyendo alegremente de esa señal TTL.
Nota al pie
El alcance es el Rigol DS1054Z, y está configurado para Cat5 Ethernet conectado a una Mac. Las capturas de pantalla son gracias a un proyecto de Python que instalé con $ pip install ds1054z[savescreen,discovery]
. A continuación, obtener las capturas de pantalla es simplemente:
$ ds1054z save-screen 10.0.0.6
ds1054z-scope-display_2016-07-20_20-31-00.png
Se accede a la decodificación RS232 a través del botón [Matemáticas] cerca de los botones de selección de canal. Debe cambiar la opción [Polaridad] del decodificador al controlar el resultado TTL del circuito de cambio.
Addendum
Estaba alimentando esto con VCC = 5V, y produje niveles de lógica RX-I en consecuencia. Teensy está contento con 5V TTL, pero produce niveles lógicos de 3V3 para la salida.
5V VCC exige que TX-O sea manejado con una señal TTL de 5V. Las luces de TX y RX parpadearon muy bien, pero no se generó ninguna señal RS232 TX.
Al cambiar a VCC = 3V3, el cambiador detectó los niveles lógicos de TX correctamente y produjo la señal de transmisión RS232 esperada.