Estoy probando mis manos en las pantallas LCD. Así que elegí esta pantalla TFT LCD de 1,8 pulgadas y la probé con la placa TM4c123gxl usando una biblioteca ST7735 (adaptada de Adafruit) y la pantalla funciona perfectamente como se esperaba. ( Código LCD de 1.8 'Serie Tiva ).
Entonces, para algún otro proyecto, planeo usar la misma pantalla pero con Arduino UNO. Así que conecté lo mismo e intenté probar el ejemplo de graphicstest empaquetado con la biblioteca Adafruit, pero desafortunadamente, no funciona como se esperaba, como puede ver en el video .
Estoy usando una red divisora de resistencias para cambiar el voltaje de la lógica de 5V a 3V.
Revisé las líneas SPI con un sniffer lógico y parecen funcionar como se esperaba. Y esto no puede ser ruido porque ha sido programado repetidamente y el comportamiento es exactamente el mismo que en el video.
Lo que puedo concluir es que probablemente me falta algo con la configuración, pero comparé el archivo de la biblioteca Tiva y Arduino y ambos parecen configurar la pantalla LCD con valores idénticos.
Así que cualquier dirección sería de gran ayuda ya que no tengo ideas.
La pantalla LCD que está utilizando es una pieza de 3,3 V. El Tiva Launchpad también es una pieza de 3.3V. Sin embargo, el Arduino Uno es una parte de 5V.
Está suministrando a la pantalla LCD un voltaje demasiado alto; francamente, tiene suerte de que funcione. Use un cambiador de nivel o use una pantalla LCD compatible con 5V.
Los valores de resistencia de su divisor parecen ser demasiado altos, a menos que su velocidad SPI esté configurada en una frecuencia muy baja.
He probado en otra pantalla SPI que, debido a capacitancias parásitas, si la resistencia equivalente es , entonces la velocidad SPI máxima confiable es 1MHz.
Por supuesto, su pantalla + PCB podría tener diferentes capacitancias parásitas, pero no espero una variación mayor que un orden de magnitud.
Su resistencia equivalente es aproximadamente . Esto produciría en mi caso una velocidad máxima de 3,3 MHz (es decir, 2 MHz en Arduino Uno).
soluciones posibles:
Si no funciona, o si no te apetece tener un consumo de corriente adicional de unos mA:
Como sospechaba, el problema estaba en la biblioteca en sí y no en el hardware.
En lugar de usar la biblioteca Adafruit ST7735 y Adafruit GFX, utilicé la biblioteca TFT predeterminada provista con Arduino y funcionó de maravilla.
Y este problema es muy errático. Debido a que a veces funciona con ciertas pantallas LCD, a veces, durante el arranque de Arduino, puede ver un destello de lo que se suponía que debía mostrar. Pero la biblioteca TFT funciona muy bien con la pantalla LCD siempre.
próximo truco
Mayak