Forum: Mikrocontroller und Digitale Elektronik [USB] USB Stick STALL Problem


von Andreas A. (aauer1) Benutzerseite


Lesenswert?

Hi

Ich hoffe es kann mir hier jemand helfen. Und zwar befasse ich mich
gerade mit dem Lesen eines USB Sticks per AVR. Als USB Host Controller
hab ich einen Cypress SL811HS Chip drauf.

Also die Ansteuerung des Host Controllers funktioniert einwandfrei und
auch die Enumeration eines USB Devices funktioniert (sieht zumindest so
aus). Das Problem ist jetzt folgendes.... Wenn ich versuche per Bulk
Transfer einen CBW Block an das Device zu schicken, dann gibt mir das
Device den Status STALL auf dem BULK-IN Endpoint zurück. Dies bedeutet
ja, dass das Device (USB Stick) den Command nicht verstanden hat.
Danach muss ich das Device mit einem Clear Feature zurücksetzen (klappt
auch) und ich bekomm anschließend auch ein CSW zurück.
Das Problem ist, ich weiß nicht, warum der Stick das macht... ich hab
hier 4 USB Sticks rumliegen und bei 2 klappt das Lesen der Sektoren und
bei den anderen beiden nicht!?!?!? Kennt jemand einen Grund warum das
auftreten kann??

Hoffe, dass es hier einige USB Spezialisten gibt.
mfg
Andreas

von T. Stütz (Gast)


Lesenswert?

- Hast du per Set Address auf dem Control Endpunkt dem Gerät eine
  Adresse gegeben ?
- kann dein USBHost Controller die geforderte Strommenge liefern
  (max 500mA) ?
- Bist du sicher das du einen "Bulk Transfer" machen mußt ?
  Richtige Endpunkt verwendet ?

Gruss

von Andreas A. (aauer1) Benutzerseite


Lesenswert?

- Also ich hab mit SetAddresse die Addresse 1 vergeben und bekomm von
dem Control Transfer auch den Status ACK.
Sollte also passen.

- Die Spannungsversorgung des Sticks wird direkt durch einen 7805
Spannungsregler gemacht. Denke also, dass es hier auch nicht zu
Engpässen kommt, da der Stick laut Config Descriptor nur 100mA
benötigt.

- Laut Config Descriptor, den ich auslesen kann, bekomm ich zurück,
dass Endpoint 1 und Endpoint 2 jeweils Bulk Transfer Endpoints sind
(der eine für IN und der andere für OUT).

mfg
Andreas

von Mike (Gast)


Lesenswert?

Hallo,

das Lesen eines USB Sticks per AVR interessiert mich schon seit langem.
Leider habe ich bis jetzt aber keinerlei Beispielcode hierzu im Internet
finden können. Könntest Du Deinen Code posten, sozusagen als
Einstiegshilfe?
Wäre super.

Danke,
Mike

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Nutzt du die INTRQ Leitung des SL811HS ?

Ich kann das Signal mit meinem Oszi messen, aber sobald ich es an
meinen AVR anklemme ruehrt sich auf der Leitung nichts.

Im Plan von Cypress ist ein 74LS125 dazwischen geschaltet.

Nutzt du das Signal, wenn ja wie hast du es verbunden?
Gruss Bene

von Herbert Bernardini (Gast)


Lesenswert?

Mit dem VNC1L von FTDI gehr es so.

• DOS-style ASCII commands (terminated with a <cr>)
– Directory commands, e.g. DIR, CD, MKD, DLD
– File commands, e.g. RDF, WRF, OPW, OPR
– Power management commands, e.g. SUD, WKD
– Debug commands, e.g. SD, IDD
– Miscellaneous commands, e.g. ‘E’ and ‘e’ for synchronisation

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.