Schaltung für USB Funktion am STM32

Gast #5774816
Lesenswert?

Hallo zusammen,

ich versuche zum ersten Mal eine USB Funktion mit einem STM32 zu 
realisieren. Dazu wollte ich einen STM32F302RBT6 einsetzen. Ich habe mir 
das Datenblatt angeschaut und sehe nur, dass ich den Pin PA11 für USB_DM 
und den Pin PA12 für USB_DM verwenden soll. Wie soll aber die komplette 
Schaltung dazu aussehen? Es muss doch noch VBUS angeschlossen werden. 
Ich werde aus dem Datenblatt nicht schlauer.

MfG
#5775238
Lesenswert?

S.T.M schrieb:
> Die Datenblätter von ST sind ja eigenartig, wenn man für jede Funktion
> ein passendes Application Note raussuchen muss.

Genau das finde ich gut, die Informationen sind auf das wichtigste des 
jeweiligen Szenarios heruntergebrochen. Nicht jeder nutzt z.b. USB 
etc... Das schrumpft die eigentliche Datenblattstärke um einiges.

Wenn man nun aber z.b. aus dem Atmel Lager kommt, ist das schon 
verfremdlich, das stimmt schon ? Da muss man sich umgewöhnen.
Gast #5775242
Lesenswert?

S.T.M schrieb:
> Wie soll aber die komplette Schaltung dazu aussehen?
1
USB Buchse        Mikrocontroller
2

3
                    1,kΩ
4
               +----[===]---o 3,3V
5
               |
6
D+  o----------+--o DP PA12
7
D-  o-------------o DM PA11
8
GND o-------------o GND

Siehe http://stefanfrings.de/stm32/stm32f3.html#usb

> Es muss doch noch VBUS angeschlossen werden.

VBUS kannst du benutzen, um dein Gerät mit Strom zu versorgen. Dann 
kommt da ein Low-Drop 3.3V Spannungsreler dran. Wenn deine Schaltung 
eine andere Stromversorgung hat, brauchst du VBUS nicht zu benutzen.

In realen Schaltungen empfehlen sich zusätzlich Suppressor-Dioden zum 
Schutz gegen Überspannung.

Zum Debuggen kann es hilfreich sein, den Pull-Up Widerstand schaltbar zu 
machen, damit man nicht nach jedem Reset das USB Kabel aus- und wieder 
einstecken muss. Das Programm soll dann den Pull-Up nach jedem Reset ca. 
1 Sekunde verzögert einschalten.
Gast #5775317
Lesenswert?

Rene K. schrieb:
> Wenn man nun aber z.b. aus dem Atmel Lager kommt, ist das schon
> verfremdlich, das stimmt schon ? Da muss man sich umgewöhnen.

Ja ich komme aus dem AVR Lager :)
Daher auch die Verwirrung.

Stefanus F. schrieb:
> Wenn deine Schaltung
> eine andere Stromversorgung hat, brauchst du VBUS nicht zu benutzen

Ist es nicht sinnvoll, wenn man den VBUS über einen Spannungsteiler an 
einen GPIO hängt? Damit der Controller weiss, dass ein USB Kabel 
angeschlossen wurde? Mein Schaltplan habe ich angehängt.

Auf deiner Homepage steht, dass man einen 48MHz Quarz nehmen soll. In 
der Application Note steht aber, es würde auch ein 16MHz gehen. Was 
stimmt denn nun?

MfG
Angehängte Dateien:
Gast #5775333
Lesenswert?

S.T.M schrieb:
> Ist es nicht sinnvoll, wenn man den VBUS über einen Spannungsteiler an
> einen GPIO hängt? Damit der Controller weiss, dass ein USB Kabel
> angeschlossen wurde?

Das erfährt er schon durch die USB Kommunikation.

> Auf deiner Homepage steht, dass man einen 48MHz Quarz nehmen soll.

Nein, dort steht, dass die USB Schnittstelle mit 48MHz getaktet werden 
muss. Dort steht auch, dass daher der Systemtakt entweder 48MHz oder 
72MHz sein muss und dass man dementsprechend den Prescaler auf 1 oder 
1,5 einstellt.

Von Quarz ist das alles wiederum ziemlich unabhängig, da dessen Frequenz 
mittels PLL auf 48 oder 72MHz erhöht wird. Alle mir bekannten Evaluation 
Kits und Development Boards haben einen 8MHz Quarz.
Persönliche Seite #5775339
Lesenswert?

S.T.M schrieb:
> Auf deiner Homepage steht, dass man einen 48MHz Quarz nehmen soll.

Der Controller kann nur max 32 MHz als Quarz. Auf der Website ist vom 
Systemtakt die Rede, welcher über eine PLL erzeugt wird. Viele 
Schaltungen verwenden 8MHz-Quarze. Die 48 MHz für USB werden über eine 
weitere interne PLL erzeugt.

Hier die USB-Schaltung vom Olimexino, als Inspiration:
https://www.mikrocontroller.net/articles/Datei:Olimexino_STM32_USB.png

S.T.M schrieb:
> Damit der Controller weiss, dass ein USB Kabel
> angeschlossen wurde?

Das sollte er ja auch an den SOF-Paketen vom Host erkennen, ist also 
eher für Testzwecke sinnvoll.

Edit: Zu spät!

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