Estoy buscando diseñar una placa personalizada basada en Microchip / ATMEL SAM S70 o STM32F7 / STM32H7. El SAMS S70 parece ser la opción más barata y ofrece aproximadamente lo mismo que los competidores ST.
Ahora estoy tratando de averiguar cuánta SDRAM puedo conectar a estas MCU.
La hoja de datos del S70 no especifica qué tipo de SDRAM (DDR2, DDR3), etc. puede manejar. ¿Cómo sé qué chips de memoria son compatibles?
Navegando a través de Digitec, noté que casi todos (?) Los chips de memoria 1G tienen 8 bancos, que es más de lo que puede manejar el SAM S70 (4 bancos como máximo). Y todos los chips que encontré que ofrecen 1G en 4 bancos son solo DDR1. ¿La cantidad de datos por banco está limitada de alguna manera?
Tampoco estoy seguro de cuántos datos puede direccionar el controlador de memoria en el SAMS S70 por banco (direcciones de fila/columna) y en total. Si leo la hoja de datos correctamente, la dirección más grande es 13 bits de dirección de fila, 11 bits de dirección de columna + 1 bit de compensación de bytes + 2 bits de dirección de banco, es decir, 27 bits de dirección en total... eso sería 1/8 de 1G, es decir, 128M?
¿Dónde juega el tamaño de la página en esto?
Sé que estas son muchas preguntas, pero estoy bastante abrumado por la cantidad de configuraciones de memoria y la información limitada en las hojas de datos no ayuda.
El tipo de memoria que necesita es SDRAM . No es lo mismo que DDR SDRAM. No creo haber visto un dispositivo Cortex-M que admita memoria DDR todavía. Por lo general, optaría por la familia Cortex-A, si necesita ese tipo de capacidad.
Puede encontrar fácilmente chips SDRAM en digikey o en cualquier otro sitio de distribución.
En este punto, el resto de tu pregunta probablemente sea irrelevante, pero déjame darte algunos puntos extra.
Ambos chips admiten 256 MB de RAM. Si observa el enlace digikey anterior, la mayor cantidad en un solo chip es de 512 Mbits (64 MBytes). Aquí es donde entra en juego el ancho del bus de datos. Puede ver que los chips de 512 Mb vienen en tres configuraciones:
Una forma de aumentar la capacidad de la memoria sería usar dos dispositivos de 512 Mb en una configuración de 32 M x 16 bits y conectarlos como se muestra en esta nota de la aplicación Atmel , para un total de 128 MB de RAM:
La hoja de datos dice en la primera página:
Controlador de memoria estática (SMC) de 16 bits compatible con SRAM, PSRAM, módulo LCD, NOR y NAND Flash con codificación sobre la marcha
̶ Controlador SDRAM de 16 bits (SDRAMC) con interfaz de hasta 256 MB y codificación sobre la marcha"
Solo para mencionar: SAM S70 solo admite un ancho de bus de 16 bits (externo). Prefiero MCU STM que también permiten 32 bits. Es importante para el rendimiento: si permite obtener código o usa 32 bits (int, float) o incluso palabras dobles (64 bits), obtiene solo la mitad del rendimiento potencial. Depende para qué y con qué frecuencia usa la memoria externa (¿datos temporales o datos principales y código allí?). Compruebe también si esta MCU proporciona cachés, por ejemplo, ¿es un Cortex-M4/M7 con cachés? Si es así, configure la MPU correctamente para hacer uso de ella. Prefiero MCU con caché, además de ITCM y DTCM, por ejemplo, STM32F7 para sistemas integrados de alto rendimiento. La memoria externa la uso a menudo solo como disco RAM o para búferes temporales, no como memoria principal.
Por cierto: también puede verificar si el uso de SDIO (tarjeta SD) también podría ser suficiente. Puedes tener GB de espacio allí. Incluso a menudo se admiten recuperaciones de código, es incluso más lento (por ejemplo, bus de 4 bits). Pero mucho más fácil de conectar y crear una PCB con ranura para tarjeta SD (o chip eMMC soldado).
O: ¿qué pasa con los chips de memoria SPI, por ejemplo, FRAM?
Por cierto: una memoria DDR real (que a menudo solo se encuentra en los procesadores de aplicaciones Cortex-A, como LP-DDR2 o DDR3) es muy difícil de diseñar como PCB: necesitan longitud de seguimiento coincidente en todas las líneas, coincidencia de impedancia, también una terminación en el fin. No es un diseño fácil como con Static-(S)RAM o Static-(S)DRAM.
EE_social