Ich habe ein Problem mit der Herstellung einer benutzerdefinierten Leiterplatte mit STM32F103C8T6 FS CDC, aber die ganze Geschichte sah so aus.
Gleiche MCU, gleiche Anwendung und Uhren und zwei unterschiedliche Verhaltensweisen - was mache ich falsch?
Einer der typischen Fehler bei busbetriebenen USB-Geräten ist die falsche Handhabung des Pull-up-Widerstands. Ihre Beschreibung lautet: "1.5k pullup to 3.3" , was bedeutet, dass das USB-Verbindungsereignis (DP-Pullup) sofort nach dem Einstecken angezeigt wird. Der Host startet also den Aufzählungsprozess in 100 ms. Ihre MCU benötigt jedoch einige Zeit zum Booten, sodass sie nicht mit den richtigen Antworten bereit ist und Hostanfragen fehlschlagen. Bis Ihre MCU kommunikationsbereit ist, erklärt der Host den Port für tot und zeigt einen Fehler an. Wenn ein Demo-Board vor dem Anschluss an den USB-Host extern mit Strom versorgt wird und bereits betriebsbereit ist, ist die Verbindung in Ordnung.
Um dieses Missgeschick zu vermeiden, haben alle seriösen STM-Demoboards den Pull-up-Widerstand, der vom GPIO-Pin gesteuert wird, normalerweise PB2 oder PD2. Dann wird der Pull-up nur per Code gesetzt, wenn der USB-Stack antwortbereit ist.
Der Anschluss des ID-Pins an der Micro-B-Buchse auf der Seite des USB-Geräts ist belanglos, er ist für den USB-OTG-Host gedacht, nicht für ein einfaches Gerät.
brhans
0___________
Ale..chenski
kaziel
TurboJ
43
besagt im Wesentlichen, dass außer dem Pullup auf einer Datenleitung keine USB-Kommunikation stattfindet.Ale..chenski