STM32 wird über USB nicht erkannt

OP #6818274
Lesenswert?

Hallo Zusammen,

ich versuche momentan als kleines neben Projekt einen STM32l073 
anzusteuern.
Soweit so gut, nun habe ich aber bei der USB-Schnittstelle folgendes 
Problem:

Wenn ich das USB-Kabel anschliesse (in diesem Fall ein USB-C Kabel), 
plopt auf dem PC folgende Meldung: USB-Gerät wurde nicht erkannt.

Im Anhang habe ich euch ein Bild der Schaltung hinterlegt. Firmware 
technisch habe ich im CubeMx die USB Schnittstelle aktiviert und unter 
Middleware bei USB_DEVICE habe ich als Klasse "Communication Device 
Class (Virtual Port Com) ausgewählt. Dabei habe ich keine Einstellungen 
verändert, da meines Wissensnach müsste dies so Funktionieren. Auch in 
der Firmware habe ich noch keinen Code programmiert, sondern nur den vor 
generierten Code kompiliert.

Meine erste Vermutung war, dass die ESD Diode verkehrt eingelötet wurde. 
Diese scheint aber korrekt zu sein, auch die Spannungen sehen in Ordnung 
aus (5.1V VBUS).

Hat jemand eine Idee wo hier das Problem sein könnte?
Angehängte Dateien:
Gast #6818306
Lesenswert?

Der L073 hat einen internen Pull-Up Widerstand. Wenn du den zusammen mit 
dem externen einschaltest (was die Cube HAL tut), hast du einen zu viel.

Eventuell hast du die "Clock Configuration" vergessen. Vergleiche mal 
deine Einstellung in CubeMx mit meinen: 
http://stefanfrings.de/stm32/stm32l0.html#vcphal

Alternativ kannst du einfach mal mein Projekt aus dem Kapitel darunter 
flashen. Wenn das auch nicht läuft, liegt wahrscheinlich ein 
Hardwarefehler vor.

Zur USB-Buchse kann ich nichts sagen, damit habe ich keine Erfahrung.
OP #6818377
Lesenswert?

Stefan ⛄ F. schrieb:
> Der L073 hat einen internen Pull-Up Widerstand. Wenn du den zusammen mit
> dem externen einschaltest (was die Cube HAL tut), hast du einen zu viel.
>
> Eventuell hast du die "Clock Configuration" vergessen. Vergleiche mal
> deine Einstellung in CubeMx mit meinen:
> http://stefanfrings.de/stm32/stm32l0.html#vcphal
>
> Alternativ kannst du einfach mal mein Projekt aus dem Kapitel darunter
> flashen. Wenn das auch nicht läuft, liegt wahrscheinlich ein
> Hardwarefehler vor.
>
> Zur USB-Buchse kann ich nichts sagen, damit habe ich keine Erfahrung.

Vielen Dank für deine Antwort, ich werde mal versuchen den Widestand 
auszulöten und vergleiche die CLK mit deinem Beispiel.

Ich melde mich dann weider mit neuen erkenntnissen!
OP #6818705
Lesenswert?

Ich hatte gestern und heute noch folgende Punkte versucht:

- Den Widerstand am D+ habe ich ausgelötet.
- Die Clock Konfiguration habe ich kontrolliert, diese ist Standard 
mässig auf 48MHz eingestellt.
- Dann habe ich auch noch das Beispiel getestet:
> Alternativ kannst du einfach mal mein Projekt aus dem Kapitel darunter
> flashen. Wenn das auch nicht läuft, liegt wahrscheinlich ein
> Hardwarefehler vor.

Das hat auch nicht funktioniert, somit muss es ein Hardware Fehler sein. 
Ich vermute, dass es an der Buchse liegen muss.

Naja ich werde da mal das Pinout kontrollieren und melde mich wieder, 
falls ich etwas finden würde.
Gast #6818733
Lesenswert?

Hast du die möglichkeit D+ / D- zu messen? OK 480Mhz sind etwas viel, 
man kann ja mal fragen.

Alternativ hast du ggf einen ganz ganz alten usb FS hub? Dann wären das 
nur noch 12Mhz, ...

Das dan zu interpretieren ist dann och was anderes, ... ohne analyser, 
.. wobei ich glaube pico scops können das.

Kontrollier noch mal die Frequenzen, für HS (480Mhz) ist meist ein 
externer quarz notwendig.
Gast #6818756
Lesenswert?

Bist du ein Full-Speed oder Low-Speed Device? Laut datenblatt Seite 4 
ist das ein unterschied bei der Wahl wo du D+ und D- an dem Bauteil 
anschließt.

Die Begründung mit dem internen Pull-up Rpu steht im Text.
Moderator (Firma: Titel) Persönliche Seite #6818769
Lesenswert?

mr. mo schrieb:
> Die Begründung mit dem internen Pull-up Rpu steht im Text.
Dank dieses in der STF202 integrierten Rpu von Pin 3 nach Pin 1 haben 
jetzt sowohl USP_D_P (R900) wie auch USB_D_N (Rpu) einen Pullup. Kein 
Wunder kann der Host damit nichts anfangen...

EDIT: deshalb ist es beim Zeichnen der Schaltplansymbole immer gut, wenn 
sie nicht nur viereckige Kästen mit Nummern sind, sondern eben auch 
symbolisch den Inhalt darstellen.
OP #6818887
Lesenswert?

mr. mo schrieb:
> Bist du ein Full-Speed oder Low-Speed Device? Laut datenblatt Seite 4
> ist das ein unterschied bei der Wahl wo du D+ und D- an dem Bauteil
> anschließt.
>
> Die Begründung mit dem internen Pull-up Rpu steht im Text.

Danke für den Tipp das habe ich nun auch gesehen. In meinem Fall bin ich 
ein Fullspeed device.

> Dank dieses in der STF202 integrierten Rpu von Pin 3 nach Pin 1 haben
> jetzt sowohl USP_D_P (R900) wie auch USB_D_N (Rpu) einen Pullup. Kein
> Wunder kann der Host damit nichts anfangen...

Also wenn ich das nun richtig verstanden habe, sind am D+ Pin nun 3x 
Pullups:
- Intern im MCU
- R900
- Intern im STF202

Ich werde mich mal nach einer anderen ESD-Diode umsehen, welche keinen 
internen Pullups hat.

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