Forum: Mikrocontroller und Digitale Elektronik Hardware Interface PIC OTG and Host


von On the way to host (Gast)


Lesenswert?

Hallo,

ich würde gerne einen PIC Controller über OTG (als device) und 1x als 
Host implementieren.

OTG geht meiner Meinung nach über Mini oder Micro USB. Host 
Funktionalität würde ich dann über eine USB - A realisieren realisieren. 
Also sind zwei vercshiedene USB Buchsen notwendig, was kein großen 
Problem sein sollte.

Das Hardware Interface sieht dann wie folgt aus:
OTG (Implementierung als Device) - Mini USB
1. VUSB über 0,1uF an VCC
2. VBUS über Kondensator (vs. GND) an PIN 1
3. D- an PIN 2
4. D+ an PIN 3
5. USBID Pin an PIN 4
6. an PIN 5 und Shield natürlich GND

Meine erste Frage: Wie soll der Kondensator unter 2. dimensioniert 
werden? Ich habe Werte zeischen 2,2uF ... 10uF gesehen. Im USB 
Specification Pdf habe ich auch nicht gefunden.

Das zweite Hardware Interface sieht dann wie folgt aus:
Host Implementierung - USB - A
1. VUSB über 0,1uF an VCC
2. VBUS über Kondensator (vs. GND) an PIN 1
Hier müssen jetzt die 5V extern angelegt werden oder nicht??? D.h. dass 
bei der Host Funktionalität die 5V noch an den VBUS Connector angelegt 
werden müßen. Diese dürfen aber nicht dauerhaft angelegt werden, weil 
sonst die OTG - Funktionalität nicht mehr richtig funktioniert oder?
Wie realisiert man so etwas? 5V über einen Switch auf den VBUS legen? 
Wofür ist der VBUSON Pin des Pics? Brauche ich diesen auch?
3. D- an PIN 2
4. D+ an PIN 3
6. an PIN 5 und Shield natürlich GND

Über Aufklärung wäre ich sehr dankbar!
4. D+ an PIN 3

von On the way to host (Gast)


Lesenswert?

Gibt es vielleicht Beispielschaltungen für den obigen Fall?

von On the way to host (Gast)


Angehängte Dateien:

Lesenswert?

Das ganze nochmal graphisch.

Host Funktionalität mit Switch zwischen 5V extern - VBUSON und VBUS. So 
steht es im USB Referenz Manual.
VBUS decoupling Kondensator bei HOST 100 uF und bei Device 10 uF.

Stimmt das also?

Kann mir jemand den Switch bei HOST erklären? Zwischen welchen Modi 
schaltet man da?

von On the way to host (Gast)


Lesenswert?

Niemand ein wenig Input bzgl. OTG und Host Funktionalität und der 
dazugehörigen Hardware Interfaces?

von WehOhWeh (Gast)


Lesenswert?

Ich habe jetzt keine Erfahrung mit Hosts, aber Hubs habe ich schon bauen 
dürfen. Daher kann ich nur zur Versorgung was sagen.

Eine gute Quelle ist die USB-Spec. Die bekommt man gratis hier:
http://www.usb.org/developers/docs/usb20_docs/

Der Host sollte kurzschlussfest sein und das Device schalten können. 
Nimm dazu einen USB-Powerswitch mit Fault-Ausgang und Sanftanlauf, ein 
MIC2009 wäre denkbar. Dafür wird wohl der VBUSON-Pin sein.

Am Device "braucht" man nicht 10µ, sondern MUSS unter 10µ bleiben, nimm 
daher eher so wenig Kapazität wie mögich.

Am Device auch Vorsicht mit Kerkos direkt hinter einem Kabel, die bilden 
gerne ein schwingfähiges System mit dem Kabel. Das hat 1-2µH/m. Güte 
klein halten!

PS:
Und schalte nie, nie, nie mit einem Relais eine Versorgung hart auf 
einen leeren 100µF-Kondensator. Die Versorgung wird dir beim Einschalten 
satt einknicken und dein System wird einen Reset machen.

von On the way to host (Gast)


Angehängte Dateien:

Lesenswert?

Hallo WehOhWeh,

vielen Dank für die Antwort.

