Für ein Projekt benötige ich einen externen Speicher. Ich habe mich für 1 MB SRAM entschieden.

Ich verwende einen STM32 und habe den FSMC entdeckt. Es fiel mir schwer, den Zweck zu verstehen.

Was ich darüber las, führte mich zu der Tatsache, dass Sie durch die Verwendung einen direkten Speicherort erhalten. So können Sie in den Speicher schreiben, ohne die spezifischen Pins (wie CE, OE, WE …) steuern zu müssen. Sie können auch in SRAM schreiben / lesen, ohne GPIO-Schreibregister verwenden zu müssen, sodass Sie viel schneller sind. (Natürlich gibt es viel mehr Vorteile). Wenn ich Recht habe, ist es meiner Meinung nach eine sehr gute Idee, es zu verwenden.

Habe ich Recht, so zu denken? Habe ich es völlig falsch verstanden?

Kommentare

  • Was haben Sie gelesen? Haben Sie das dedizierte Dokument gelesen?
  • Schneller? Nein ..
  • Ob der FSMC einen Vorteil bietet, hängt von dem von Ihnen verwendeten STM32 ab. Zum Beispiel würde er für keines der Wertlinienprodukte (M2-basiert) verwendet, aber er würde einen hohen Wert liefern Leistungszeile mit dem AHB-Bus. Sie geben keine Details zu Ihrer Konfiguration an, sodass es ' unmöglich ist, Ihnen zu helfen.
  • @JackCreasey " M2-basiert "? Ich ' bin nicht sicher, was Sie ' sind Ich beziehe mich hier auf den Cortex-M2. Alle STM32-Mikrocontroller verfügen über einen AHB, aber nicht alle unterstützen FSMC.
  • @duskwuff Sorry ..typo … bedeutete M3-basiert.

Antwort

Habe ich Recht, so zu denken? Habe ich es völlig falsch verstanden?

FSMC kann zum Speichern von Daten in einer flüchtigen Konfiguration verwendet werden. Einige (nicht alle) STM32 haben FSMC einem Adressraum zugeordnet (bei 0x60000000). Die Verwendung eines seriellen SRAM eignet sich am besten zum Speichern von Daten, auf die Sie keinen schnellen Zugriff benötigen. Wenn Sie es für Werte verwenden, die bei der Ausführung häufig vorkommen, kann dies Ihr Programm erheblich verlangsamen.

Sie müssen die Pins noch für die Verwendung mit FSMC konfigurieren, den Kopf um die Schnittstelle wickeln und testen.

Kommentare

  • Hi @ Laptop2d Sicher, ich möchte nur Daten von einer Kamera speichern, damit ich sie später und für einige Bilder verarbeiten kann für eine TFT-Anzeige. Ich habe verstanden, dass der FSMC einen Speicherplatz bereitstellt, so dass er sich wie das Schreiben in den internen MCU-RAM auf der Programmierseite verhält. Wenn ich es richtig verstehe, ist es für die MCU viel schneller, wenn der FSMC alle Pins in der Hardware automatisch steuert, als wenn er versucht, alle Befehlspins manuell zu steuern, oder? Übrigens ' m unter Verwendung einer STM32L496ZG-MCU und dieses SRAM: cypress.com/file/43811/download
  • Sie könnten es wie ein Rom verwenden und darauf zählen, dass es langsam ist, aber es wäre im Adressraum und flüchtig. Das heißt, wenn Sie es für eine TFT-Anzeige verwenden und das Bild häufig abrufen müssen, haben Sie jedes Mal eine Verzögerung, wenn Sie das Bild abrufen. FMSC ist möglicherweise etwas schneller, aber immer noch viel langsamer als RAM, da die Daten seriell gesendet werden. meta.stackexchange.com/questions/126180/…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.