Da um "Kommentare und Anregungen" in USB-Stick am Mikrocontroller gebeten wurde, möchte ich meine Erfahrung mit VDRIVE2 VNC1L Firmware: V03.69 16-Mar-2012 hier kurz festhalten. Ich betreibe das Modul über UART, 1Mbit/s Übertragungsrate, kontinuierlicher Datenstrom von 20kByte/s. 1. Ich habe das Modul anstelle eines SD-Kartenmoduls eingesetzt weil SD-Karte Lags von 30-60ms produzierte. In meinem naiven Verständnis dachte ich, dass VDRIVE2 die Daten zwischenspeichert und die Lags durch den internen Speicher kaschiert, so dass ich die Daten nicht so lange puffern muss. Mittlerweile habe ich die maximale Pufferung im ATmega1284P implementiert, Oszilloskopaufnahmen am Busy-Pin von VDRIVE2 zeigen jedoch Lags von bis zu 600ms, nicht oft, aber ab und zu. Damit ist der Speicher des Mikrocontrollers bei 20kByte/s nicht ausreichend. Der Versuch, das Leeren des Puffers zwischen zwei Aufnahmen im VDRIVE2 durch Schlafenlegen "SUD" zu erzwingen, reduzierte das Auftreten von Überläufen, beseitigte diese jedoch nicht vollständig. 2. Um die Lags zu reduzieren wird eine temporäre Datei "data.tmp" angelegt. Wenn Daten kommen, werden sie in dieser, bereits geöffneter Datei gespeichert. Beim Beenden des Datenstroms wird die Datei geschlossen, aufnahmespezifisch umbenannt (8.3), und eine neue "data.tmp" angelegt. Um den Stick zu entfernen wird die temporäre Datei geschlossen und gelöscht. -> Ich kann nur 255 Dateien speichern. Wird die 256te Datei "data.tmp" angelegt, so verschwinden 128 bereits gespeicherte Dateien, entweder die ersten 128 oder die letzten 128. Wenn ich am PC 255 Dateien *(nicht 8.3)* auf den Stick übertrage, so kann ich trotzdem weitere 255 Dateien (8.3) anlegen, die 256te Datei zerschießt nun zufällig Dateien auf dem Stick, so dass wieder nur 128 Dateien übrig sind. Wenn ich am PC 255 Dateien *(8.3)* auf den Stick übertrage, so zerschießt die Anlegung der "data.tmp" bereits gespeicherte Dateien. So verschwinden wieder die ersten 128 oder die letzten 128. Es wundert mich, dass ich keine Beschreibung dieses Verhaltens im Netz gefunden habe. Es drängt sich die Frage auf, ob es evtl. an mir liegt :) Hat jemand schon mal 256 Dateien mit VDRIVE2 auf einem Stick gespeichert? Gibt es gute, empfehlenswerte Alternativen? MfG
Tycho B. schrieb: > Hat jemand schon mal 256 Dateien mit VDRIVE2 auf einem Stick > gespeichert? Vermutlich schon, aber vielleicht nicht alle im selben Verzeichnis. Möglicherweise kannst Du auch verschiedene Verzeichnisse nutzen. Um Dein Problem aber richtig zu lösen, würde ich auf einen größeren Controller mit zusätlichem externem RAM als Puffer setzen. Dieter
hm, habe wirklich alle nur im Hauptverzeichnis angelegt. Dieter schrieb: > größeren > Controller mit zusätlichem externem RAM als Puffer befürchte ich auch:( wäre ich bloß bei der SD-Karte geblieben, oder gibt es dort auch Lags länger 150ms?
>wäre ich bloß bei der SD-Karte geblieben, oder gibt es dort auch Lags >länger 150ms? Ja, gibt es.
Schade. Ich habe schon den ATmega1284P, mehr internen Speicher geht nicht, zumindest unter den megaAVRs. Und für den externen Speicher muss eine Menge Pins bereitstellt werden, was in meinem Fall nicht möglich ist. Vielleicht ist es auch einfach an der Zeit sich mit den XMEGAs/UC3 zu beschäftigen.
Eventuell auch mit einem AT32UC3B. Die gibt es ab 44 Pins mit bis zu 96kB SRAM. Oder du nutzt einen FRAM per SPI. Z. B. den FM25W256: High Endurance: 100 Trillion (10^14) Read/Writes Hat 32kBytes. Gibt aber auch größere.
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.