Tengo un problema por el cual el nivel "bajo" que se está emitiendo desde un dispositivo no es lo suficientemente bajo como para que el dispositivo en el otro extremo lo interprete como tal. Supongo que no soy la primera persona en tener este problema, pero no he podido encontrar una solución.
Aquí están los detalles:
Intento conectarme entre el conector ALDL en mi auto y un Teensy++ 2.0 . ALDL utiliza un protocolo similar a UART a 8192 baudios, excepto que la transmisión y la recepción están en el mismo cable. El circuito que estoy usando (de aquí ) se encuentra a continuación:
Cuandoel"perno de control de recepción" (un pin IO digital regular, controlado por software en el Teensy) es bajo, la línea de datos ALDL debe poder conducir la línea de recepción del Teensy. Cuando es alta, la línea de transmisión de Teensy debería poder conducir la línea de datos ALDL mientras que la línea de recepción de Teensy se mantiene alta.
Hasta ahora, no ha estado funcionando. Creo que el problema es que, a menos que la línea de datos ALDL esté muy cerca del suelo cuando está baja, la línea de recepción de Teensy no la lea como tal. Para probar esto, desconecté la línea ALDL y la conecté a tierra manualmente. La línea de recepción de Teensy se redujo a 0.93 V, y leyó un byte. Luego, conecté la línea ALDL a 0.45 V (desde un divisor de voltaje). En ese momento, la línea de recepción de Teensy solo fue de 1.65 V, y no leyó nada.
La poca documentación que encontré dice que la línea ALDL puede generar hasta 0.8V cuando está baja. ¿Hay alguna forma de modificar este circuito o construir otro diferente para evitar este problema?
Editar:
Las señales ALDL están a un nivel de 5V. Específicamente:
Transmitir
Voltaje de salida de bajo nivel: 0,8 V máx.
Voltaje de salida de alto nivel: 4.0V min
Recibir
Voltaje de entrada de bajo nivel: 2.0V máx.
Voltaje de entrada de alto nivel: 2.8V min