www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ansteuerung NAND Flash


Autor: Stampede (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich habe mir einen 8GBit NAND Flash von Mircon (MT29F8G08AAA) geholt und 
an das PMP (Parallelinterface) meines PIC32 gehängt. Mircochip bietet 
auch einen Treiber an, mit dem man auf den Flash schreiben, lesen und 
einen Block löschen kann. Dabei ist ein Block 256kByte, eine Seite 
4kByte. Löschen ist nur blockweise möglich. Das Schreiben  Lesen  
Löschen funktioniert auch soweit, habe das mit einem Logicanalyzer 
nachvollzogen.

Jetzt zu meinem eigentlichen Problem. Ich würde den Flash gerne mit 
meinem FAT Dateisystem nutzen, und da ist ja bekanntlich alles auf 
512Byte großen Sektoren aufgebaut. Die meisten Dateisystem für 
Microcontroller lesen und schreiben immer nur einen Sektor von dem 
Datenträger, so auch das von mir wendendete Dateisystem.

Das Datenblatt das NAND Flash sagt nun folgendes bezüglich Schreiben:
Micron NAND Flash devices are inherently page-programmed devices. Pages 
must be programmed consecutively within a block, the from the least 
significant page address to the most significant page address (that is, 
0, 1, 2, …63). Random page address programming is prohibited.
Micron SLC NAND Flash devices support partial-page programming 
operations. This means that any single bit can only be programmed one 
time before an erase is required; however, the page can be partitioned 
such that a maximum of four programming operations are allowed before an 
erase is required.

Das bedeutet doch, dass ich immer 256kByte Blöcke (64 Blöcke x Pagesize) 
im RAM cachen müsste und die dann auf den Controller schreiben, sogar 
nur dann, wenn ich nur einen Sector verändern möchte. Sehe ich das 
richtig?
Leider hat mein Controller nur 128kB RAM...
Kennst sich da jemand mit aus oder hat sowas schon mal implementiert?

Gruß
Stampede

Autor: Stampede (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PUSH

Hat das denn noch nie jemand gemacht ?

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst einen Umsetzungslayer, der FAT-Cluster auf Flash-Pages 
mappt. Damit umgehst Du das Problem, dass Du nur ganze Blöcke löschen 
kannst und dass die FAT sehr oft geändert wird und die diese Blöcke 
daher sehr oft löschen müßtest, was (a) langsam und (b) fürs Flash nicht 
gut ist.

Du hast richtig erkannt, dass FAT nicht das passende Filesystem für 
Flash ist. Jetzt solltest Du auch tunlichst die Konsequenzen daraus 
ziehen.

fchk

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
YAFFS
JFFS2

sind so Flash File Systeme, die auf Wear Leveling (u.A.) Rücksicht 
nehmen.

Autor: Stampede (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die Antworten. Ich schaue mir das YAFFS mal genauer an, könnte 
für meine Anforderung passen. Die von Mircon angebotene Firmware ist ja 
leider kostenpflichtig, also keine wirkliche Alternative.

Gruß
Stampede

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.