Hallo, woran kann es liegen, dass meine CDC, generiert aus CubeMX auf unterschiedlichen Rechern erkannt / nicht erkannt wird? Genauer gesagt habe ich zwei Windows10 Rechner. Auf dem einen wird die CDC tadellos erkannt, auf dem anderen kommt die Fehlermeldung, dass das USB-Gerät nicht erkannt wurde. Mehr kann ich nicht sagen, da ich bis jetzt nur den generierten Code verwende. Die Hardware scheint zu funktionieren. Ich verwende einen 7,3728 Baud Quarz und der USB Takt ist 47,92Mhz. Danke für Tips!
Ada J. Quiroz schrieb: > Ich verwende einen 7,3728 Baud Quarz und der USB Takt ist 47,92Mhz. Sollte der Takt nicht 48 MHz sein?! Wozu ein Baudratenquarz wenn man USB nutzt?
Niklas G. schrieb: > Sollte der Takt nicht 48 MHz sein?! Wozu ein Baudratenquarz wenn man USB > nutzt? Weil ich auch viel Uart und RS485 im System verwende. Aber auch mit 48 Mhz über den internen Quarz habe ich das selbe Fehlerbild.
Zeig mal die genaue Fehlermeldung aus dem Gerätemanager (Screenshot).
:
Bearbeitet durch User
Niklas G. schrieb: > Zeig mal die genaue Fehlermeldung aus dem Gerätemanager (Screenshot). "Unbekanntes USB-Gerät (Fehler beim Anfordern der Gerätebeschreibung"
Ada J. Quiroz schrieb: > Niklas G. schrieb: >> Sollte der Takt nicht 48 MHz sein?! Wozu ein Baudratenquarz wenn man USB >> nutzt? > > Weil ich auch viel Uart und RS485 im System verwende. Aber auch mit 48 > Mhz über den internen Quarz habe ich das selbe Fehlerbild. Es gibt keinen internen Quarz. Es gibt zwei interne Oszillatoren (32k und 8M), die aber nicht quarzstabilisiert und damit für USB oft nicht genau genug sind. fchk
Frank K. schrieb: > Es gibt keinen internen Quarz. Es gibt zwei interne Oszillatoren (32k > und 8M), die aber nicht quarzstabilisiert und damit für USB oft nicht > genau genug sind. Das wird es sein. Tausch mal den externen Quarz und versuche auf exakt 48Mhz zu kommen.
Ada J. Quiroz schrieb: > Fehler beim Anfordern der Gerätebeschreibung" Das deutet auf ein grundsätzliches Kommmunikationsproblem hin auf Hardware-Ebene. Kann also durchaus von der Frequenz kommen.
Niklas G. schrieb: > Das deutet auf ein grundsätzliches Kommmunikationsproblem hin auf > Hardware-Ebene. Kann also durchaus von der Frequenz kommen. Aber wieso funktioniert es am anderen Rechner absolut fehlerfrei? Laut CubeMX ist die Frequenz mit 47,92Mhz im zulässigen Bereich.
:
Bearbeitet durch User
Ada J. Quiroz schrieb: > Aber wieso funktioniert es am anderen Rechner absolut fehlerfrei? Laut > CubeMX ist die Frequenz mit 47,92Mhz im zulässigen Bereich. Weil verschiedene Rechner eine geringfügig unterschiedliche Basis-Frequenz haben können die dazu führt dass die Toleranz- Schwelle für den USB Takt unterschiedlich ausfällt.
Es gibt einige wenige STM32 die crystal-less USB unterstützen. Die ziehen ihren internen 48MHz Quarz auf "Ziel Frequenz" und nehmen dabei den Host als Referenz. Im allgemeinen braucht du aber exakt 48MHz. Sonst ist das Zufall. https://community.silabs.com/s/article/usb-clock-tolerance?language=en_US Hier meinen die, man bräuchte+-0.25% für usb full-speed. Das wären 47.88 als untere Grenze. Wenn ich deine 47.92 noch mit 100ppm schmücke, dann bist du da draußen. Ich würde da Mal anfangen... Übrigens, ich hatte Mal ein ähnliches Problem, als ich unabsichtlich den internen 8mhz RC Oszillator statt des externen tcxo verwendet hatte. Ging am Tisch meist, aber eben nicht immer. Nachdem ich impedanzen gemessen, Rechner getauscht,... hatte, habe ich am Schluss den takt gemessen (den kannst du auf einen Pin rausrouten), und nach einer 2 Zeilen Änderung im Code waren alle Probleme verschwunden. Selbiges Spiel kenne ich übrigens von Ethernet. Hatte da Mal unabsichtlich einen mems Oszillator bestückt... Hat mich auch einige Zeit gekostet diesen dummen fehler im BOM zu finden. 73
Dann werde ich zunächst mal auf einen Taktgeber versuchen.
Nicht-quarzbasierenede Kommunikation ist einfach nur Mist. "Gerade gings noch, jetzt wieder nicht". Und wenn einem die Temperatur böse mitspielt dann wird's noch schlimmer .... Ada J. Quiroz schrieb: > Aber auch mit 48 > Mhz über den internen Quarz habe ich das selbe Fehlerbild.
:
Bearbeitet durch User
Ada J. Quiroz schrieb: > "Unbekanntes USB-Gerät (Fehler beim Anfordern der Gerätebeschreibung" Da kann auch das USB Kabel defekt sein (D- unterbrochen bei Full Speed). Der Code kommt weil schon die allererste Anfrage nach dem Device Descriptor fehl schlägt. Da stimmt oft was grundsätzliches nicht.
Jim M. schrieb: > Da kann auch das USB Kabel defekt sein Ja klar, ein und dasselbe Kabel ist am einen Rechner defekt und am anderen nicht. Was für eine Logik!
Die 47,92Mhz werden laut Clocktree auch für die SDIO verwendet. Reicht das aus oder sollten das auch lieber genau 48MHz sein?
Ada J. Quiroz schrieb: > Die 47,92Mhz werden laut Clocktree auch für die SDIO verwendet. Reicht > das aus oder sollten das auch lieber genau 48MHz sein? Da ist das nicht so kritisch. fchk
Ada J. Quiroz schrieb: > Reicht das aus Ja, da kann man beliebig krumme Frequenzen nehmen, darf nur nicht mehr als 50 MHz sein. Die SD-Karte hat keinen eigenen Takt, der wird ja explizit mit übertragen wie bei SPI.
Wastl schrieb: > Ja klar, ein und dasselbe Kabel ist am einen Rechner defekt > und am anderen nicht. Ja, das kommt durchaus vor bei ausgelutschten USB-Steckverbindern. Im hiesigen Fall tippe ich aber auch ganz klar auf Taktprobleme.
Aja, wenn da USB-C im Spiel ist, sollte man den Stecker probieren zu drehen ... Es gibt ein paar Fehler,die auftreten können, oder, die man selber einbauen kann, die sich so zeigen würden. Aber wie oben geschrieben, beim Quarz beginnen, um da Mal sauber zu sein. 73
Ich habe den Quarz getauscht auf einen 12MHz (mit PLL zu 48MHz) und habe mir auf MCO den Takt ausgeben lassen, der sieht gut aus. Jetzt wird hingegen USB auf keinem Rechner mehr erkannt, mit dem 7,372800 Takt hat es immerhin auf einem Rechner funktioniert. Ich bin ratlos, woran kann es liegen? Es ist ein STM32F413VGT6.
:
Bearbeitet durch User
Ada J. Quiroz schrieb: > Ich bin ratlos, woran kann es liegen? Zeige dein *.ioc File mit dem es nicht funktioniert. Natürlich kommt es ein wenig drauf an wie man den Takt synthetisiert.
Ada J. Quiroz schrieb: > Ich habe den Quarz getauscht auf einen 12MHz (mit PLL zu 48MHz) Du musst für jeden Quarz die richtigen Lastkapazitäten dazuschalten sonst liegt evtl. die Frequenz zu stark daneben. Ada J. Quiroz schrieb: > den Takt ausgeben lassen, der sieht gut aus. Gut aussehen reicht nicht, er muss auch hinreichend genau sein.
Wastl schrieb: > Gut aussehen reicht nicht, er muss auch hinreichend genau sein. Das meinte ich ja damit. Wastl schrieb: > Du musst für jeden Quarz die richtigen Lastkapazitäten dazuschalten > sonst liegt evtl. die Frequenz zu stark daneben. Ich benötige keine Kapazitäten,d a ich einen Quarz Oszillator verwende. Ich habe aber den Fehler gefunden. Statt 22Ohm habe ich 220Ohm bestücken lassen. Nun funktioniert es auch auf allen Rechnern. Danke trotzdem, ich denke dass der 12MHz schon wichtig war.
Ada J. Quiroz schrieb: > Das meinte ich ja damit. Warum schreibst du es dann nicht? Ada J. Quiroz schrieb: > Ich habe den Quarz getauscht Ada J. Quiroz schrieb: > Ich benötige keine Kapazitäten,d a ich einen Quarz Oszillator verwende. Warum schreibst du von einem Quarz wenn du einen Quarz- Oszillator verwendest? Das ist die reine Verarschung!
Wastl schrieb: > Du musst für jeden Quarz die richtigen Lastkapazitäten dazuschalten > sonst liegt evtl. die Frequenz zu stark daneben. Als ob ein paar pF die Frequenz nennenswert verändern würden. Wastl schrieb: > Warum schreibst du von einem Quarz wenn du einen Quarz- > Oszillator verwendest? Das ist die reine Verarschung! Bleibt doch mal ruhig.
Mi N. schrieb: > Bleibt doch mal ruhig. Halt ein typischer µC.net Forumnutzer. Allen anderen danke ich.
:
Bearbeitet durch User
Ada J. Quiroz schrieb: > Statt 22Ohm habe ich 220Ohm bestücken > lassen. Ada J. Quiroz schrieb: > Halt ein typischer µC.net Forumnutzer. Den gesäßhaften Sprachgebrauch scheinst Du eher zu verstehen. Alles klar.
Meine Güte, er hat Quarz und Quarzoszillator vertauscht. Vermutlich hat er nichtmal groß darüber nachgedacht, da der Takt ja korrekt ist und die Info somit relativ unwichtig ist. In jedem Fall kann man aber auch gelassener reagieren.
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.