Interconectando la pantalla OLED I2C con pic18f2550

0

He estado intentando conectar el módulo de pantalla monocromática SSD1306 I2C oled con el microcontrolador PIC18F2550 sin ningún éxito. La hoja de datos del controlador ssd1306 muestra el siguiente formato de datos

así que cualquiera puede explicar el formato sobre cómo podemos implementar esto en el código I2C. Estoy usando MikroC pro para PIC.

    
pregunta Suraj Bhawal

2 respuestas

2

Definitivamente, tenga abiertas las hojas de datos de su MCU y pantalla LED mientras hace esto. Respondo a esta pregunta en base a las hojas de datos de MCU y LED aquí.

  1. Asegúrese de que tanto la MCU como la pantalla LED estén configuradas correctamente en el hardware / software. Mire la sección 8.1 en la hoja de datos del LED, los pines específicos deben manejarse de manera apropiada para configurar el chip para I2C. Consulte la hoja de datos de la MCU sobre cómo configurar los registros I2C. Debe configurar la frecuencia de reloj inferior a 400 kHz ya que este es el máximo que admite el LED (Tabla 13-6 en la hoja de datos del LED). Configure su MCU como el maestro I2C.

  2. Protocolo actual. Si tiene la biblioteca I2C, esto debería ser bastante sencillo. De lo contrario, revise la hoja de datos / ejemplos de MCU sobre cómo hacer la comunicación I2C. Eso es demasiado expansivo para cubrir en este post. Si está utilizando la biblioteca, los comandos se encuentran aquí enlace

* I2C1_Init

* I2C1_Start

* I2C1_Wr

* I2C1_Rd

* I2C1_Stop

Mirando el diagrama, así es como procederíamos

  1. Emita un comando de inicio (esta es la S al principio).

  2. Escriba la dirección de esclavo del LED. La dirección del esclavo es el "nombre" del dispositivo en la red I2C. Tenga en cuenta que potencialmente puede haber muchos dispositivos en una línea I2C, por lo que necesitamos este "nombre". El nombre está formado por los 7 bits superiores del primer byte. La dirección de esclavo del LED es "0111100" o 0x78 en hexadecimal. El bit más bajo es un bit R / W o de lectura / escritura. Esto le indica al LED si queremos leer o escribir en el dispositivo. En este caso, queremos enviar un comando por lo que queremos escribir. La escritura se indica con un 1. Por lo tanto, el primer byte que debe enviar es un 0x79.

Todas las transferencias I2C tienen un bit de reconocimiento, esto será devuelto por la función I2C1_Wr. Debe ser 0 para no representar errores.

  1. A continuación tenemos un byte de comando. Envía un inicio repetido sobre I2C usando la función de biblioteca para hacerlo. El OLED tiene un conjunto de comandos que expone a la MCU. Puede verlos en la sección 9 de la hoja de datos de LED. Preste mucha atención a la sección 8.9 de la hoja de datos, que describe cómo encender el LED. Cabe destacar que debe enviar el comando 0xAF para encender el LED.

  2. Para escribir datos en el dispositivo, observe el diagrama etiquetado como Byte de control en su figura. El bit superior está etiquetado como D / C que indica datos o byte de control. Al establecer este bit apropiado, el byte se procesa como un byte de datos para mostrar o un byte de comando.

respondido por el Mike
0

Utilice los controladores de la página siguiente. Escrito para pic18f2550 con el compilador mikroc.

enlace ?

    
respondido por el xpress_embedo

Lea otras preguntas en las etiquetas