STM32H7 con 512 MB de SDRAM

0

Estoy considerando diseñar un procesador de audio basado en el STM32H7. Quiero experimentar con DSP basado en MCU en lugar de usar un DSP dedicado. Elegí este ARM MCU de gama alta para tener un amplio margen para los cálculos de audio DSP.

También quiero programar un retraso. Suponiendo que estoy usando muestras de 24 bits a 48 kHz, un búfer de tres segundos por un retraso de tres segundos en un canal mono ya va a ocupar 432 kB de memoria. Solo por diversión busqué la configuración de memoria externa máxima, que es SDRAM con una dirección de fila de 13 bits, una dirección de columna de 11 bits y 4 bancos internos, lo que da 256 MB de memoria (32 bits de longitud de palabra). Se pueden abordar dos de estos, con un total de 512 MB.

Verifiqué en línea para encontrar IC de memoria que coincidieran con esa especificación, pero no encontré ninguna con las longitudes de dirección de fila / columna correctas y también todas las que coincidían con la configuración de memoria eran módulos DDR y el STM32H743 no admite DDR.

Mis preguntas son:

  • ¿Puedo usar un chip DDR en un controlador que no sea DDR?
  • ¿Es una locura intentar agregar 512 MB de SDRAM externo a un STM32H7? ¿O por qué los módulos de memoria que coinciden con estos criterios son tan difíciles de encontrar?
  • ¿Quizás Quad-SPI Flash se ajuste mejor? Me temo que es demasiado lento para una aplicación de retraso de audio.
pregunta Xaser

2 respuestas

2
  

¿Puedo usar un chip DDR en un controlador que no sea DDR?

No.

  

¿Es una locura intentar agregar 512 MB de SDRAM externo a un STM32H7?

Es apenas posible, pero probablemente no valga la pena. Las piezas de SDRAM más grandes disponibles son 512 MBit (no MByte). Se pueden configurar como 64M x 8. Cuatro de estos en paralelo pueden funcionar como una memoria de 64M x 32 = 256 MB; Dos bancos de esto te dan 512 MB.

  

¿Quizás Quad-SPI Flash se ajuste mejor?

No. Flash no es apropiado para las aplicaciones que requieren que la memoria se escriba continuamente.

    
respondido por el duskwuff
1

Si interpreto su pregunta más ampliamente como 'Cómo conecto una memoria externa grande al STM32H7', una solución es examinar el diseño de la placa de evaluación STM32H743 de ST Microelectronics con 32M bytes de DRAM, para lo cual ST Microelectronics proporciona información de diseño completa: esquemas, diseño de PCB, BOM y software:

enlace

Si desea probar sus ideas de diseño utilizando una placa de evaluación de este tipo, podría considerar el STM32F746 Discovery de ST Microelectronics, ya que si bien el procesador es solo la mitad de la velocidad de reloj del STM32H7, el Kit de descubrimiento es barato y está ampliamente disponible. Esta placa tiene 8M bytes de DRAM (nuevamente, ST Microelectronics proporciona documentación de diseño completo):

enlace

Si interpreto su pregunta aún más ampliamente, como buscando una solución integrada con un procesador rápido y una DRAM grande, estoy de acuerdo con el comentario de Jan Dorniak, y sugiero mirar una pequeña computadora integrada de una sola placa (SBC). Estos módulos son fáciles de integrar en un producto. Esa ha sido mi solución para problemas similares. El consumo de energía es mayor que el STM32H7, pero el NXP i.MX6 SBC I que utilizo en un diseño proporciona una asombrosa cantidad de potencia de procesamiento para el consumo de energía de 2-3 vatios (para comparación, STCube32MX estima un consumo de 300 mW para el procesador STM32H7 a 400 MHz , No tengo cifras para todo el tablero).

Una complicación cuando se usan procesadores de alto rendimiento para dicho procesamiento es la sincronización de entrada a salida. Si su solución para el STM32H7 es usar DMA para SPI I / O, y mantener los canales de entrada y salida sincronizados, tenga en cuenta que (al menos en el STM32F7, con el que tengo cierta experiencia), el caché de datos del procesador Cortex-M7 debe tratarse, porque el controlador DMA pasa por alto la memoria caché del procesador. La solución más elegante es usar el procesador MPU para hacer que una pequeña sección de la memoria no se pueda almacenar en caché, y usarla para los búferes de E / S de DMA.

    
respondido por el D. Brown

Lea otras preguntas en las etiquetas