Ich habe mich an das USB On the Go Reference Modell von Microchip 
gehalten:
http://ww1.microchip.com/downloads/en/DeviceDoc/61126F.pdf

Ab S. 27-48 sind die Hardware Interfaces für die verschiedenen Modi 
abgebildet (vgl. auch JPG Anhang).

In "Implementation as a Host" ist doch eindeutig ein Switch zu sehen, 
der die 5V wahlweise auf VBUSON bzw. VBUS schaltet. Was hat es damit auf 
sich.

Ich hätte die 5V jetzt fest auf VBUS gelegt (und mit Schottky Diode von 
VBUS des Device getrennt).
Wie ist es jetzt richtig?

Zu den VBUS Kapazitäten habe ich aus dem Universal Serial Bus 
Specification
http://passthrough.fw-notify.net/download/165177/http://sdphca.ucsd.edu/lab_equip_manuals/usb_20.pdf

den Anhang USB_decoupling gefunden. Das bedeutet im Device Mode Minimum 
1 uF und Max 10 uF und als Host Minimum 120 uF.

Input wie man es jetzt richtig macht wäre spitze!

von Lattice User (Gast)


Lesenswert?

On the way to host schrieb:
> In "Implementation as a Host" ist doch eindeutig ein Switch zu sehen,
> der die 5V wahlweise auf VBUSON bzw. VBUS schaltet. Was hat es damit auf
> sich.

So nicht richtig.
Es ist ein Schalter der die lokalen 5V  für Hostbetrieb auf den USB 
Stecker schaltet. VUSBON steuert diesen Schalter.

Das fest (auch über Diode) zu verbinden, ist IMO bei OTG keine gute 
Idee. Dabei besteht die Gefahr dass man einen angeschlossen aber 
ausgeschalteten PC mit Spannung auf den 5V versorgt.

von On the way to host (Gast)


Lesenswert?

Lattice User schrieb:
> On the way to host schrieb:
>> In "Implementation as a Host" ist doch eindeutig ein Switch zu sehen,
>> der die 5V wahlweise auf VBUSON bzw. VBUS schaltet. Was hat es damit auf
>> sich.
>
> So nicht richtig.
> Es ist ein Schalter der die lokalen 5V  für Hostbetrieb auf den USB
> Stecker schaltet. VUSBON steuert diesen Schalter.
>
> Das fest (auch über Diode) zu verbinden, ist IMO bei OTG keine gute
> Idee. Dabei besteht die Gefahr dass man einen angeschlossen aber
> ausgeschalteten PC mit Spannung auf den 5V versorgt.


Ok, aber die 5V lokal brauche ich doch definitv für den Host Betrieb 
oder nicht??

Eigentlich habe ich auch gar keine 5V zur Verfügung.
Wie genau wird der Schalter über VUSBON gesteuert?

Ich will eigentlich nichts anderes als mit 3,3V über zwei USB Buchsen 
einmal das Gerät als USB Device zu implementieren (d.h. z.B. über PC 
updaten) und einmal über die Typ A Buchse das Gerät z.B. über einen USB 
Stick updaten lassen.

Die genaue Beschaltung der beiden Buchsen fehlt mir hier :)

von Lattice User (Gast)


Lesenswert?

On the way to host schrieb:
>
> Ich will eigentlich nichts anderes als mit 3,3V über zwei USB Buchsen
> einmal das Gerät als USB Device zu implementieren (d.h. z.B. über PC
> updaten) und einmal über die Typ A Buchse das Gerät z.B. über einen USB
> Stick updaten lassen.
>

Also keine USB OTG Funktion nötig.

Am Type A musst du 5V anlegen. Das ist schliesslich die Versorgung des 
Sticks. Mit 3.3V wird der nicht wollen.

Am anderen der nur als Device funktioren soll, reicht es die 5V von der 
Buchse mit VUSB zu verbinden. Da dein Gerät eigenversorgt ist, wird das 
nur als Sense gebraucht.

