Forum: Mikrocontroller und Digitale Elektronik Rudimentärer USB-Host


von Hans M. (Gast)


Lesenswert?

Hallo zusammen,

Ich möchte erkennen, ob ein USB-Gerät an einen AVR angeschlossen wurde, 
keine Daten oder sowas.
Zum Hintergrund:
Es geht um eine Schaltung mit einem Cortex-M3 welche über einen 
"USB-Detect" ( erkennen ob 5V über USB an nem Portpin ankommen ) erkennt 
und daraufhin aus der MainApp in eine "ServiceApp" springt wo sie sich 
als USB-Drive meldet.
Die gesuchte Lösung soll eigentlich nur die 5V für den USB-Detect bereit 
stellen und erkennen wann der STM32 im "USB-Modus" ist um ne LED 
anzuschalten.
Gebraucht wird das nur, um festzustellen ob der STM sich resetet hat, da 
der Sprung in die ServiceApp übern Bootloader erfolgt .
Ich denk mal ne vollständige USB-Host_Implementierung wär  wohl n bissl 
zu viel.
Mir schwebt n AVR mit 3,6v vor darüber 2 PortPins n Bitmuster ausgibt, 
auf das de STM antwortet, wenn er im USB-Modus ist.
Vielleicht geht's auch ander, bin für Vorschläge offen.

MfG Hans

von holger (Gast)


Lesenswert?

>Vielleicht geht's auch ander, bin für Vorschläge offen.

AVR? ROFL. Häng nen alten USB Stick dran.

von Chris L. (kingkernel)


Lesenswert?

Läuft der STM im USB-Host mode oder in Device-Mode?

von holger (Gast)


Lesenswert?

>>Vielleicht geht's auch ander, bin für Vorschläge offen.
>
>AVR? ROFL. Häng nen alten USB Stick dran.

Ach shit, der Cortex soll der Slave sein;)
Häng ihn an einen USB Host (PC), wie soll das sonst vernünftig gehen?
Alles andere kannst du vergessen.

von Max D. (max_d)


Lesenswert?

Naja, mit genug Flash kann man schon ne init "rausbangen" (xmegas gehen 
bis 32mhz takt, sollten also (bei 24mhz) 2 lines mit 12mhz schalten 
können). ob das aber einfacher ist als einfach nen at90usb1287 zu nehmen 
und dessen host-interface zu verbraten ist fraglich.....

von Hans M. (Gast)


Lesenswert?

Tolle Antwort Holger...

Der STM meldet sich als USB-Stick wenn er aus der MainApp in die 
SeviceApp gesprungen ist. Und nur das soll erkannt werden.  Wenn er an 
ein PC angeschlossen wird melde er sich dann als informativerer 
Datnträger.

von Max D. (max_d)


Lesenswert?

Nachtrag: Kuk mal ob es reicht einfach die Datenleitungen hochohmig zu 
pull-downen (100k bereich) und dann auf den pullup den der stm 
anschaltet zu reagieren (so macht das der host-controller im pc)...

von Reinhard Kern (Gast)


Lesenswert?

Hans M. schrieb:
> Und nur das soll erkannt werden.

Dann musst du aber das ganze entsprechende Protokoll abwickeln, das als 
Bitmuster zu entwickeln ist zumindest unsinnig, vermutlich aber garnicht 
möglich, da gehen ja einige Datenpakete hin und her. "Ich bin ein Stick" 
wird nicht einfach mit Pullup-Widerständen gemeldet wie beim Speed.

Gruss Reinhard

von holger (Gast)


Lesenswert?

>Tolle Antwort Holger...

Toller Vortrag Hans...

>Der STM meldet sich als USB-Stick wenn er aus der MainApp in die
>SeviceApp gesprungen ist. Und nur das soll erkannt werden.  Wenn er an
>ein PC angeschlossen wird melde er sich dann als informativerer
>Datnträger.

Bitte noch mal genauer erklären:
Wenn der STM an einen AVR USB Host angeschlossen wird, wird
er zum USB Drive. Wenn er an einen PC USB Host angeschlossen
wird, wird er zum informativeren Datenträger.

Hab ich jetzt nen Knoten im Hirn oder laberst du nur Schwachsinn?

von Reinhard Kern (Gast)


Lesenswert?

holger schrieb:
> Hab ich jetzt nen Knoten im Hirn oder laberst du nur Schwachsinn?

Das wird wohl schon so stimmen, bloss steckt da etwa tausendmal so viel 
Software dahinter wie sich klein Hänschen das so vorstellt.

Gruss Reinhard

von Max D. (max_d)


Lesenswert?

Ich dachte der stm hat den USB-Port "aus" wenn er normal an ist und 
schaltet sind in den bootloader-modus (der einen Stick emuliert) wenn er 
port 5V sieht....

von A. Schavan (Gast)


Lesenswert?

>Es geht um eine Schaltung mit einem Cortex-M3 welche über einen
>"USB-Detect" ( erkennen ob 5V über USB an nem Portpin ankommen ) erkennt
>und daraufhin aus der MainApp in eine "ServiceApp" springt wo sie sich
>als USB-Drive meldet.
Nur weil sich der Thread-Ersteller unverständlich ausdrückt, ...

>Ich dachte der stm hat den USB-Port "aus" wenn er normal an ist und
>schaltet sind in den bootloader-modus (der einen Stick emuliert) wenn er
>port 5V sieht....
... muß das jetzt nicht jeder nachmachen.

Bitte etwas mehr auf den Satzbau und die Rechtschreibung achten - dann 
klappts auch mit den Antworten.

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.