Controlador LED CI STLED316S

Tengo problemas para leer la hoja de datos del controlador IC de LED discreto/de 7 segmentos STLED316S.

Estoy escribiendo código para un chip STM32, pero también estoy usando Arduinos. No tengo problemas para escribir el código, pero realmente tengo problemas para interpretar la hoja de datos (aparentemente, también lo tienen otras personas según una búsqueda en Google) para enviar los bits correctos a través de la interfaz SPI.

Básicamente, todo lo que quiero hacer es encender la pantalla y luego escribir el valor en los segmentos, pero realmente no sé por dónde empezar: ¿los datos deben enviarse en un byte a la vez o cadenas? de bytes? No estoy usando la interrupción de tecla en este momento, así que afortunadamente eso no complica demasiado.

La hoja de datos se puede encontrar aquí .

Cualquier idea sobre esto sería muy apreciada.


Editar:

Creo que pude haber avanzado un poco, pero aún así no creo que sea correcto.

Correcto, creo, aunque podría estar terriblemente equivocado, que lo tengo. No gracias a la hoja de datos, pero afortunadamente otro chip similar de ST ( aquí ) tenía uno ligeramente mejor con un ejemplo.

Bueno entonces:

  • STB BAJO
  • Encender pantalla 00001101
  • STB ALTO
  • STB BAJO
  • Configurar pantalla de 7 segmentos 00100000
  • Establecer configuración 011111101 (Brillo 14/16, brillo constante, 6 dígitos en pantalla)
  • STB ALTO
  • STB BAJO
  • Definir dirección 00100000 (LED 2/7)
  • Escriba bytes para activar los segmentos 11111110 (escribe 8, sin DP)
  • Escribir byte para encender segmentos de LED 3/7 11111110
  • STB ALTO

Creo que es lo que la hoja de datos está tratando de decir. Los últimos 2 bytes van en contra de lo que dice la hoja de datos, pero realmente no veo otra forma de escribirlo... Sin embargo, creo que el resto es correcto.

No es una interfaz SPI, probablemente necesitarás un bit-banging
Es un SPI de 3 hilos con un cable SISO bidireccional en lugar de cables MOSI/MISO, pero el problema no es realmente el protocolo de comunicación, son los bits que se transfieren, es decir. las direcciones etc
Dios mío, esta es una hoja de datos confusa y mal escrita.
Probablemente esta no sea la respuesta que desea, pero, si hay alguna forma de elegir un controlador LED diferente en esta etapa del proyecto, podría ser una buena idea.
Además, ¿ha intentado comunicarse con el chip y descubrió que no funciona? ¿O no estás totalmente seguro de por dónde empezar?
¡Es muy confuso! Desafortunadamente, tengo varios chips en camino, pero no físicamente frente a mí para probar, no es que importe, ya que no sabía por dónde empezar.
Puede haber un comando incorrecto: Configure 7-segment display 00100000yDefine address 00100000 (LED 2/7)

Respuestas (1)

Mi suposición sería esta:

Para encender la pantalla:

  • STB va bajo
  • Reloj en el byte 00001101 (0x0D)
  • STB sube

Para escribir los segmentos:

  • STB va bajo
  • clock en el comando Write: 00000000 (8 bits de ceros). Esto significa: es un comando de escritura, con direcciones de incremento automático, escribiendo en la dirección 0x00 en la página 0x00.
  • Ahora puede registrar los datos para llenar la memoria. Este consta de seis bytes, uno para cada dígito.
  • STB sube

Para registrar datos (asegúrese de que el reloj sea más lento que 1 MHz):

  • STB va bajo
  • Bucle para 8 bits del byte
    • Establecer bit de salida de datos
    • El reloj va bajo
    • El reloj va alto
  • Fin del bucle
  • STB sube
Gracias, tenía la sensación de que esa era la manera de comenzar, pero no estaba 100% seguro, ¡ahora solo cronometro los datos que no entiendo!
El diagrama de reloj está en la página 26. Agregaré algo al respecto a mi respuesta.