Ich entwickle eine Messanwendung mit dem TI MSP430 und würde gerne einige Vorschläge hören, welche Art von Speicher ich verwenden kann.
Die Idee ist, es für die Protokollierung während einer bestimmten Zeit zu verwenden und die Daten dann auf einen PC herunterzuladen, wenn das Gerät über USB angeschlossen ist. Die Schätzung besteht darin, bis zu 5 MB Daten zu speichern, wobei jede Stichprobe etwa 25 Datenbytes umfasst.
Würde ein einfacher EEPROM-Chip funktionieren oder gibt es da draußen etwas Besseres?
Antworten:
Ich habe die seriellen Flash-Chips der AT45D- Serie verwendet. Sie haben einen internen SRAM-Puffer, um eine Seite zum Löschen / Programmieren einzurichten. SPI-Schnittstelle zum Ein- und Auslesen von Daten.
quelle
5 MByte sind viele zu speichernde Daten. Das Auslesen über USB bedeutet, dass Sie eines der neuen Teile mit integrierter USB-Geräteschnittstelle verwenden. Wenn nicht, verwenden Sie einen USB-Seriell-Konverter (FTDI oder ähnliches) und sind auf die asynchrone serielle Schnittstelle beschränkt Datenraten zum Auslesen der Daten.
Haben Sie darüber nachgedacht, eine SD-Speicherkarte an den MSP anzuschließen, die Daten darin zu speichern und die Karte dann zum Lesen der gespeicherten Daten auf den PC zu verschieben? Ich habe keine Schnittstelle zu diesem Gerät geschrieben, aber es gibt viele, die haben.
quelle
Serial Flash ist in dieser Anwendung dem EEPROM überlegen. Atmel macht eine großartige Aufstellung . Ihre Wahl hängt weitgehend von zwei Dingen ab: (1) Ihrer Notwendigkeit, Ihre Protokolle auf dem Mikro zu bearbeiten / zu sektorieren, und (2) Ihrer RAM-Verfügbarkeit auf dem MSP430.
Im Gegensatz zum EEPROM kann Flash nur von 1 auf 0 geschrieben werden. Um die Daten von 0 auf 1 zu ändern, muss ein Teil des Teils gelöscht werden, der normalerweise nur für Seiten oder Datenblöcke verfügbar ist. Sie müssen diese Seite in den Arbeitsspeicher puffern, die Seite löschen, Ihre Bearbeitung im Arbeitsspeicher vornehmen und sie dann zurückschreiben, wenn Sie etwas ändern möchten.
Die AT45D-Serie bietet, wie bereits erwähnt, eine Reihe von Teilen mit RAM-Puffern auf dem Chip, um diesen Prozess zu vereinfachen, ohne RAM auf dem Mikrocontroller zu verwenden.
Am Ende ist die gesamte Serie Pin-kompatibel. Stellen Sie also einfach eine Grundfläche von 8 SOIC (150 mil) auf, und Sie können die Teile austauschen, wenn Sie später andere Optionen benötigen.
quelle
Ich würde die AT25D-Serie empfehlen, da sie etwas einfacher zu bedienen ist als die AT45D. Obwohl es etwas langsamer ist und nicht so viele Datenübertragungsoptionen oder die SRAM-Puffer bietet. Es hat den Vorteil, dass es kostengünstiger ist und für die meisten Anwendungen wie die Datenprotokollierung immer noch schnell genug ist.
Wenn Sie 5 MB Daten benötigen, ist es unwahrscheinlich, dass ein EEPROM funktioniert, da diese normalerweise in Paketen mit <1 MBit enthalten sind. Flash-Chips von Atmel unterstützen bis zu 64 MBit oder 8 MB.
quelle
[Dies ist eine Antwort auf die Kommentare nach Ians Antwort].
Eine SD-Karte ist nur ein SPI-Gerät, daher ist kein Chip / keine Schnittstelle erforderlich. Andere Protokolle umfassen eine 2-Draht-Schnittstelle (wie I2C) und eine 4-Draht-Schnittstelle (mit einer komplexen CRC), aber SPI wird am häufigsten verwendet.
Für den MSP430 von TI ist hier ein Anwendungshinweis für SD-Karten erhältlich . Es ist kurz, enthält aber Beispielcode. Es übernimmt das Lesen und Schreiben in verschiedenen Bereichen der SD-Karte. Dies ist möglicherweise alles, was Sie möchten, wenn Sie es nicht an einen PC anschließen. Schauen Sie sich auch diese Implementierungen von Foust (empfohlen) oder Evans von MSU an.
Sobald Sie über die Grundfunktionen zum Lesen und Schreiben eines Sektors verfügen, können Sie entweder ein einfaches, benutzerdefiniertes Dateisystem über USB abstrahieren oder eine vorhandene Dateisystembibliothek verwenden. FatFS , EFSL oder DOSFs sind alle Optionen für letztere. Wenn die Implementierung aller erforderlichen Funktionen zu schwierig erscheint, denken Sie daran, dass alle bis auf einige Stubs sein können / werden.
Das Dateisystem wird jedoch bis zu einem gewissen Grad über Ihre USB-Schnittstelle abstrahiert. Dies ist einfacher, wenn Sie über eine echte Dateisystembibliothek verfügen und sich Ihre Karte in einem lesbaren Dateisystem befindet. Dies erfordert jedoch Arbeit. Wenn Sie Ihr eigenes "Dateisystem" schreiben und Arbeit / Zeit / Speicher für die USB-Implementierung sparen möchten, können Sie die Definition so einfach und unflexibel gestalten, dass Protokoll 1 bei 0x0 beginnt, Protokoll 2 bei 0x10 0000 beginnt, Protokoll 3 bei 0x20 0000 und log 4 um 0x30 0000. Dann können Sie diese Daten über USB senden.
Die USB-Schnittstelle kann so komplex sein, wie Sie es möchten - von der seriellen Schnittstelle bis zum Massenspeichergerät.
quelle