[USB] USB Stick STALL Problem

OP Persönliche Seite #279022
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
Gast #279023
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
OP Persönliche Seite #279024
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
Gast #279025
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
(Firma: embedded projects GmbH) #279026
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
Gast #279027
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren