Forum: Mikrocontroller und Digitale Elektronik STM32F4 FSMC


von BastiDerBastler (Gast)


Lesenswert?

Hallo mal wieder ;)

Also, ich fand es eine lustige Idee, meinen FPGA einmal per FSMC in den 
Adressbereich des µC zu mappen.
Sodann habe ich die Dokumentation des FSMC studiert und muss mich gerade 
dennoch fragen:
Die SRAM/PSRAM/NOR-Bank unterstützt kein Daten/Adress-Multiplexing 
richtig? Ich habe hier etwas den Überblick verloren, welche Controller 
das überhaupt unterstützen und ob das entsprechende Protokoll auf dem 
FPGA mal so schnell implementiert werden kann.
SRAM schien mir auf jeden Fall schön einfach zu sein, nur gibts da 
scheinbar kein Multiplexing und ehrlich gesagt konnte ich der 
Dokumentation auch nicht entnehmen, ob das 8Bit-Datenbusse unterstützt 
(hoffe ich jetzt einfach mal). Mit dem Timing wäre man ja zumindest 
ziemlich flexibel, sodass man auf der FPGA-Seite in Asynch-Modus die 
Flankenerkennung auch etwas stabilisieren kann usw..
Aber ich würde für den Anfang irgendwie gerne mit max(Adressbits, 8) 
Leitungen + Control-Signale auskommen... Gibts da einen Modus, der das 
kann, den ich in meinem Kirren Kopf gerade einfach nicht mehr sehe?

Viele Grüße!

von Detlef K. (adenin)


Lesenswert?

Doch, der kann Multiplexing.
Im Referenzmanual (Version7) Kapitel 36.5 "NOR Flash/PSRAM controller"

von BastiDerBastler (Gast)


Lesenswert?

Stimmt, ich hatte das Pseudo-SRAM aktiv überlesen, für das explizit 
Multiplexing angegeben wird.
Überhaupt glaube ich aber, dass sich die Funktionalität nicht auf die 
Ram-Art in dem Block bezieht, kann das sein? Also ich könnte mit jedem 
eingestellten Ram-Typ (SRAM, PSRAM, NOR) multiplexen?
Habe jetzt schon die 16 Datenleitungen für Adresse+Daten angelötet, da 
mir 256 Byte Adressraum zuwenig war... hoffentlich war das nicht für die 
Katz :D


Was mich an der STM-Bibliothek etwas verwundert ist, warum die 
Initialisierungs-Routine für den SRAM-Controller die einzelnen Werte 
ALLE jeweils in uint32s in der Struktur hat. Dabei sollte doch laut Doku 
alles eigentlich doch nur in 2 32-Bit-Register, oder nicht? Habe das 
Gefühl, dass selber Ver-Odern und Shiften zu einer Konstante da 
angenehmer ist, als die Routine zu verwenden... Hätte wirklich gedacht, 
die nehmen da ein Bitset, das direkt auf den Register gemapped wird...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.