No entiendo la hoja de datos de la pantalla SSD1306 Oled

0

Solo por curiosidad, me gustaría escribir mi propio controlador SSD1306 I2C con pantalla oled utilizando arduino nano board y atmel studio 7.

Analicé la inicialización de Adafruit I2C que envía el byte 0x00 después de enviar la dirección de esclavo 0x78.

Leí la hoja de datos del SSD1306 pero algo no me queda claro. Se trata de bit7 y bit6 de cada byte recibido.

Los estados de la hoja de datos:

  • Si el bit Co (bit7) está configurado como "0" lógico, la transmisión de la siguiente información solo contendrá bytes de datos.

  • El bit D / C # (bit6) determina que el siguiente byte de datos se actúa como un comando o un dato. Si el bit D / C # se establece en la lógica "0", define el siguiente byte de datos como un comando. Si el bit D / C # se establece en la lógica "1", define el siguiente byte de datos como un dato que se almacenará en la GDDRAM. El puntero de dirección de columna GDDRAM se incrementará en uno automáticamente después de cada escritura de datos. "

    Mi pregunta es: ¿qué sucede si ambos bits se ponen a cero? Parece una contradicción.

    • bit7 es cero: por lo tanto, los siguientes databytes deberían ser databytes no relacionados con la memoria de visualización
    • bit6 es cero: por lo tanto, el siguiente databyte será un comando

Parece que a partir de la inicialización de Adafruit el próximo byte será un comando ...

Espero que alguien pueda ayudarme.

    
pregunta HenkvW

1 respuesta

1

Co es un bit de continuación. Si se establece en 1, el controlador espera otro byte de control en este ciclo de escritura I2C. Si se establece en 0, el controlador no esperará recibir otro byte de control en este ciclo de escritura I2C.

  • Co = 0, D / C = 0: los siguientes bytes son datos de comando (no gráficos), después de qué condición de parada I2C se espera
  • Co = 1, D / C = 0: los siguientes bytes son datos de comando (no gráficos), después de que se espera otro byte de control
  • Co = 0, D / C = 1: el (los) byte (s) siguiente (s) son datos de gráficos, después de lo cual I2C se detiene se espera una condición
  • Co = 1, D / C = 1: es una combinación ilegal (creo)
respondido por el user930473

Lea otras preguntas en las etiquetas