Forum: Mikrocontroller und Digitale Elektronik VDRIVE2 VNC1L bug


von Tycho B. (asellus)


Lesenswert?

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

von Dieter (Gast)


Lesenswert?

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

von Tycho B. (asellus)


Lesenswert?

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?

von dummy (Gast)


Lesenswert?

>wäre ich bloß bei der SD-Karte geblieben, oder gibt es dort auch Lags
>länger 150ms?

Ja, gibt es.

von Tycho B. (asellus)


Lesenswert?

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.

von Felix A. (madifaxle)


Lesenswert?

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
Noch kein Account? Hier anmelden.