RAM-Gerät, das in den microSD-Steckplatz eingesteckt wird?

Ich habe ein Paar kleiner batteriebetriebener, selbstprotokollierender 3-Achsen-Beschleunigungsmesser, die jeweils ein microSD-Flash-Gerät zur Speicherung verwenden (das GCDC X250-2 ). Leider puffern die Geräte microSD-Schreibvorgänge nicht, sodass die aufgezeichneten Daten häufig Lücken aufweisen.

Ich möchte ein tragbares Gerät finden/erstellen, das über ein Kabel verfügt, das in einen microSD-Steckplatz eingesteckt und mit einem großen RAM-Cache verbunden wird, damit Schreibvorgänge ohne Verzögerung fortgesetzt werden können. Idealerweise würde dieses Gerät auf eine SD-Karte oder einen anderen permanenten Speicher spulen.

Es gibt viele Mikrocontroller, die mit dem SPI-Bus kommunizieren, eine SD-Karte simulieren und Daten in den Arbeitsspeicher schreiben können. Es soll auch möglich sein, einen kleinen Linux-PC dafür zu programmieren und quasi eine SD-Karte zu emulieren. Das Problem besteht darin, ein Kabel oder etwas zu finden, das in einen microSD-Steckplatz gesteckt werden kann!

Irgendwelche Ideen für ein komplettes System oder die Komponenten, die benötigt werden, um eines zu bauen?

Ich glaube nicht, dass Sie irgendetwas finden werden, das einfach eingesteckt werden kann, aber Sie können immer eine alte MicroSD hacken, das Innere herausreißen und einen flachen Leiter anbringen, um die Stifte herauszubrechen.
@jsolarski: Ich habe das versucht und es ruiniert. Ich würde gerne so etwas wie ein Flex finden, das an eine uSD-Schale geformt ist.
Obwohl ich diesen uSD Extender gefunden habe .
Und das für nur 5,71 $!
@BobC, dieser erste Link zum uSD-Extender sieht vielversprechend aus, außer dass er ein bisschen teuer ist, weil er nur ein schickes Breakout-Board ist. Der zweite ist für den Preis einen Versuch wert :)
@jsolarski: Die nächste Frage ist, was mit dem anderen Ende verbunden werden soll, um eine unterbrechungsfreie FAT-formatierte uSD-Karte zu emulieren.
@BobC - Wie wäre es mit diesem Sparkfun microSD-Sniffer ($10)? Da die derzeit gemountete SD-Karte für Sie nicht funktioniert, möchten Sie vielleicht einfach die Eagle-Dateien als Referenz für Ihr Gerät verwenden.
@BobC - Beim Lesen der Produktseite scheint zu behaupten, dass das Gerät die Daten im internen Flash puffert. In jedem Fall sollten Sie sich wahrscheinlich an den Hersteller wenden und das Fehlen reklamieren. Eine uSD-Karte sollte mehr als schnell genug schreiben, um die 512-Hz-Daten zu erfassen. Bei diesen Schreibgeschwindigkeiten gibt es keinen Grund für Lücken.
Der Hersteller kennt das Problem und kann es mit den verfügbaren Hardware-Ressourcen nicht beheben (es ist nur ein 8051, der wirklich schwer atmet). Alle Pausen scheinen auf a) FAT-Overhead und/oder b) Flash-Löschzyklen zurückzuführen zu sein. Ich möchte ein System erstellen, das KEINE PAUSEN hat und in einen microSD-Steckplatz eingesteckt wird. Derzeit: X250-2 --> microSD-Steckplatz --> microSD-Karte Ziel: X250-2 --> microSD-Steckplatz --> Verlängerungskabel --> SPI-Port am Mikrocontroller --> Mikrocontroller-RAM --> SDHC-Karte
Wenn Sie sich um alles kümmern, was mit dem Puffern der Schreibvorgänge zu tun hat, beenden Sie einfach den Job und bauen Sie Ihren eigenen Datenlogger. Es wird wahrscheinlich einfacher sein.

Antworten (4)

Das Produkt hat eine maximale Aktualisierungsrate von 512 Hz, was wirklich langsam ist. Ich verstehe, dass es einen Zeitstempel verwendet, drei Lesungen vornimmt, für die Übersetzung des FAT-Dateisystems puffert und alles im ASCII / CSV-Format schreibt, was nach viel klingt. Eine für kontinuierliches Schreiben konfigurierte SD-Karte sollte jedoch mindestens 2 Megabyte pro Sekunde verarbeiten können, und Karten der Klasse 10 können 10 Megabyte pro Sekunde verarbeiten. Bei 512 Hz liegt das Problem nicht an der SD-Karte.

In Ihrem Kommentar erwähnten Sie:

Der Hersteller kennt das Problem und kann es mit den verfügbaren Hardware-Ressourcen nicht beheben (es ist nur ein 8051, der wirklich schwer atmet). Alle Pausen scheinen auf a) FAT-Overhead und/oder b) Flash-Löschzyklen zurückzuführen zu sein.

Das Hinzufügen eines Puffers auf der SD-Karte wird dieses Problem nicht lösen. Der Engpass liegt vor der SD-Karte. Die FAQ des Herstellers lautet:

Ich habe einen alten Beschleunigungsmesser, kann ich die Firmware aktualisieren?

