Forum: Mikrocontroller und Digitale Elektronik USB Stick Analyse nach Fehler bei µC Nutzung


von Flöte (nsolo)


Lesenswert?

Guten Tag,

es kommt bei mit immer öfter vor, dass ein "normaler" USB Stick nach dem 
Betrieb an einem Renesas S5D9 unter Azure RTOS, zwar noch an einem PC 
(Win, Linux) funktioniert, aber nicht mehr am µC selbst.

(Und auch nicht an weiteren Eval-Boards / Mustern.)

Ich kann nicht wrklich herausfinden, was genau am USB Stick 
defekt/korrupt wird und bin auf der Suche dies zu analysieren, um dann 
auf die Ursache im µC schließen zu können.

Könnt ihr mir ein Tool nennen, das eine tiefgreifende USB Stick Analyse 
bietet?

Ich freue mich auf Rückmeldungen.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Koennen im Rebesas Programm unbehandelte Fehler im Filesystem vielleicht 
der Grund fuer die Probleme sein? Was sagt ein Filesystemcheck auf dem 
PC?

von Jens M. (schuchkleisser)


Lesenswert?

Schon mal versucht, ob es nach einer (vollständigen) Formatierung wieder 
geht?
Stick schon mal mit h2testw auf Fehler gecheckt?

von Peter (pittyj)


Lesenswert?

Wir haben hier so Protokoll Analysatoren. Die hängt man dazwischen, und 
die zeichnen die USB Kommunikation auf. Dann kann man auf USB-Block 
Ebene schauen.

Unter Windows und Linux kann man auch Wireshark dafür benutzen. Aber 
wohl nicht unter Azure.

von Frank K. (fchk)


Lesenswert?

Flöte schrieb:
> es kommt bei mit immer öfter vor, dass ein "normaler" USB Stick nach dem
> Betrieb an einem Renesas S5D9 unter Azure RTOS, zwar noch an einem PC
> (Win, Linux) funktioniert, aber nicht mehr am µC selbst.

Definiere "funktioniert"?

- Wird der Stick noch enumeriert?
- Siehst Du mit lsusb -v die korrekten Deskriptoren?
- Kannst Du rohe Datenblöcke lesen und schreiben?
- Ist das Dateisystem in Ordnung?
- Kannst Du einen "defekten" Stick formatieren, und funktioniert er dann 
wieder?

Ich vermute mal, dass der Stick hardwaretechnisch nicht beschädigt ist, 
sondern nur das Dateisystem von Deinem Azure RTOS beschädigt wird. Aber 
aus Deiner Beschreibung geht das nicht sicher hervor.

fchk

von Harald K. (kirnbichler)


Lesenswert?

Frank K. schrieb:
> Aber aus Deiner Beschreibung geht das nicht sicher hervor.

Präziser als "funktioniert nicht" kann man das Problem doch gar nicht 
beschreiben, oder?

/s

von Flöte (nsolo)


Lesenswert?

Hallo zusammen,

vielen Dank für die Rückmeldungen.
Während des Projekts bin ich immer mal wieder in Zustände gekommen, die 
auf ein Fehlerhaftes Dateisystem zurückzuführen waren. Z.B. wenn ich im 
Debugging rausgesprungen bin, bevor die Datei geschlossen wurde. hier 
war ziemlich klar, dass FAT korrupt war.

Nun kann ich mir aber keinen Reim drauf machen, woran es liegt, ich kann 
keine Ursache erahnen, noch merkt man am PC irgend einen Unterschied zu 
einem "funktionierenden" Stick.

Uwe B. schrieb:
> Filesystemcheck

und
Jens M. schrieb:
> h2testw

werde ich als nächstes ausprobieren.

Peter schrieb:
> Protokoll Analysatoren

Das wäre mir fast das liebste. Kann ich da auf Errorframe o.ä. triggern, 
dass ich auch im Langzeittest fehler identifizieren kann?

Ich habe zwar ein Oszi mit USB Funktion, mir fehlt aber der Tastkopf. Da 
ist ein USB Analyzer sicherlich die bequemere und günstigere Variante.
Welche Geräte sind zu Empfehlen? Teledyne-Lecroy?
https://www.mouser.de/ProductDetail/Teledyne-LeCroy/USB-MCST-M02-A

Vorerst werde ich den "defekten Stick" mal mit Wireshark und den anderen 
genannten Tools untersuchen. Im Anschluss dann formatieren, um einen 
machanischen Defekt auszuschließen, und erneut am µC testen.

Frank K. schrieb:
> Definiere "funktioniert"?
>
> - Wird der Stick noch enumeriert?
> - Siehst Du mit lsusb -v die korrekten Deskriptoren?
> - Kannst Du rohe Datenblöcke lesen und schreiben?
> - Ist das Dateisystem in Ordnung?
> - Kannst Du einen "defekten" Stick formatieren, und funktioniert er dann
> wieder?

