Hallo, ich habe eine Frage zum USB DFU Bootloader. Wir haben hier zwei Platinen mit STM32F407 Eine hat einen Oszillaor, 4MHz, die andere einen Quarz (12MHz). Die mit dem Quarz würde ich gerne über USB DFU programmieren. Bei der mit 4MHz funktioniert USB DFU anscheinend, bei der mit dem 12MHz Quarz nicht. Er schafft die enumerierung nicht: "43 (CM_PROB_FAILED_POST_START)" von Windows. Neben dem Reference Manual habe ich da nachgesehen: http://www.st.com/web/en/resource/technical/document/application_note/CD00264379.pdf Da drin steht das: "For Connectivity line USB DFU bootloader, the device first tries the 25 MHz configuration, then, if it fails, the 14.7456 MHz configuration, and finally, if it fails, the 8 MHz configuration." Nach dem dürfte das auch bei dem 4MHz nicht gehen. Kennt jemand eine Quelle, wo beschrieben steht, welche Anforderungen an die Taktquelle der Bootloaders für USB besteht? Bei einem Quarz? Gibt es außer den Pins Boot0 / Boot1 = LOW weitere Voraussetzungen für USB DFU? Wäre super, wenn mir jemand einen Tipp geben könnte!
WehOhWeh schrieb: > Neben dem Reference Manual habe ich da nachgesehen: > http://www.st.com/web/en/resource/technical/document/application_note/CD00264379.pdf > > Da drin steht das: > "For Connectivity line USB DFU bootloader, the device first tries the 25 > MHz configuration, then, if it fails, the 14.7456 MHz configuration, and > finally, if it fails, the 8 MHz configuration." Ich glaube die Info ist etwas älter und passt nicht auf Deinen µC. Schau mal in die AN2606, die erklärt die Bootloader für jede einzelne Controllerserie. Für die STM32F4-Serie schreiben die, daß der Controller alles von 4 bis 26MHz in geraden MHz-Schritten akzeptiert. Warum allerdings Dein 12MHz-Quarz nicht geht ist mir nicht ganz klar. Evtl. der Quarz defekt? Oder passen vielleicht dessen Kondensatoren nicht so daß er zu stark von 12MHz abweicht? Das solltest Du mal genauer nachmessen. Aber nicht mit dem Oszi an die Quarz-Pins gehen, sondern einen Taktausgang vom Controller erzeugen lassen und den nachmessen.
Danke für den Tipp und vor allem für die Appnote! Jetzt kenne ich das Problem: Die Schaltung ist für USB-Konfiguration ungeeignet, weil VBUS nicht verdrahtet ist. Der Bootloader erkennt die Verbindung nicht und schaltet den Quarz nicht ein. siehe AN2606 S93 Naja, es gibt andere Möglichkeiten zum Booten. Leider sind die langsamer.
WehOhWeh schrieb: > Die Schaltung ist für USB-Konfiguration ungeeignet, weil VBUS nicht > verdrahtet ist. Der Bootloader erkennt die Verbindung nicht und schaltet > den Quarz nicht ein. > siehe AN2606 S93 Aber was hindert dich daran das Programm entsprechend zu ändern? Die PLL kann ja unabhängig von allem anderen eingestellt werden. Das ändert natürlich nichts am Fehlen von VBUS...
Micha schrieb: > Aber was hindert dich daran das Programm entsprechend zu ändern? Die PLL > kann ja unabhängig von allem anderen eingestellt werden. Das ändert > natürlich nichts am Fehlen von VBUS... Das Problem ist, dass der Bootloader des STM32 bei der Produktion durch ST programmiert wird. D.h. es geht um einen unprogrammierten Prozessor von der Stange und den integrierten Bootloader von ST. Und es geht um die Programmierung in der Produktion. Aber die Programmierung ist ja über viele Quellen möglich, daher bringt mich das jetzt nicht direkt um. USB wäre eben nur elegant gewesen, weil das ohnehin draufhängen muss.
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.