Analizar el protocolo utilizado para la pantalla Futaba VFD, 3 pines de datos

Desarmé una unidad Samsung SMT-C7140 HD (que la compañía de cable dejó obsoleta, una pena) y encontré una buena pantalla que probablemente podría reutilizar. Es un Futaba GL07-00006A (13-BT-246GINK). Traté de encontrar el manual de servicio de la unidad Samsung, traté de encontrar una hoja de datos de la pantalla Futaba, sin embargo, no tuve suerte.

Así que comencé a analizar las conexiones del panel frontal/pantalla y descubrí que podría ser posible reutilizar todo el panel frontal, el inversor también está en el panel. El Futaba no tiene un controlador externo (sin chip debajo de la pantalla o en la placa base), así que pensé que podría ser una Chip on Glass (COG)pantalla (debido a que hay menos pines en la pantalla), creo que tengo razón, como sea que lo llamen Chip IN Glass (CIG). Después de averiguar los pinouts (vea las imágenes debajo de esta pregunta), suelde un encabezado y conéctelo a un analizador lógico.


análisis CIG


Los 4 pines de datos del Futaba están directamente disponibles en el conector del cable plano. Hay algunos microcontroladores en la placa y un procesador principal. Después de leer los pines con el analizador, veo algo como esto:


Analizador


Puedes descargar las capturas en un zip , hice varias sesiones, disponible en formato de archivo Saleae Logic, PulseView y en formato de archivo VCD.

Probé varios protocolos estándar e I2C dio algunos resultados en CH0 y CH1, pero eso parece un poco extraño debido a los dos canales de datos adicionales (algunos relojes o secuencias de habilitación). También probé SPI (podría ser posible debido a 4 líneas de datos), sin embargo, muchos errores o ningún resultado.

Pregunta:

¿Alguien reconoce los patrones o el protocolo utilizado para dirigir esta pantalla? ¿Alguien sabe qué tipo de controlador hay dentro de esta pantalla?


Algunas fotos que hice:

Panel frontal y posterior

(imagen eliminada, ver actualización a continuación)


Actualización 04042020 (<-¡fecha divertida!)

Sería bueno que hubiera una herramienta para grabar y reproducir la secuencia (de arranque) para asegurarse de que todo esté correctamente conectado después de realizar los cambios en la configuración. Algo así como un reproductor de ondas de audio, un reproductor de 'ondas' TTL. Sin él es realmente difícil de hacer porque es fácil cometer un error. Cuando no funciona, puede ser el protocolo utilizado o las conexiones. Puede hacerte bastante inseguro porque no sabes exactamente cómo debe funcionar exactamente.

Intenté conectar un microcontrolador (después de cubrir las líneas de datos en el cable plano) a las líneas de datos (solo hay 3 y no 4, una de ellas parece ser de +5 V de potencia; consulte también el 'esquema' actualizado a continuación) y compartir tierra probar algún software que implemente dispositivos similares y su protocolo.

No encontré ningún ejemplo oficial de Futaba, en ningún otro lugar o en el sitio web obsoleto de Futaba. Después de registrarse e iniciar sesión, hay una cantidad impresionante de hojas de datos, sin embargo, no hay forma de buscar características. Además, en las hojas de datos no hay ejemplos, solo especificaciones, la falta de detalles de "cómo hacerlo" es enorme.

Encontré esta fuente de Noritake y luego navegué por su catálogo de productos. Proporcionan algunas bibliotecas para AVR y probaron la mayoría de ellas. El código es... no es una belleza, el sentido del gusto lo cuestiono. También encontré "pantalla Newhaven" y muchas otras cosas similares como Adafruit. Todos hacen técnicas similares, copian esquemas y demás. Lo más interesante que encontré fue una hoja de datos de la tecnología PrinceTon (PT6314) , que se ve muy similar pero diferente SOLO a la hoja de datos de Futaba (y proporcionan ejemplos en su hoja de datos):

