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?
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.
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!
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.
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.
Ich habe den Fehler gefunden. Das Problem liegt bei der ESD Diode. Ich habe sie zwar korrekt eingelötet aber irgendwie Funktioniert das nicht. Wenn ich die Diode entferne und mit Draht überbrücke, wird der STM32 sofort erkannt und es erscheint auf dem PC sofort die Meldung COM5 einsatzbereit.
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.
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.
:
Bearbeitet durch Moderator
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.
Du hast da was überlesen, der Pull Up vom STF202 ist zwichen Pin 1 und 3, somit laut deinem stromlaufplan an D- , ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.