In einem Projekt, in dem wir STM32 als Mikrocontroller verwenden, müssen wir 512-Mbit-Daten aufzeichnen. Soweit ich weiß, werden NAND-Flash-ICs häufig in Flash-Speichern verwendet (von ISSI-, Panasonic-, Samsung-, Toshiba-Unternehmen). Aber sie sind sehr groß und brauchen viele Stifte. Stattdessen wollen wir einen Spi-Flash verwenden, der viel kleiner ist und 8 Pins benötigt. (von Winbond, Macronic, Micron ..) Zum Beispiel; Da das Gerät mit Batterie betrieben wird, ist es auch wichtig, wenig Strom zu haben . Können wir Spi-Flash in diesem Projekt verwenden? Gibt es ein Handicap zu verwenden?
Können wir Spi-Flash in diesem Projekt verwenden? Gibt es ein Handicap zu verwenden?
Kein Grund, warum es nicht funktionieren sollte. Stellen Sie sicher, dass Ihr Mikro einen SPI-Port hat, dass Sie die Pins zuordnen und richtig konfigurieren ...
Vergleichen Sie in Bezug auf die Leistung unbedingt die Leerlaufstromwerte aus verschiedenen Datenblättern.
Schalten Sie den Flash NICHT aus, während er schreibt oder wenn Sie denken, dass er fertig ist, aber nicht wirklich fertig ist. Dadurch werden Daten beschädigt. Verwenden Sie stattdessen den Deep-Power-Down-Befehl.
Es gibt wahrscheinlich eine optimale Datenblockgröße zum Schreiben in Bezug auf die Leistung. Ich meine, der Flash wird einige Zeit brauchen, um aufzuwachen, also macht es wahrscheinlich keinen Sinn, ihn aufzuwecken, um ein Byte zu schreiben und dann wieder zu schlafen. Sie müssen Daten im RAM puffern und dann schreiben, wenn genug verfügbar ist. Warum nicht den Gesamtenergieverbrauch pro geschriebenem Byte mit mehreren Chunk-Größen messen?
Außerdem neigen SPI-Flashes dazu, beim Schreiben langsam zu sein, stellen Sie also sicher, dass der Durchsatz angemessen ist.
NAND-Flash-IC wird in allen Flash-Speichern verwendet, die ich gesehen habe, warum billigerer und kleinerer SPI-Flash nicht verwendet wird
Die großen Chips haben Adresspins, was das zufällige Lesen ziemlich schnell macht. Bei einem SPI-Flash müssen Sie jedes Adressbit seriell eingeben, was das zufällige Lesen extrem langsam macht. Bei Burst-Lesevorgängen, bei denen Sie die Adresse einmal eingeben und eine erhebliche Datenmenge lesen, ist SPI-Flash in Ordnung. Sie werden oft zum Speichern von Firmware verwendet, die beim Booten einmal gelesen und dann in das SRAM übertragen wird. In diesem Fall spielt die wahlfreie Zugriffsgeschwindigkeit keine Rolle. Aber wenn Sie Code direkt von einem Flash aus ausführen möchten, ist dies von Bedeutung, und ein großer Chip mit Adresspins ist viel schneller. Einige Mikros sind in der Lage, Code von Quad-SPI-Flash auszuführen, sie verwenden einen kleinen SRAM als Cache, es kann nützlich sein, aber es gibt immer noch einen Geschwindigkeitsnachteil.
Ziehen Sie auch die Verwendung einer MicroSD-Karte in Betracht: Wenn Sie sie mit dem üblichen FAT32-Dateisystem beschreiben, kann sie direkt von einem Computer gelesen werden, und Sie müssen nicht den gesamten Code zum Lesen und Übertragen der Daten von Ihrem Datenlogger in eine programmieren PC. Verwenden Sie einfach einen Kartenleser.
Markus Müller
Mattman944
Berker Işık
Berker Işık
Chris Stratton
Berker Işık
Bobflux