Velocidad SPI máxima de la pantalla TFT

0

Tengo un 1.8" TFT color display de Banggood. Es muy agradable con los colores vivos.

Sin embargo, la actualización de la pantalla es lenta. Estoy limitado por la velocidad SPI de 1 MHz. Da como resultado una tasa de actualización de:

  

160 píxeles x 128 píxeles x 16 bits / píxeles ÷ 1 MHz = 0.33 s por fotograma

Efectivamente, es aún más bajo ya que el Teensy LC se detiene aproximadamente 1 ciclo después de cada byte y hay una sobrecarga entre las transacciones SPI. Así que es más como 0.5s por cuadro o 2 fps, lo que es muy notable. Es más como una animación de barrido de izquierda a derecha (vea la imagen a continuación).

1.8"Pantalla TFT con placa

Así que mi pregunta es:

  • ¿La velocidad está limitada por el chip del controlador de pantalla, probablemente un ST7735 ?
  • ¿O está limitada la velocidad por el cableado de mi placa de pruebas?
  • ¿Hay una pantalla más rápida disponible donde pueda usar el bus SPI a 4 u 8 MHz?

Actualizar

Aquí hay una imagen de la parte inferior del tablero.

Nohaymuchoquever:

  • LaranuradelatarjetaSDylastresresistenciasR1aR3noseutilizan.
  • LaresistenciaR4cercadelpinLED(másaladerechaenlaimagen)estáconectadaalpinLEDytiene7.5Ω(7R5).
  • Lapartecontrespatasenlaesquinasuperiordice"V2PK". Supongo que es un regulador de voltaje que se usaría para una operación de 5V. Lo opero un 3.3V. También hay un condensador y un puente abierto cerca de él.

La parte interesante probablemente esté oculta entre la PCB y la pantalla.

Resuelto

Ahora está funcionando correctamente. En un Teensy LC se ejecuta a 16 MHz, en un Teensy 3.2 se ejecuta a 18 MHz. Ambas son las velocidades máximas de reloj SPI para estos tableros.

Resultó ser un problema de software. El principal problema fue que no había deshabilitado DMA correctamente. Luego se activaría demasiado pronto en la próxima transmisión SPI, es decir, comenzaría con el primer byte de la transmisión, aunque se suponía que comenzaría en el segundo byte. Esto confundió algunas cosas y dejó el dispositivo esperando a que se transmitiera el último byte.

Todavía no entiendo realmente por qué funciona en frecuencias más bajas pero no en otras más altas.

    
pregunta Codo

1 respuesta

1

TSCYCR , el ciclo del reloj en serie (Lectura) es 150 ns. Eso es 6.6 MHz. Pero no esperes milagros de una pantalla SPI. (podría funcionar bien a 10Mhz)
El software debe optimizarse para actualizar la menor cantidad de píxeles por actualización.

Todavía hay algunas cosas que puedes hacer:
- Reduce la profundidad del color.
- Usa una palabra más larga. (por ejemplo: 16 en lugar de 8 bits)
- Asegúrese de que la rutina SPI, si está bloqueando, sea lo más corta posible. No espere a que se complete el spi, espere a que esté listo para una nueva palabra.

Si desea una visualización rápida, obtenga una paralela con un buffer de cuadros en el que pueda realizar operaciones.

    
respondido por el Jeroen3

Lea otras preguntas en las etiquetas