Ich würde gerne mal ein bischen mit USB Sticks rumspielen und wollte mir dazu erstmal einen ganz simplen Stick bauen. Mir ist klar, dass ich damit nicht billiger, schneller, besser, schöner, kleiner oder toller als normale Sticks werde, aber ich würde gerne ein paar Sachen ausprobieren. Zum Beispiel könnte man den Stick sowohl per USB, als auch per SPI zugänglich machen. Ich werde zwar am Anfang wahrscheinlich einfach eine SD-Karte als Speicher verwenden, aber ich würde später gerne auch mal alles aus einem Guß auf die Platine packen. Allerdings frage ich mich jetzt, wie ich diese großen Flashs am besten mit den Mikrocontroller verbinde. Ich wollte ursprünglich einen STM32F417 nehmen, aber der hat nativ nur Unterstützung für 512 MB NAND. Ausserdem muss ich ja auch alle Pages irgendwo speichern, wenn ich einen Block Erase mache. Das könnte ja durchaus 2 MB Platz brauchen. Würdet Ihr eher: - Einen Mikrocontroller nehmen, der nativ so große Flashs unterstützt (welcher?) - Ein FPGA oder CPLD zwischen den Mikrocontroller und Flash packen - Das ganze Interface einfach bitbangen (ist das schnell genug?) - Einen spezialisierten Chip zwischen Mikrocontroller und Flash setzen (welcher?) Oder habt ihr vielleicht noch andere Vorschläge?
Du müsstest eigentlich mit einem ganz normalen External Memory Interface auskommen. !CE, !WE und !RE sind die gleichen Signale wie bei einem SRAM auch, und ALE und CLE packst Du auf Adressleitungen. Dein NAND-Flash legegt also nur 4 Adressen, wobei ALE=1 & CLE=1 nicht zulässig ist. Damit kannst Du alle asynchronen Buszyklen, wie sie im ONFI-Standard (Open NAND Flash Interface Specification) beschrieben sind, ausführen. Die Zugriffe sind zwar etwas komplizierter, weil Du die Adressregister und das Befehlsregister selber beschreiben musst, aber es sollte gehen. Hier gibts die offiziellen Spezifikationen: http://www.onfi.org/specifications fchk
>Ich würde gerne mal ein bischen mit USB Sticks rumspielen und wollte mir >dazu erstmal einen ganz simplen Stick bauen. Schwurbelkram. >Ich werde zwar am Anfang wahrscheinlich einfach eine SD-Karte als >Speicher verwenden, Dann mach das. Wenn du damit fertig bist melde dich noch mal.
Verwirrter Anfänger schrieb: > STM32F417 nehmen, aber der hat nativ nur Unterstützung für 512 MB NAND. Das ist die Größe, die Du am Stück adressieren kannst. Aber Du wirst eh nur blockweise zugreifen wollen und dazu kann man alle anderen IO-Pins als zusätzliche Adreßleitungen verwenden. Und wenn das nicht reicht, macht mans eben mit IO-Expandern (74HC595). 1024 Adreßpins sind damit kein Problem, das sollte reichen. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.