Per un progetto, ho bisogno di una memoria esterna. Ho scelto 1 MB di SRAM.

Sto usando un STM32 e ho scoperto FSMC. Ho avuto difficoltà a capire lo scopo di questo.

Quello che ho letto a riguardo mi ha portato al fatto che usandolo, ti dà una posizione di memoria diretta. Quindi puoi scrivere in memoria senza dover pilotare i pin specifici (come CE, OE, WE …). Ti consente anche di scrivere / leggere su SRAM senza dover utilizzare i registri di scrittura GPIO, quindi sei molto più veloce. (ovviamente, ci sono molti più vantaggi). Se ho ragione, immagino che sia una buona idea usarlo.

Ho ragione a pensarla così? Ho sbagliato completamente?

Commenti

  • Che cosa hai letto? Hai letto il documento dedicato ?
  • Più veloce? No ..
  • Se lFSMC fornisce un vantaggio dipende dallSTM32 che stai utilizzando. Ad esempio, non sarebbe utilizzabile su nessuno dei prodotti della linea di valore (basato su M2) ma fornirebbe valore sullalto linea di prestazioni con il bus AHB. Non fornisci dettagli sulla tua configurazione, quindi ' è impossibile aiutarti.
  • @JackCreasey " Basato su M2 "? ' non sono sicuro di cosa ' Mi riferisco a qui; non esiste un Cortex-M2. Tutti i microcontrollori STM32 hanno un AHB, ma non tutti supportano FSMC.
  • @duskwuff Spiacenti ..typo … significava M3.

Risposta

Ho ragione a pensarla così? Ho sbagliato completamente?

FSMC può essere utilizzato per memorizzare dati in una configurazione volatile. Alcuni (non tutti) gli STM32 hanno FSMC mappato su uno spazio di indirizzi (a 0x60000000). Usare una SRAM seriale è la cosa migliore per memorizzare dati a cui non è necessario un accesso veloce. Se lo usi per valori comuni in esecuzione, potresti rallentare notevolmente il tuo programma.

Devi ancora configurare i pin per luso con FSMC e avvolgere la testa intorno allinterfaccia e testarla.

Commenti

  • Ciao @ laptop2d Certo, voglio solo usarli per memorizzare i dati da una fotocamera in modo da poterli elaborare in seguito e per alcune immagini per un display TFT. Ho capito che lFSMC fornisce una posizione di memoria, quindi si comporta come la scrittura sulla RAM interna dellMCU sul lato della programmazione. Se lo ottengo correttamente, lasciare che lFSMC controlli automaticamente tutti i pin nellhardware è molto più veloce per lMCU che provare a pilotare manualmente tutti i pin di comando, giusto? A proposito, ' uso un MCU STM32L496ZG e questa SRAM: cypress.com/file/43811/download
  • Potresti usarlo come una rom e contare sul fatto che sia lento, ma sarebbe nello spazio degli indirizzi e volatile. Ciò significa che se dovessi usarlo per un display TFT e avessi bisogno di recuperare spesso limmagine, avresti un ritardo ogni volta che avresti recuperato limmagine. FMSC potrebbe essere un po più veloce, ma comunque molto più lento della RAM poiché i dati vengono inviati in modo seriale. meta.stackexchange.com/questions/126180/…

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *