Ich benötige für mein Projekt (in Planungsphase) schnellen, nichtflüchtigen Speicher. Sind NAND-Flash ICs schneller zu betreiben als schnelle (µ)SD-Karten, oder sollte ich einfach Karten verwenden? Benötigt man für ICs zwingend einen Controller, oder kann das auch ein µC oder ein FPGA übernehmen? Welche NAND-Flash ICs mit 4-16 GByte sind überhaupt in kleinen Stückzahlen zu bekommen? (Octopart liefert Hunderte ICs, welche nicht erhältlich sind.)
Rohe NANDs richtig zu betreiben verlangt nen Riesenaufwand (insb. auf der Softwareseite - wear leveling, scrambling, etc.). Schau mal nach eMMC - die haben, wie SD-Karten, nen eingebauten Controller der den Low-Level-Kram erledigt.
Es gibt sehr schnelle SD-Karten, aber man muss auch ordentlich auf sie zugreifen können. Ich verwende bei den Atmegas das Dateisystem von ElmChan, das ist zwar nicht schnell, aber es reicht für mich. Ich will jetzt an einem STM32 eine SD-Karte hängen, da wird es bestimmt schon vorgefertigte Bibliotheken geben. Solch eine SD-Karte mit Sockel ist in der Regel billiger als ein zusätzlicher Controller und ein Flash-IC. SLC-Flash ist langlebiger (100k mal beschreibbar) Ein Bit pro Speicherzelle. MLC-Flash ist nicht so langlebig weil dort getrickst wird um zwei Bit in einer Speicherzelle zu speichern. (10k mal beschreibbar) TLC-Flash ist noch weniger langlebig, scheinbar verlieren die Speicherzellen mit der Zeit den eingeprägten Widerstand und dadurch werden die 3 Bit die in einer Zelle gespeichert worden sind falsch erkannt. Der Controller muss also ab und zu prüfen ob noch alles im Lot ist und wenn nicht, dann wird die Zelle eben noch mal neu geschrieben. (1k mal beschreibbar, 3 Bit pro Speicherzelle) Ganz ehrlich, nimm eine SD-Karte + schnelle Lib und gut ist's. Ich nutze wohl diese Vorlage hier: http://blacbird.de/tutorial-stm32-cubemx-sdio Aussagen über erreichbare Geschwindigkeiten: https://community.st.com/thread/30654
Danke für die Hinweise. Das Petit FatFS habe ich schon benutzt, aber hier möchte ich wahrscheinlich low-level auf einzelne Bytes zugreifen. Eine SD-Karte sehe ich gefühlt als langsam an, obwohl natürlich auch DDRx nur gesteckt ist. Aber man sieht im Handel ja nicht, was in der Karte drin steckt. Ob die Class-Angabe so hilfreich ist? Und ja, ein Controller zu ICs wäre hilfreich. Ich dachte, das gibt's vielleicht schon als Core für FPGAs oder sogar für µC?! Was meinst Du mit eMMC? Die MMC-Karten? Haben die einen Vorteil gegenüber SD-Karten? Eine schnelle Suche hat nur Blackfin-Prozessoren(?) mit eingebautem eMMC/SD-Controller zutage gebracht ...
LarsB schrieb: > Was meinst Du mit eMMC? Die MMC-Karten? Haben die einen Vorteil > gegenüber SD-Karten? eMMC ist SD-Karte zum Einlöten: http://www.samsung.com/semiconductor/global/file/media/Samsung_eMMC_2013-0.pdf Im Gegensatz zu den Plastikdingern mit Fassung gibt es eMMC auch in Industeriequalität mit bekannten, dokumentierten und teilweise sogar garantierten technischen Daten.
soul e. schrieb: > Im Gegensatz zu den Plastikdingern mit Fassung gibt es eMMC auch in > Industeriequalität mit bekannten, dokumentierten und teilweise sogar > garantierten technischen Daten. Leider ist aber der alternative SPI Mode aus dem Standard geflogen, so dass man zwingend einen eMMC/SD Controller im µC braucht. Wenn ich ansonsten nur einen Standard-µC brauche, könnte eine µSD per SPI angebunden die bessere Lösung sein. YMMV, insbesondere da ich keine konkreten Anforderungen sehe. LarsB schrieb: > Aber man sieht im Handel ja nicht, was in der > Karte drin steckt. Ob die Class-Angabe so hilfreich ist? Bei SPI Betrieb ist die Class Angabe nicht hilfreich (da immer nur 25 MHz max). Ich hatte schon Karten (µSDHC), die trotz "Class" (4 oder 6 IIRC) sich eine ganze Sekunde Denkpause beim Schreiben gegönnt haben. Das waren aber Billigheimer vom Supermarkt - empfehlen würde ich eher originale Samsung oder Sandisk.
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.