von Stampede (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

siehe Anhang, mit Ladefunktion.

VIele Grüße
Stampede

von On the way to host (Gast)


Angehängte Dateien:

Lesenswert?

Lattice User schrieb:
> On the way to host schrieb:
>>
>> Ich will eigentlich nichts anderes als mit 3,3V über zwei USB Buchsen
>> einmal das Gerät als USB Device zu implementieren (d.h. z.B. über PC
>> updaten) und einmal über die Typ A Buchse das Gerät z.B. über einen USB
>> Stick updaten lassen.
>>
>
> Also keine USB OTG Funktion nötig.
>
> Am Type A musst du 5V anlegen. Das ist schliesslich die Versorgung des
> Sticks. Mit 3.3V wird der nicht wollen.
>
> Am anderen der nur als Device funktioren soll, reicht es die 5V von der
> Buchse mit VUSB zu verbinden. Da dein Gerät eigenversorgt ist, wird das
> nur als Sense gebraucht.

Schönen Dank, dies sähe dann so aus richtig?
Danke auch an Stampede!

von WehOhWeh (Gast)


Lesenswert?

Wie, du hast zwei USB-Buchsen, habe ich das richtig verstanden?

Dann hast du bei deiner Schaltung die 100µF nicht drauf. Die sind aber 
wirklich nötig, weil der USB-Stick beim stecken einen Stromstoß zieht 
(Kondensatoren laden), was dir deine 5V sehr übel nehmen werden, wenn 
die 100µ nicht da sind. Die Begrenzen den Spannungseinbruch auf ungefähr 
10%, drum auch 100µ/10µ.

Wenn du keine 5V hat, musst du sie halt machen. Ich würde mir die mit 
einem Stepup machen. Der hier z.B.:
http://ww1.microchip.com/downloads/en/DeviceDoc/20002234D.pdf

Ob sich der Stick mit den 0,35A zufriedengibt, müsste man testen. 
Vermutlich wird das schon passen. Schau in Windows, mit wievielen mA 
sich der Stick meldet.
Der  Steupup ist gelichezeitig noch dein Schalter (VBUSON an ENA). Wenn 
du die 5V mit dem Controller überprüfst, kannst du auch Kurzschlüsse 
erkennen und dann abschalten.

von On the way to host (Gast)


Angehängte Dateien:

Lesenswert?

WehOhWeh schrieb:
> Wie, du hast zwei USB-Buchsen, habe ich das richtig verstanden?

richtig

> Dann hast du bei deiner Schaltung die 100µF nicht drauf. Die sind aber
> wirklich nötig, weil der USB-Stick beim stecken einen Stromstoß zieht
> (Kondensatoren laden), was dir deine 5V sehr übel nehmen werden, wenn
> die 100µ nicht da sind. Die Begrenzen den Spannungseinbruch auf ungefähr
> 10%, drum auch 100µ/10µ.

ich habe es jetzt editiert und die 100 uF wieder draufgemacht (Anhang). 
Danke

> Wenn du keine 5V hat, musst du sie halt machen. Ich würde mir die mit
> einem Stepup machen. Der hier z.B.:

ich habe vermutlich 12V zur Verfügung. Würde mir dann einen 12V -> 5V 
Abwärtswandler suchen

> Der  Steupup ist gelichezeitig noch dein Schalter (VBUSON an ENA). Wenn
> du die 5V mit dem Controller überprüfst, kannst du auch Kurzschlüsse
> erkennen und dann abschalten.

Der VBUSON erkennt also ob ein USB Device eingesteckt ist und schaltet 
dann den 5V Regler? Ist das richtig so?

Dann dürfte man die 5V natürlich nicht für andere ICs verwenden.

Vielen Dank für die Antwort

von Stampede (Gast)


Lesenswert?

WehOhWeh schrieb:
> Dann hast du bei deiner Schaltung die 100µF nicht drauf. Die sind aber
> wirklich nötig, weil der USB-Stick beim stecken einen Stromstoß zieht
> (Kondensatoren laden), was dir deine 5V sehr übel nehmen werden, wenn
> die 100µ nicht da sind. Die Begrenzen den Spannungseinbruch auf ungefähr
> 10%, drum auch 100µ/10µ.

Klugscheißmodus: Es sind mehr als 100µF, die Spec gibt 120µ oder 150µF 
vor (siehe meine Schaltung).

Es gibt auch ein paar AN von Microchip wo die das mit einem 3V3 auf 5V 
Stepup lösen, wie WehOhWeh schon geschrieben hat.

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.