Klingt alles nach Linux. Wie gesagt, am PC verhält sich der Stick 
unauffällig. Aber genau diese Tipps habe ich mir erhofft, dass ich 
überhaupt Analyse betreiben kann.

Harald K. schrieb:
> Präziser als "funktioniert nicht" kann man das Problem doch gar nicht
> beschreiben, oder?

Mehr kann ich auch nicht dazu sagen, da ich mangels Analyseerfahrung den 
Fehler nicht eingrenzen kann. Bevor ich mir die Analysechance vermassel, 
wollte ich erstmal bei den Profis fragen, wie man an die Sache 
herangeht.

von Sean G. (atmega318)


Lesenswert?

Ich würde mal (ja unter linux) mit dd ein Abbild eines nicht 
funktionierenden sticks auf einen neuen machen. Dann schauen, ob der 
neue auch nicht geht am uC.

Dann sicher mal als erstes mit fsck schauen ob etwas auffällig ist.
Wenn nein könntest du noch versuchen ein image eines korrupten sticks 
mit einem gleich benutzten aber nicht korrupten zu vergleichen (im 
hex-viewer)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flöte schrieb:
> ein "normaler" USB Stick
Was für ein "normaler" USB-Stick ist das denn? Immer die selbe Marke? 
Consumer? Industrial?

Sieh dir mal die Versorgungsspannungen der unterschiedlichen Hosts beim 
Einschalten an. Gibt es Einbrüche oder Nichtlinearitäten? Ist es ein 
Unterschied, ob die Steuerungen mit dem gestckten USB-Stick 
eingeschaltet werden oder ob der USB-Stick später eingesteckt wird?

> Könnt ihr mir ein Tool nennen, das eine tiefgreifende USB Stick Analyse
> bietet?
Dessen Name kennt nur der Hersteller des USB-Sticks.

> zwar noch an einem PC (Win, Linux) funktioniert, aber nicht mehr am µC
> selbst.
Hast du mal unterschiedlich lange Kabel probiert?

Im Zweifelsfall nehme ich hier dann den UReach UB300 her und formatiere 
den Stick damit.

: Bearbeitet durch Moderator
von Flöte (nsolo)


Lesenswert?

Sean G. schrieb:
> mit dd ein Abbild eines nicht
> funktionierenden sticks auf einen neuen machen.

Danke für die Tipps, das ist eine gute Idee.

Lothar M. schrieb:
> Was für ein "normaler" USB-Stick ist das denn? Immer die selbe Marke?
> Consumer? Industrial?

Nein, ich habe hier drei verschiedene, die alle bereits betroffen waren.

Lothar M. schrieb:
> Sieh dir mal die Versorgungsspannungen der unterschiedlichen Hosts beim
> Einschalten an. Gibt es Einbrüche oder Nichtlinearitäten? Ist es ein
> Unterschied, ob die Steuerungen mit dem gestckten USB-Stick
> eingeschaltet werden oder ob der USB-Stick später eingesteckt wird?

Bisher ist mir kein Untershied aufgefallen, ich werde es nochmal genau 
betrachten und dann auch Messungen durchführen.

Lothar M. schrieb:
> Hast du mal unterschiedlich lange Kabel probiert?

Ja, kein Unterschied. Normal ist der Stick direkt gesteckt.

Lothar M. schrieb:
> UReach UB300 her und formatiere

Weil du dem Gerät besonders vertraust? Das ist ja nur zum Klonen, 
Kopieren und Formatieren, oder?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flöte schrieb:
> Weil du dem Gerät besonders vertraust?
Weil ich es habe  ;-)

> Das ist ja nur zum Klonen, Kopieren und Formatieren, oder?
Ja. Und zwar mit oder auch ohne Analyse des Dateiformats.

> Nein, ich habe hier drei verschiedene, die alle bereits betroffen waren.
Das macht die Sache nicht einfacher.

Hast du mal analysiert, welcher der Hosts den Stick "kaputt macht"? 
Lässt er sich nicht vom µC mehr lesen, nachdem du ihn am PC eingesteckt 
hattest, oder steckt der "eigentlich immer" am µC und der fährt 
irgendwann nicht mehr hoch?

Was passiert, wenn du den Stick an ein Android- oder iOS-System 
ansteckst (OTG-Adapter und Handy)?

von Peter (pittyj)


Lesenswert?

Wir haben USB Analyzer von Beagle.
https://www.totalphase.com/protocols/usb/

Allerdings die teure Variante, welche auch USB-3 beherrscht.

von Harald K. (kirnbichler)


Lesenswert?

Das "Azure RTOS" selbst bietet keinerlei Möglichkeit zur Fehleranalyse?

Wenn dessen Dateisystemtreiber unglücklich ist, findet man das nur durch 
Funktionsverweigerung heraus?

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.