ASF Composite Device nur teilweise trennen

Gast #2833116
Lesenswert?
• ▲
▼
Hallo

Ausgangssituation:
Mit dem Atmel Xplaind Board ist eine Art Datenlogger realisiert worden.
Der Xmega128a1 nimmt Daten über seine ADC's auf, speichert sie zwischen 
und schickt sie auf anfrage des At32uc3b an diesen weiter. Dieser 
schickt die Daten wiederum über USB an den PC weiter. Dabei ist der UT32 
am PC als USB Composite Device ,HID und Massenspeicher(angeschlossene SD 
Karte), angemeldet.
Die SD Karte ist über SPI am At32 angeschlossen.

Nun werden die vom Xmega geschickten Daten vom UT32 nicht nur an den PC 
weitergeleitet, sondern zusätzlich noch in eine Textdatei auf der SD 
Karte geschrieben . Dies ist mit dem Atmel Filesystem realisiert.

Allerdings treten dabei immer wieder Fehler auf, die nicht 
reproduzierbar sind und ich vermute die Ursache darin, das zwei 
Dateisystem gleichzeitig auf die SD Karte zugeifen.

Ist es möglich vor dem Schreiben der Daten durch den At32 nur den 
Massenspeicher Teil des Composit Devices zu trennen, um sicherzustellen, 
dass zu dieser Zeit nur das AtmelFileSystem zugreift? Der HID teil der 
Verbindung muss bestehen bleiben, damit die Daten auch weiterhin zum PC 
geschickt werden könne.

Gruß
Jochen
#2841058
Lesenswert?
• ▲
▼
> Ursache darin, das zwei
> Dateisystem gleichzeitig auf die SD Karte zugeifen

Gaaanz schlecht, denn der PC hat einen Cache für Daten der SD Karte. Er 
bekommt von Änderungen inbesondere der FAT also nix mit.

> Massenspeicher Teil des Composit Devices zu trennen

Es geht einfacher, wenn der Massenspeichr (USB Mass Storage) sich als 
"entfernbares Medium" - removable Media - ausgibt, also als "leeren" SD 
Schacht. Dann meldet man dem PC einfach dass kein Medium eingelegt ist, 
wenn das µC Logger Programm auf der SD schreibt. Bessere USB Mass 
Storage Implementationen bieten diese Möglichkeit an.

Man könnte die SD Karte für den PC auch als "Read Only" markieren, aber 
dann bekommt der PC die Änderungen u.U. nicht mit.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.