Para un proyecto, necesito tener algo de memoria externa. Fui por 1 MB de SRAM.

Estoy usando un STM32 y descubrí el FSMC. Me costó entender el propósito de esto.

Lo que leí sobre él me llevó al hecho de que al usarlo, te da una ubicación de memoria directa. Por lo que puede escribir en la memoria sin tener que pilotar los pines específicos (como CE, OE, WE …). También le permite escribir / leer en SRAM sin tener que usar registros de escritura GPIO, por lo que es mucho más rápido. (por supuesto, hay muchas más ventajas). Si estoy en lo cierto, supongo que es una muy buena idea usarlo.

¿Estoy en lo cierto al pensar así? ¿Me equivoqué completamente?

Comentarios

  • ¿Qué leíste? ¿Leíste el documento dedicado ?
  • ¿Más rápido? No ..
  • Si el FSMC proporciona alguna ventaja depende del STM32 que esté utilizando. Por ejemplo, no se utilizaría en ninguno de los productos de la línea de valor (basado en M2) pero proporcionaría valor en el alto línea de rendimiento con el bus AHB. No proporcionas detalles de tu configuración, por lo que es ' imposible ayudarte.
  • @JackCreasey " " basado en M2? No ' no estoy seguro de lo que ' me refiero aquí; no existe el Cortex-M2. Todos los microcontroladores STM32 tienen un AHB, pero no todos son compatibles con FSMC.
  • @duskwuff Lo siento ..typo … significaba basado en M3.

Responder

¿Estoy en lo cierto al pensar así? ¿Lo entendí completamente mal?

FSMC se puede usar para almacenar datos en una configuración volátil. Algunos (no todos) STM32 tienen el FSMC asignado a un espacio de direcciones (en 0x60000000). El uso de una SRAM en serie es mejor para almacenar datos a los que no necesita un acceso rápido. Si lo usa para valores que son comunes en la ejecución, podría ralentizar su programa considerablemente.

Aún tiene que configurar los pines para usar con FSMC y comprender la interfaz y probarla.

Comentarios

  • Hola @ laptop2d Seguro, solo quiero usarlo para almacenar datos de una cámara para poder procesarlos más tarde y para algunas imágenes para una pantalla TFT. Entendí que el FSMC proporciona una ubicación de memoria para que se comporte como escribir en la RAM interna de la MCU en el lado de la programación. Si lo entiendo correctamente, dejar que la FSMC controle todos los pines automáticamente en el hardware es mucho más rápido para la MCU que intentar pilotar todos los pines de comando manualmente, ¿verdad? Por cierto, ' m usando una MCU STM32L496ZG y esta SRAM: cypress.com/file/43811/download
  • Podrías usarlo como una rom y contar con que será lento, pero estaría en el espacio de direcciones y sería volátil. Eso significa que si lo usara para una pantalla TFT y necesitara buscar la imagen con frecuencia, tendría un retraso cada vez que obtenga la imagen. FMSC puede ser un poco más rápido, pero aún mucho más lento que la RAM, ya que los datos se envían en serie. meta.stackexchange.com/questions/126180/…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *