Hallo, ich muss für ein Studentenprojekt in einem STM32 Mikroconller eine virtuellen COM Port emulieren. Dazu habe ich bereits die Schaltung angefertigt und die Platine fertigen lassen, sowie den Code in den Flash des Mikrocontrollers geladen. *Zu meinem Problem*: Sobald ich meine Platine an einen Computer anschließe, gibt dieser die Fehlermeldung "Code 43" und "Fehler beim Anfordern einer Gerätebeschreibung" an. Die genauen Fehlermeldungen habe ich als PNG angehängt. Ich habe vieles ausprobiert und bin mittlerweile an einem Punkt angekommen, an dem ich nicht mehr weiter weiß. Mein Projektbetreuer kennt sich leider auch nicht aus. Deswegen wäre ich für jeden Ratschlag und jede Erfahrung dankbar. Ich arbeite mit dem STM32L151C6. Den Code habe ich mit Hilfe von CubeMX und in Atollic True Studio geschrieben. Der Mikrocontroller wurde anschließend mit ST-LinkV2 geflasht. Da man mit dem ST-Link ja die Device-Memory ansehen kann, bin ich mir sicher, dass der Mikrocontroller beschrieben wurde und damit zumindest teilweise funktionsfähig ist. Leider finde ich im WWW auch kein Beispielprojekt, dass diesen uC benutzt. Zunächst habe ich die Hardware untersucht. Die Schaltung (siehe Anhang) müsste aus meiner Sichtweise korrekt sein. Es kann natürlich sein, dass eine Hardwarekomponente defekt ist. Lohnt es sich eine neue Platine zu bestücken und das ganze nochmal auszuprobieren (alle Hardwareelemente sind vorrätig)? Ich habe in einem Forum gelesen, dass der Mikrocontroller eine gewisse Zeit braucht um hochzuladen, und man den Pull-up erst nach kurzer Zeit einschalten soll [[https://electronics.stackexchange.com/questions/355981/stm32-cdc-usb-unknown-device-error-code-43]] . Die Pull-Ups dieses STM32 ziehen die Leitung jedoch lediglich auf ein paar mV (30-60kOhm Widerstände) und ich hab keine Möglichkeit eine Schaltung einzubauen und werde nicht an einer am Stromkreis angeschlossenen Platine rumlöten. Generell steh ich dieser Behauptung kritisch gegenüber, da ich keinerlei Informationen gefunden haben, die sie bestätigen würden. Danach habe ich mich mit der Software beschäftigt. Ich arbeite unter Windows 10, brauche also keine zusätzlichen Treiber. Ich habe verschiedene Softwarekombis ausprobiert, z.B. USB als CDC, HID etc. konfiguriert. Ich habe meinen ganzen Code so verändert, dass nur USB, sowie meine äußere Betaktung (8Mhz Quarz),initialisiert werden. Trotzdem vermute ich, dass sich der Fehler in meiner Software befindet. Aufgrund der "fehlenden Gerätebeschreibung" habe ich einen Fehler bei den VID und PID vermutet. Diese habe ich im Initalisierungscode gefunden und abgeändert, ohne Erfolg. Wie gesagt wäre ich für jede Hilfe sehr dankbar. Ich hoffe ich habe alle wichtigen Informationen angegeben. Liebe Grüße, Julian
120 Ohm scheinen mir sehr viel. 22 oder 33 sind normal.
Und die 1k5 müssen auch direkt an den µC. Könnte mir vorstellen, dass die Signale recht matschig sind.
Die 1k5 sind beim L151 auch intern vorhanden. 120 Ohm in Serie sind wirklich viel. Ich habe 22 Ohm. Du könntest mal das Projekt im Anhang im Ordner https://github.com/libopencm3/libopencm3-examples/tree/master/examples/stm32/l1/stm32l-discovery entpacken. Das ist ein DFU Bootloader für den STM32L151 - damit könntest du evtl. die Hardware ausschliessen. Die IOs passen u.U nicht zum angegebenen Board.
Vergiss den Anhang von oben. Das funktioniert nicht. Schau mal unter https://github.com/tyoshid/libopenstm32l1. Vielleicht ist da was brauchbares dabei.
So jetzt. Das sollte funktionieren. Sind beides Eclipse-Projekte zur Verwendung mit dem GNU-MCU-Eclipse-Plugin.
pegel schrieb: > Und die 1k5 müssen auch direkt an den µC. > Könnte mir vorstellen, dass die Signale recht matschig sind. Ich habe meine Schaltung angepasst und für R7, R8 jeweils 22 Ohm benutzt und den Pull-Up direkt an den Pin versetzt. Ohne Erfolg. Ich habe auch extra nochmal eine neue Platine bestückt, um eventuelle Hardwarefehler auszuschließen, hat ebenfalls nichts gebracht. Trotzdem Danke!
Hast du die PLL auf 96MHz konfiguriert? Das ist nötig, damit die USB-Peripherie überhaupt funktionieren kann. Julian M. schrieb: > Leider finde ich im WWW auch kein Beispielprojekt, dass diesen uC > benutzt. Siehe: micha schrieb: > Schau mal unter https://github.com/tyoshid/libopenstm32l1. Dort gibt es verschiedenste Beispielprojekte für den L1. Damit könntest zumindest herausfinden ob es an der Hardware oder an der Software liegt. Julian M. schrieb: > und den Pull-Up direkt an den Pin versetzt. Der sollte nicht fest verbaut sein, sondern muss ein- und ausgeschaltet werden können. Löte ihn aus und nimm den internen.
:
Bearbeitet durch User
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.