Guten Tag, ich möchte gerne einen STMF401RETx (LQFP64) via USART1 flashen. Hierzu habe ich wie in der Doku "AN2606" von ST beschrieben an den Pins PA10 und PA9 ein FTDI-Kabel angeschlossen (FTDI-RX an uC-TX und umgekehrt). Das Kabel ist mit einem PC verbunden. Den uC wollte ich dann über den STM32CubeProgrammer flashen. Desweiteren habe ich die uC-Pins nach Pattern 1 (Doku AN2606) für Boot0 = 1 (BOOT0) und Boot1 = 0 (PB2) über 10k Widerstände gesetzt. Leider bekomme ich eine Fehlermeldung wenn ich mit dem STM32CubeProgrammer eine Verbindung zum Microcontroller aufbauen will. Kann mir wer dabei weiterhelfen, wie ich den uC in den Bootmodus setze und flashen kann? Ich danke euch schon mal im Voraus ;) ______________________________________________________________________ __ Zu erwähnen ist das ich bereits einen STM042K6Tx (LQFP32) erfolgreich mit der Vorgehensweise flashen konnte. Hierzu habe ich Boot0 = 1 gesetzt und die USART Pins entsprechend verbunden. Fehlermeldung: Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration. REset your device then try again... Die Dokumente: AN2606 (S.120 -> USART1 Verbindun, S.22 Pattern 1) https://www.st.com/resource/en/application_note/cd00167594-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf AN4488 (S.26 -> Table 6. Bootmodes) https://www.st.com/resource/en/application_note/dm00115714-getting-started-with-stm32f4xxxx-mcu-hardware-development-stmicroelectronics.pdf
:
Bearbeitet durch User
Dustin B. schrieb: > REset your device then try again... Das hast Du gemacht? Am Besten Strom weg und wieder dran.
> Das hast Du gemacht? > Am Besten Strom weg und wieder dran. Das habe ich schon gemacht, hab den NRST (Reset-Pin) über einen Taster verbunden. Leider auch ohne erfolg.
pegel schrieb: > Im STM32CubeProgrammer hast Du auch seriell eingestellt? Hab im STM32CubeProgrammer folgende Config: Config-------: UART PORT--------: (halt der angeschlossene) Baudrate----: 115200 Partiy--------: Even Data bits----: 8 Stop bits----: 1 Flow control-: off wie gesagt mit dem kleinere uC hat es funktioniert.
Dustin B. schrieb: > Kann mir wer dabei weiterhelfen, wie ich den uC in den Bootmodus setze > und flashen kann? https://www.mikrocontroller.net/attachment/383626/Stm32Prog_R1.0.6.zip W.S.
W.S. schrieb: > Dustin B. schrieb: >> Kann mir wer dabei weiterhelfen, wie ich den uC in den Bootmodus setze >> und flashen kann? > > https://www.mikrocontroller.net/attachment/383626/Stm32Prog_R1.0.6.zip > > W.S. Danke für dieses ausführliche Dokument. :) Aber es geht ja mit dem kleinerer uC. Hab den Reset-Pin mal angeschlossen, trotzdem gleiches Resultat.(Allerdings noch mit dem STM-Programmer)
Probiere mal zum Vergleich den "STM32 Flash load demonstrator". https://www.st.com/en/development-tools/flasher-stm32.html
Beitrag #6233070 wurde vom Autor gelöscht.
Beitrag #6233075 wurde von einem Moderator gelöscht.
Stefan ⛄ F. schrieb: > Probiere mal zum Vergleich den "STM32 Flash load demonstrator". > https://www.st.com/en/development-tools/flasher-stm32.html Habe ich auch schon probiert. Mit dem STM042 geht es, mit dem STM32F401RE nicht. Habe ich vielleicht noch etwas anderes übersehen? Der uC befindet sich auf einem Steckboard mit 3.3V. Es sind jetzt nur noch die Pins VDD/VBAT auf 3.3V und VSS auf Ground, sowie die USART1 Pins RX/TX angeschlossen. Die USARTS1 Pin hab ich mit 100k Widerständen auf +VDD gelegt, wie es im Doc AN2606 S.33 beschrieben wird. Von dem FTDI-Kabel sind RX und TX entsprechend andersrum angeschlossen und der Ground-Anschluss auf Ground.
Stefan ⛄ F. schrieb: > Mach mal LED's (mit Vorwiderstand) an Rx und Tx, um zu sehen, ob > beide > Leitungen aktiv sind. Hab mit einem Oszilloskop gemessen sind an beiden 3.3V. Das BOOT0 auf VDD und BOOT1 auf GND sein muss ist wohl richtig?
:
Bearbeitet durch User
Dustin B. schrieb: > Hab mit einem Oszilloskop gemessen sind an beiden 3.3V. Wie? Immer? Auch wenn eigentlich etwas vom FTDI-TX übertragen wird?
pegel schrieb: > Dustin B. schrieb: >> Hab mit einem Oszilloskop gemessen sind an beiden 3.3V. > > Wie? Immer? Auch wenn eigentlich etwas vom FTDI-TX übertragen wird? Wenn etwas über Tx übertragen wird, wird der Pegel entsprechend Low gezogen. Das funktioniert.
Dustin B. schrieb: > Wenn etwas über Tx übertragen wird, wird der Pegel entsprechend Low > gezogen. Das funktioniert. Und was ist mit der Rx Leitung? Tot?
Dustin B. schrieb: > Es sind jetzt nur noch die Pins VDD/VBAT auf 3.3V > und VSS auf Ground Was ist mit VSSA und VDDA, die müssen auch immer angeschlossen sein? Und die Spezialkondensatoren an VCAP1 und VCAP2 sind auch dran? Alle Pins, die der Bootloader als Eingang benutzen kann, sollten nicht floaten sondern statisch 1 oder 0 sein. Auch ein Taktsignal könnte stören. Theoretisch könnten diese kritisch sein: PD6, PB6, PB7, PB10, PB3, PA8, PB4, PA7, PA5, PA4, PB15, PB13, PB12, PC12, PC10, PA15 und PA11, PA12. Und wenn das alles nicht sein kann, einfach mal RX und TX vertauschen ;) Dustin B. schrieb: > Das BOOT0 auf > VDD und BOOT1 auf GND sein muss ist wohl richtig? So steht es geschrieben.
Ich habe es mit einem CH341 und einem STM32F103C8(nicht BluePill) auf der Kommandozeile probiert. Auch an UART1, PA9, PA10 und Boot0=1. ./STM32_Programmer.sh -c port=/dev/ttyUSB0 -r 0x08000000 0x100 x.bin Fnktioniert zwar, aber es zeigt eine Meldung: Timeout error occured while waiting for acknowledgement. So ganz i.O. ist das auch nicht. Kannst ja mal einen Debug Level 3 probieren. Graphisch, oder: ./STM32_Programmer.sh -c port=/dev/ttyUSB0 -vb 3 -r 0x08000000 0x100 x.bin
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.