Respuesta parcial de la pantalla TFT de 1.8 pulgadas con arduino

2

Estoy probando mis manos en pantallas LCD. Así que elegí esta pantalla LCD TFT de 1,8 pulgadas y probé lo mismo con la placa TM4c123gxl usando una placa La biblioteca ST7735 (adaptada de Adafruit) y la pantalla funciona perfectamente como se esperaba. ( Tiva Series 1.8 'LCD code ).

Así que 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 de Adafruit, pero desafortunadamente, no está funcionando como se puede ver en el video .

Estoy usando una red divisoria de resistencia para cambiar el voltaje de la lógica de 5V a 3V.

He comprobado las líneas SPI con un detector de lógica y parece que funcionan como se esperaba. Y esto no puede ser ruido porque se ha programado repetidamente y el comportamiento es exactamente el mismo que en el video.

Lo que puedo concluir es que probablemente me esté faltando algo con la configuración pero he comparado el archivo de biblioteca Tiva y Arduino y ambos parecen configurar la pantalla LCD con valores idénticos.

Cualquier dirección sería de gran ayuda ya que me quedé sin ideas.

    
pregunta Mayank

3 respuestas

0

Como se sospechaba, el problema estaba relacionado con la propia biblioteca y no con el hardware.

En lugar de usar Adafruit ST7735 y Adafruit GFX library, utilicé la biblioteca TFT predeterminada provista con Arduino y funcionó de maravilla.

Y este problema es muy errático. Porque a veces funciona con ciertas pantallas LCD, a veces durante el arranque de Arduino se puede ver un destello de lo que se suponía que debía mostrar. Pero la biblioteca TFT funciona con la pantalla LCD muy bien cada vez.

    
respondido por el Mayank
1

La pantalla LCD que está utilizando es una pieza de 3.3V. El Launchpad Tiva es también una parte 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 una palanca de cambios de nivel o use una pantalla LCD compatible de 5V.

    
respondido por el duskwuff
1

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 capacidades parásitas , si la resistencia equivalente \ $ \ frac {R_1 \ cdot R_2} {R_1 + R_2} \ $ es \ $ 10 \ k \ Omega \ $, entonces la velocidad SPI máxima confiable es de 1MHz.

Por supuesto, su pantalla + PCB podría tener diferentes capacidades parásitas, pero no espero una variación mayor que un orden de magnitud.

Su resistencia equivalente es de aproximadamente \ $ 3 \ k \ Omega \ $. Esto daría en mi caso una velocidad máxima de 3.3 MHz (es decir, 2 MHz en Arduino Uno).

posibles soluciones:

  • Use un divisor de resistencia \ $ R_1 = 1 \ k \ Omega \ $ y \ $ R_2 = 1.5 \ k \ Omega \ $.
  • Si no funciona, o si no tiene ganas de tener un consumo adicional de mA:

    1. verifique la velocidad máxima de SPI \ $ f_ {max} \ $ en la que funciona su pantalla.
    2. Calcular \ $ k = \ frac {f_ {deseado}} {f_ {max}} \ $
    3. divide ambas resistencias por k.
respondido por el next-hack

Lea otras preguntas en las etiquetas