[hoja de datos de la tecnología PrinceTon (PT6314) vs Futaba[9]

La principal diferencia es la diferencia en el borde ascendente y descendente. Sin embargo, todavía no sé si este es el protocolo correcto para usar. Así que sí, hicieron que fuera muy difícil poder reutilizar algunas cosas.

Intenté muchas cosas en este momento para asegurar que la pantalla terminará en el vertedero, sin embargo, tengo algunas dudas sobre si encontraré la solución correcta. Entonces, por ahora, detendré este viaje (a menos que haya una solución real) y dejaré la información aquí, tal vez para usarla en el futuro. Con la esperanza de que los fabricantes comiencen a etiquetar (conexiones o proporcionar una hoja de datos (con ejemplos o código) de) componentes no críticos de sus productos de vida corta para poder reutilizarlos en lugar de tirarlos.


Imagen/esquema actualizado:Panel trasero esquemático actualizado

Tal vez el modo serial síncrono de la emulación de LCD , aunque la luz estroboscópica parece invertida.
@SpehroPefhany Hola, gracias, ¡échale un vistazo!
@SpehroPefhany De nuevo, gracias. Fue una verdadera montaña rusa de información, buscando y probando, vea también la actualización en la pregunta.
a primera vista, la señal 0 parece ser datos, la señal 1 el "reloj", la señal 2 algún tipo de marco o pulso de control y la señal 3 parece un clr/reset. Lo que me desconcierta es que a veces son 8 o 16 bits entre pulsos de 2 cuadros, a veces otros números como 5. Voy a echar otro vistazo después de dormir un poco.

Respuestas (3)

El controlador dentro de este tubo VFD es un Princeton PT6301. Cuenta con memoria interna de caracteres (2x20), memoria de iconos 2x20, ROM de caracteres ASCII, RAM de caracteres definida por el usuario, controladores y multiplexores para el VFD. La interfaz es Data (LSB primero), Clk, /CS y /Reset. Consulte la hoja de datos del conjunto de comandos.

La traza del analizador lógico coincide con el texto ASCII de 12 caracteres que se muestra en la pantalla (p. ej., NPO 1 HD). La cadena está precedida por varios comandos de configuración/inicialización y seguida por un decimotercer carácter para mostrar los símbolos de Dolby, correo electrónico, etc. Ese carácter final es uno de los caracteres definidos por el usuario que se definió como parte de la configuración/inicialización para activar el correcto segmento (por ejemplo, HD).

¡Tenga en cuenta que su diagrama de pines del conector y el tubo VFD anterior tiene algunos errores! Los pines en el VFD (comenzando desde el lado derecho de su imagen) deben ser: GND1, GND2, +35V DC (conmutado), suministro de 5V DC, pin OSC (red RC entre 5V y GND), /RST, /CS, CLK , DAT, Carolina del Norte, Carolina del Norte

Los 35 V CC se generan en la PCB mediante un convertidor CC/CC. El generador de 35 V, el suministro de 5 V y el suministro de filamento están habilitados por el Pin 3 en el conector externo.


Puede encontrar una biblioteca y un código de ejemplo para esta pantalla en mbed: https://os.mbed.com/users/wim/code/PT6301/wiki/Homepage

Ejemplo de algún texto en pantalla usando el método printf

Hola, gracias por la buena respuesta después de todo este tiempo! Muy bien, eso parece ser plausible, sin embargo, en este momento no tengo tiempo para probarlo. Continuará, gracias de nuevo!
Bill: Hola, en los comentarios sobre su otra respuesta (ahora eliminada), expliqué por qué los revisores rechazaron correctamente su intento de edición y qué puede hacer de manera diferente para evitar ese problema en el futuro. Moví esa otra respuesta de vuelta a esta respuesta, como intentaste hacer. Si no puede ver esos comentarios, o si tiene preguntas sobre mi explicación allí, deje un comentario debajo de este que comience con @SamGibsonpara notificarme, y configuraré una sala de chat para esa discusión. Gracias.
Bill - Hola, solo para que quede claro, ¿es esa su biblioteca y el código que vinculó en mbed en su respuesta? Gracias.
@Bill Hola Bill (¿o Wim?), ¡Es increíble! Hiciste de este mundo un lugar mejor. Todavía no tengo tiempo para probarlo, sin embargo, ya demostró que esta es la solución. Acepta esto como una respuesta. ¡Muchas gracias! El único conjunto de chips nórdico que tengo es un BBC Microbit (como regalo en una feria de fabricantes). Tal vez lo transfiera a otra plataforma (ya descargué el código) y publique los resultados en github. Genial, no puedo esperar para probarlo. Estoy muy feliz de que todavía haya un uso para una parte tan hermosa y útil de un producto abandonado. Publicaré actualizaciones en esta pregunta si las hay. Puede tardar un poco o no, depende ;-)

