Voor een project heb ik extern geheugen nodig. Ik ging voor 1 MB SRAM.

Ik gebruik een STM32 en ik heb de FSMC ontdekt. Ik vond het moeilijk om het doel hiervan te begrijpen.

Wat ik erover las, leidde me tot het feit dat het je door het te gebruiken een directe geheugenlocatie geeft. U kunt dus naar het geheugen schrijven zonder dat u de specifieke pinnen hoeft te besturen (zoals CE, OE, WE …). Het stelt je ook in staat om naar SRAM te schrijven / lezen zonder GPIO-schrijfregisters te gebruiken, dus je bent veel sneller. (er zijn natuurlijk veel meer voordelen). Als ik gelijk heb, denk ik dat het een heel goed idee is om het te gebruiken.

Heb ik gelijk als ik zo denk? Heb ik het helemaal verkeerd begrepen?

Opmerkingen

  • Wat heb je gelezen? Heb je het speciale document gelezen?
  • Sneller? Nee ..
  • Of de FSMC enig voordeel oplevert, hangt af van de STM32 die u gebruikt. Het zou bijvoorbeeld niet worden gebruikt op een van de waardelijnproducten (op basis van M2), maar het zou waarde opleveren voor de hoge prestatielijn met de AHB-bus. U geeft geen details van uw configuratie, zodat het ' onmogelijk is om u te helpen.
  • @JackCreasey " M2 gebaseerd "? Ik ' m niet zeker wat je ' verwijzend naar hier; er bestaat niet zoiets als de Cortex-M2. Alle STM32 microcontrollers hebben een AHB, maar niet alle ondersteunen FSMC.
  • @duskwuff Sorry .. typo … betekende op M3 gebaseerd.

Antwoord

Heb ik gelijk als ik zo denk? Had ik het helemaal verkeerd?

FSMC kan worden gebruikt voor het opslaan van gegevens in een vluchtige configuratie. Sommige (niet alle) STM32 s hebben FSMC toegewezen aan een adresruimte (op 0x60000000). Het gebruik van een seriële SRAM is het beste voor het opslaan van gegevens waartoe je geen snelle toegang nodig hebt. Als je het gebruikt voor waarden die veel voorkomen bij de uitvoering, kan het je programma aanzienlijk vertragen.

Je moet nog steeds de pinnen configureren voor gebruik met FSMC en je hoofd om de interface wikkelen en het testen.

Opmerkingen

  • Hallo @ laptop2d Natuurlijk, ik wil alleen gegevens van een camera opslaan zodat ik deze later kan verwerken, en voor sommige afbeeldingen voor een TFT-scherm. Ik begreep dat de FSMC een geheugenlocatie biedt, zodat het zich gedraagt als schrijven naar het interne MCU RAM aan de programmeerzijde. Als ik het goed begrijp, is het veel sneller voor de MCU om de FSMC alle pinnen automatisch in de hardware te laten besturen dan om elke commandopin handmatig te besturen, toch? Btw i ' m met behulp van een STM32L496ZG MCU en deze SRAM: cypress.com/file/43811/download
  • Je zou het kunnen gebruiken als een rom en erop rekenen dat het traag is, maar het zou in de adresruimte zijn en vluchtig. Dat betekent dat als u het voor een TFT-scherm zou gebruiken en u de afbeelding vaak zou moeten ophalen, u elke keer dat u de afbeelding ophaalde een vertraging zou hebben. FMSC is misschien iets sneller, maar nog steeds veel langzamer dan RAM, aangezien de gegevens serieel worden verzonden. meta.stackexchange.com/questions/126180/…

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *