falta de datos de LTDC durante el acceso simultáneo de SD-RAM y NOR Flash con STM32F429 rev 3

4

Detalles de la aplicación:

  • SDRAM se utiliza como búfer de cuadros LCD.
  • La memoria para 2 búferes de cuadros LCD están asignados (doble búfer) en SDRAM. LTDC siempre tendrá acceso a uno de los búferes de cuadros en la SDRAM para actualizar el cuadro. Los nuevos datos (que se mostrarán en el siguiente cuadro) se actualizarán en la otra área de almacenamiento de cuadros que no está siendo utilizada por LTDC en ese instante.
  • Estoy almacenando todas las imágenes estáticas en NOR flash.
  • Mi aplicación necesita acceso simultáneo a SDRAM y NOR flash, que es compatible con el controlador (estoy usando STM32F429 silicon versión 3).

problema: Cada vez que la aplicación ejecuta una operación de copia de NOR flash a SDRAM, se produce un error de desbordamiento FIFO en LTDC y las imágenes en LCD se distorsionan por algún tiempo. Tengo que saber que al controlador LCD se le ha denegado el acceso a SDRAM durante un tiempo, el tiempo suficiente para que el LCD FIFO se quede sin hambre.

• Intenté reducir el reloj LCD y las imágenes se muestran sin distorsión. La frecuencia de trabajo típica del LCD es de 30 MHz. Si se reduce la frecuencia, veo una atenuación en la pantalla LCD. Desde la hoja de datos de la pantalla LCD tomará 18.29 ms para actualizar un cuadro en la pantalla LCD a un reloj LCD de 30 MHz. es decir, la velocidad de fotogramas será de 54.65 fps. A 24 MHz del reloj LCD, tomará 23.1 ms actualizar un cuadro en la pantalla LCD. es decir, la velocidad de fotogramas se reducirá a 43,29 fps. Me gustaría mantener nuestra velocidad de fotogramas por encima de 50 Hz. Los contenidos de SDRAM y NOR flash se verifican y se consideran válidos.

SDRAM_CLOCK_PERIOD used = FMC_SDRAM_CLOCK_PERIOD_2 (2 * Thclk) (HCLK = 168 MHz)

• Cuando la frecuencia de la pantalla LCD se incrementó a 40 MHz en la placa de evaluación ST, pudimos encontrar el mismo problema.

Se está tardando más tiempo en copiar una imagen de NOR flash a SDRAM en mi pizarra personalizada en comparación con la de evaluación.

Consultas:

  1. Aunque la misma configuración de FMC se usa en ambas placas, el tiempo para copiar de NOR a SDRAM fue mayor en mi placa personalizada. ¿Es porque el bus de datos SDRAM tiene solo 16 bits? ¿Puedo resolver el problema si utilizo una SDRAM con un bus de datos de 32 bits?
  2. ¿Cuál es la frecuencia máxima en la que se puede operar la pantalla LCD en esta configuración? (acceso simultáneo de SDRAM por flash tanto de LTDC como de NOR).
  3. ¿Cómo podemos medir el tiempo real requerido para copiar desde el SDRAM al controlador LTDC?
pregunta kernel

2 respuestas

1

Tuve un problema similar, que resolví con la ayuda del soporte técnico de ST. La solución para mí fue colocar los dos buffers de trama en diferentes bancos de SDRAM. Creo que la SDRAM que estoy usando, y creo que tal vez todas las SDRAM, están diseñadas para funcionar de manera óptima cuando las lecturas / escrituras en cualquier banco dado son bloques contiguos. Colocar los buffers de marcos en diferentes bancos significa que el STM32 accede a ellos de esta manera óptima, lo que permite a la memoria mantenerse al día con las necesidades de FIFO.

    
respondido por el moonbog
1

También tuve este problema al utilizar un STM32F767 con una pantalla LCD de 800x480 a color, y también al usar transferencias DMA2D simultáneas al framebuffer con solo un banco de SDRAM disponible. Lo resolví ejecutando el SDRAM tan rápido como la hoja de datos lo permitiría (HCLK a 168MHz) y ralentizando el reloj LCT-TFT a 20MHz. El brillo de mi pantalla LCD todavía se ve bien a este ritmo más lento. ¡Gracias por comenzar este post que me llevó a esta solución!

    
respondido por el K. Jensen

Lea otras preguntas en las etiquetas