Diseñé una pantalla VFD de 1x16 caracteres en un producto a principios de la década de 1990. Como este también vino de Futaba. Esta era una pantalla 'desnuda' sin chip de controlador como parece ser la tuya.

Conducir la pantalla ayuda si considera que se parece a una válvula termoiónica de múltiples ánodos (tubo de vacío), en realidad un triodo de cátodo calentado directamente de múltiples rejillas y múltiples ánodos, donde la corriente del ánodo da como resultado la iluminación de 1 segmento de 1 carácter. El control del segmento mostrado es por 16 grillas.

Hay 16 ánodos sacados de la pantalla, uno para cada carácter y 16 cuadrículas, una para cada segmento. Un filamento común es el lado negativo del 'tubo'. En su caso con 2 líneas de visualización, supongo que habrá algún método para direccionar la línea 1 o 2.

El software para controlarlo es simplemente una disposición típica de caracteres y segmentos multiplexados.

Debido a que la pantalla usa voltajes 'impares' (es decir, no lógica de 5V) para controlarla, usé pestillos de 2x8 bits que manejan las rejillas y pestillos de 2x8 bits que manejan los ánodos. La conversión de voltaje de nivel lógico a nivel de visualización se realizó con 32 'transistores digitales' (resistencia de base en serie integrada).

Puedo decirles que la tarea no es trivial sino más bien gratificante. Con suerte, incluso podría encontrar el código del microcontrolador utilizado (escrito en PL/M 51 y muy legible).

Si ha decidido que esta respuesta ya no es correcta para la situación de la pregunta real (como se insinuó en su otra publicación en esta página), debe editarla o incluso eliminarla.

Parece una especie de protocolo similar a SPI, pero probablemente no esté basado en bytes, por lo que la cantidad de bits no es un múltiplo de 8.

Su canal 0 es probablemente "datos", el canal 1 es "reloj", el canal 2 es "bloqueo" y el canal 3 es algo así como "restablecer" o "aplicar".

los siguientes pasos serían:

  • Haga zoom en los datos para descubrir la codificación de bits: ¿los datos están bloqueados en el reloj ascendente o descendente? ¿Cuál es el estado del reloj y los datos cuando emites el comando "bloqueo"?
  • Descodifique bits (usando una hoja de cálculo o un script simple) para que pueda obtener patrones de bits y determinar la longitud del comando
  • Programe Arduino para que emita las mismas señales y conéctelo al dispositivo
  • ¡Intenta cambiar varios bits para experimentar!

Como inspiración, aquí hay un chip de controlador muy simple: MAX6921 . Utiliza el protocolo SPI con palabras de 20 bits. Puede ver cómo usa 3 líneas para cargar y aplicar los datos.

Desafortunadamente, su caso puede ser un poco más complejo, ya que parece tener 5 "comandos" de diferentes longitudes. Algo que he visto antes es un formato de "comando" + "datos"; por ejemplo, es posible que tenga 3 bits de comando y un tamaño de datos dependiente del comando. ¡Descubrirás más una vez que decodifiques tus bits!