[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

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.