Ja. Bitte wenden Sie sich an unsere Verkaufsabteilung, um Anweisungen zur Rücksendung des Geräts an GCDC zu erhalten. Wir werden die Firmware aktualisieren und das Gerät umgehend zurücksenden.

Es sei denn, Sie haben mit ihnen ausgearbeitet, dass sie Ihnen ein Firmware-Paket schreiben, das keine Pufferung / FAT-Dateisystemübersetzung durchführt, und sich einvernehmlich auf ein Protokoll für einen schnelleren, lückenlosen Datenstrom geeinigt und ein RAM-Gerät hinzugefügt haben, das angeschlossen werden kann in einen SD-Steckplatz wird Ihr Problem nicht lösen.

Aber nur weil die Aufgabe ihren 8051 in die Knie zwingt, bedeutet das nicht, dass dies ein unlösbares Problem ist. Ein schnellerer, leistungsfähigerer, modernerer Mikrocontroller könnte den Datenstrom verarbeiten. Der integrierte RAM eines anständigen Mikros sollte ausreichen, um die Daten zu puffern. Die meisten kleinen Mikros laufen mit 20 MHz oder mehr, was wahrscheinlich ziemlich schnell ist, zumal sie Hardware-Peripheriegeräte haben, die die DMA-, SPI- und ADC-Aufgaben für Sie erledigen können. Natürlich gibt es andere Leute, die versucht haben, das gleiche Problem zu lösen - Sehen Sie sich diese SO-Frage zum Protokollieren von Daten mit 96 kB/s an.

Sie haben einige Möglichkeiten:

  • Bringen Sie einen leistungsstärkeren Mikrocontroller auf der vorhandenen Leiterplatte an und schreiben Sie eine Firmware, die die Aufgabe übernimmt. Wenn der 8051 nicht dazu in der Lage ist, ist es wahrscheinlich ein ATmega und ein Cortex-M3 sicherlich. Sie könnten das FAT-Dateisystem ignorieren und eine einfache Flatfile schreiben und einfach ein USB-Laufwerk mit dem Mikrocontroller emulieren.
  • Lassen Sie dies vom Originalhersteller erledigen. Ich sehe keine Erwähnung dieses Problems auf der Website, daher könnten sie wahrscheinlich motiviert sein, das Problem zu beheben. Sie haben alle Schaltpläne und Treiber bereits geschrieben, so dass sie dies wahrscheinlich ohne allzu große Probleme tun könnten.
  • Bau dein eigenes. Sie können eine so schnelle ununterbrochene Protokollierungsrate haben, wie Sie möchten, mit so viel Präzision, wie Sie möchten, mit so vielen Freiheitsgraden, wie Sie möchten – Sie müssen nur für das bezahlen, was Sie wollen. Der Himmel ist die Grenze für diese Art von Projekt (und die Budgets spiegeln dies wider). Sie werden für so viel Geld kein so schönes Paket bekommen, aber ich bin mir nicht sicher, was Ihre Anforderungen sind.
  • Kaufen Sie ein anderes. Es gibt viele Datenlogger, die schnellere serielle Streams ohne Lücken verarbeiten können, und viele Beschleunigungsmesser haben ebenso schnelle oder schnellere Aktualisierungsraten. Der Bereich von +/-250 g und +/-28 g bei diesem Exemplar ist jedoch ungewöhnlich.
Ich nutze hochmoderne Firmware (ich teste Vorabversionskandidaten) und fordere GCDC hart auf, mich in ihren Quellbaum zu lassen. Der 8051-Prozessor stammt von Silicon Labs, der leistungsstark ist, aber sehr wenig RAM hat. Leider handelt es sich um ein uBGA-Gehäuse, das meine Lötmöglichkeiten zu Hause weit übersteigt. Diese Arbeit ist für ein Hobbyprojekt gedacht, das möglicherweise Einnahmen bringt, aber derzeit über ein begrenztes Budget verfügt, sodass keine neue Hardware geplant ist.

Es gibt mehr Beschleunigungsmesser + SD-Kartenfische im Meer:

Wenn Ihres nicht richtig funktioniert, erhalten Sie Ihr Geld zurück.

Das heißt, die SD sollte Schreibvorgänge puffern. Es hört sich so an, als würde ihre FAT-Bibliothek die Datei nach jedem Schreibvorgang leeren. Es wäre interessant zu beheben, ob sie Ihnen den Quellcode ihrer Firmware zur Verfügung stellen. Andernfalls fangen Sie bei Null an und sind auch mit Ihrer eigenen Hardware besser dran.

Eine Option besteht darin, den Stecker einfach abzulöten und stattdessen Drähte hinzuzufügen. Sie können es direkt mit einer anderen Platine verdrahten oder durch eine andere Platine gehen, die sowohl den Anschluss als auch die Anschlüsse hat, an die Sie den Puffer anschließen können.

Ich würde vorschlagen, einen MSP430 ** zu verwenden, um die Pufferung durchzuführen. Verwenden Sie so etwas , um das uC zu verbinden. Je nachdem, wie Sie den Puffer in der Software implementieren, kann dieser Artikel hilfreich sein.

**persönliche Präferenz, aber jeder Mikrocontroller könnte funktionieren.