Pentru un proiect, trebuie să am niște memorie externă. Am ales 1 MB de SRAM.
Folosesc un STM32 și am descoperit FSMC. Mi-a fost greu să înțeleg scopul acestui lucru.
Ceea ce am citit despre asta m-a condus la faptul că, folosindu-l, vă oferă o locație de memorie directă. Deci, puteți scrie în memorie fără a fi nevoie să pilotați pinii specifici (cum ar fi CE, OE, WE …). De asemenea, vă permite să scrieți / citiți pe SRAM fără a fi nevoie să utilizați registre de scriere GPIO, deci sunteți mult mai rapid. (desigur, există mult mai multe avantaje). Dacă am dreptate, cred că este o idee foarte bună să-l folosesc.
Am dreptate să gândesc așa? Am greșit complet?
Comentarii
- Ce ați citit? Ați citit documentul dedicat ?
- Mai rapid? Nu ..
- Dacă FSMC furnizează vreun avantaj depinde de STM32 pe care îl utilizați. De exemplu, acesta nu ar fi folosit pentru niciunul dintre produsele din linia valorică (bazat pe M2), dar ar oferi valoare la nivel înalt linie de performanță cu magistrala AHB. Nu furnizați detalii despre configurația dvs., astfel încât ' este imposibil să vă ajute.
- @JackCreasey " M2 bazat pe "? ' Nu sunt sigur ce ' Ne referim aici; nu există Cortex-M2. Toate microcontrolerele STM32 au un AHB, dar nu toate acceptă FSMC.
- @duskwuff Ne pare rău .. tip … înseamnă bazat pe M3.
Răspuns
Am dreptate să gândesc așa? Am greșit complet?
FSMC poate fi utilizat pentru stocarea datelor într-o configurație volatilă. Unele (nu toate) STM32 „au FSMC mapate la un spațiu de adrese (la 0x60000000). Folosirea unui SRAM serial este cea mai bună pentru stocarea datelor la care nu aveți nevoie de acces rapid. Dacă îl utilizați pentru valori care sunt obișnuite în execuție, programul dvs. poate încetini considerabil.
Încă trebuie să configurați pinii pentru utilizare cu FSMC și să înfășurați capul în jurul interfeței și să îl testați.
Comentarii
- Bună @ laptop2d Sigur, vreau doar să folosesc pentru a stoca date de pe o cameră, astfel încât să le pot procesa mai târziu și pentru unele imagini pentru un afișaj TFT. Am înțeles că FSMC oferă o locație de memorie, așa că se comportă ca și cum se scrie pe RAM-ul MCU intern pe partea de programare. Dacă îl înțeleg corect, lăsarea FSMC să controleze automat toate pinii din hardware este mult mai rapidă pentru MCU decât încercarea de a pilota manual fiecare pin de comandă nu? Btw i ' m folosind un MCU STM32L496ZG și acest SRAM: cypress.com/file/43811/download
- Puteți să-l folosiți ca un rom și să vă bazați pe faptul că este lent, dar ar fi în spațiul de adrese și volatil. Asta înseamnă că, dacă ar fi să-l utilizați pentru un afișaj TFT și ar trebui să preluați imaginea des, ați avea o întârziere de fiecare dată când ați preluat imaginea. FMSC ar putea fi puțin mai rapid, dar totuși mult mai lent decât memoria RAM, deoarece datele sunt trimise în serie. meta.stackexchange.com/questions/126180/…