STM32F4 FSMC ancho de datos de 8 bits con más de 10 bits de direccionamiento

2

Estoy planeando conectar un FPGA a un STM32F29 / 439 a través del FSMC (Flexible Static Memory Controller). Para guardar los pines, me gustaría usar la función de multiplexación de direcciones / datos. Por lo tanto, según la hoja de datos para el modo de 16 bits, he multiplexado las señales AD[1..16] y las líneas de control nADV , nWE , nOE y nEN .

Ahora solo necesito un ancho de datos de 8 bits, pero igual necesito direcciones anchas de al menos 10 bits, lo que lleva a señales multiplexadas AD[1...8] , bits de direcciones altas no multiplexadas A[9..10] más las líneas de control habituales. Dado que este caso asimétrico no se menciona explícitamente en la hoja de datos, pregunto si alguien puede compartir algo de experiencia.

Aclaración: estoy usando un STM32F429 pero en general esto se aplica a todos los STM32F4 con FSMC. Creo que la interfaz NOR-Flash sería la más apropiada, pero desafortunadamente la hoja de datos solo menciona el tamaño de los datos de memoria de 16 bits, aunque sin decir que el modo de 8 bits no está disponible para NOR Flash.

    
pregunta Arne

2 respuestas

1

A menos que alguien tenga una experiencia específica que esté dispuesta a compartir, entonces sospecho que tendrá que hacerlo solo (como un viejo técnico de electrónica con el que solía trabajar me gustaba decir) chuparlo y ver. / p>

He utilizado con éxito un FSMC de STM32F407 con buses de direcciones de 16 bits y datos de 16 bits independientes para interactuar con un Spartan-6. Ambas partes eran BGA, así que también cubrí mis bases conectando casi todas las líneas de control FSMC al FPGA. En esa línea, si tiene E / S de repuesto (y los pines FSMC no están ocupados de otra manera), sugeriría que lo conecte para permitir direcciones y buses de datos separados.

Una cosa que debería decir es que no me impresionó demasiado la velocidad cegadora; iirc (sin verificar realmente mi código STM32 para la configuración del FSMC) Puedo leer y escribir de manera confiable a aproximadamente 12MHz, en comparación con la velocidad de la CPU de 168MHz. Eso es mucho más rápido de lo que SPI hubiera sido, pero no está exactamente acoplado.

    
respondido por el markt
0

Creo que puedes usar con seguridad 10 pines para trabajar, AD0 ~ AD9. Luego puede configurar otros pines de datos / direcciones para GPIOs.

    
respondido por el diverger

Lea otras preguntas en las etiquetas