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
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?
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.
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!
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.
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 :)
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.
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!
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.
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
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.