Tengo un módulo de pantalla OLED amarillo-azul de 128x64 de 0,96 pulgadas como este: módulo OLED y quiero usarlo para un proyecto. El controlador de la misma es SSD1306. si ve en la hoja de datos de SSD1306, sabrá que admite interfaces SPI e I2C de 8 bits 68xx/80xx paralelo y de 3/4 cables. Ahora tengo varias preguntas:
Por cierto: mi MCU es STM32F1 (admite todas las interfaces, incluso 80xx y 68xx en paralelo) y todas las series AVR.
Todos son comparables, y las compensaciones son Pins vs Speed. Realmente se reduce a su preferencia. ¿Cuántos pines libres tienes (¿Puedes prescindir de 8 pines de datos + 4/5 pines de control para datos paralelos?), ¿ya estás usando SPI o I2C? La versión I2C lo limitará a solo 2 LCD sin usar múltiples buses I2C o búfer/interruptores, pero solo requiere 3 líneas de datos (SDA/SCL/Reset) y simplifica el código de comando/datos al incluirlo en un byte en lugar de requerir alternancia de pines.
Si fueras yo, usaría i2c, pero sobre todo porque lo prefiero. Si ya está utilizando SPI, ese es el camino a seguir.
En cuanto al direccionamiento LCD 6800 vs 8080, son bastante similares y no tienen diferencia de rendimiento. La interfaz 6800 es un poco más fácil de implementar y, en su mayor parte, es exactamente igual que la interfaz común LCD de caracteres HD44780.
Tenga cuidado aquí: SPI muy a menudo no permite leer desde la pantalla LCD. Y porque tienes que direccionar 4 u 8 píxeles adyacentes. Por lo tanto, el mapeo de la memoria LCD para colocar la imagen completa a la vez, sin manipulación de píxeles. 8080/6800 bueno para pequeños microcontroladores. Verifique el estado de los píxeles (lea desde la pantalla LCD), cambie el grupo completo de píxeles (para no alternar vecinos) y listo.
Según mi experiencia, la mejor opción es SPI con 4 cables, porque es fácil de usar con HW SPI y en combinación con DMA (sí, no todas las MCU tienen DMA) puede enviar un búfer de cuadro completo en segundo plano sin tocar desde el programa principal que puede hacer otras cosas durante este tiempo.
También es posible usar SPI con 3 hilos, pero con DMA será más complicado si necesita enviar 8 bits y un comando/datos de bit adicional como nueve bits.
Con I2C también es posible usarlo en combinación con DMA para transferir el búfer de cuadro completo a la vez en segundo plano. pero algunas MCU tienen un periférico I2C más complicado y necesitan más esfuerzo para que funcione.
Pero a veces no hay otra posibilidad porque algunas pantallas, especialmente 96x16 o 128x32, solo tienen I2C o SPI.
También es posible usar bit-banging simple, pero con muchas desventajas.
Nunca pruebo la interfaz paralela 8080 o 6800 con pantallas OLED, porque necesita muchos cables, pero generalmente es la interfaz más simple y está bien descrita en la hoja de datos SSD1306 en las secciones 8.1.1 y 8.1.2.
Seleccionaría la interfaz I2C, ya que puede usar el código bit bang de cualquier pin micro IO de repuesto si los UARTS ya están en uso.
rojoarenosoladrillo
Transeúnte
Transeúnte