Forum: Mikrocontroller und Digitale Elektronik STM32 Bootloader über USART


von Jon (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem:

Ich möchte gerne den Bootloader meines momentan verwendeten Controllers 
nutzen. Es ist ein STM32F103 welchen ich mit Crossstudio 1.7 
programmiere.

Laut Application note AN2586 muss dazu folgendes gelten:
  Boot0: "1"
  Boot1: "0"
Um den Bootloader zu starten ist ein anschließendes Reset erforderlich.
So weit, so gut.
Sobal ich aber den Flash Loader DEmonstrator V2.2 starte, sagt dieser 
mir immer:

"No Response from the target, the Bootloader can not be started. Please 
verify the boot mode configuration and the flash protection status. 
Reset your device then try again."

Nachdem ist das ganze ein paarmal gemacht habe, ohne die Kommunikation 
aufbauen zu können.... habe ich das ganze mal mit nem Terminalprogramm 
(HTerm) versucht. Siehe da,....die Verbindung steht. Zunächst schicke 
ich ein 0x7F zur Synchronistion....anschließend kann ich mit den 
Kommandos aus AN3155 mit dem Controller "reden". Allerdings nur über 
Terminalprogramm....
Hab mir jeweils die Sendungen auf Tx und Rx angesehen. Konnte da keine 
Unterschiede erkennen....

Hat jmd vielleicht ne Ahnung, woran das liegen kann, dass ich den Flash 
Loader Demonstartor nicht starten kann...?
Liegt es vielleicht an der Flash Loader Demo Version?
Habs auch mit unterschiedlichen Baudraten versucht...erfolglos.
Auch Neuinstallation haben nichts gebracht...

Oder ist es vielleicht eine "Einstellungssache" in Crossstudio?

Gruß
 Jon

von Johannes M. (johannesm)


Lesenswert?

Hi,
leider kann ich dir noch nicht wirklich helfen bei deinem Problem.
Ich entwerfe zur Zeit auch eine Schaltung mit einem STM32F103 
(High-Density), da es auf der Platine ziemlich eng zugehen wird plane 
ich auch auf den JTAG zu verzichten und über USART zu gehen. Im moment 
kämpfe ich mich noch durch die ganzen Application Notes und 
Datenblätter, bei einer handfesten Platine bin ich noch nicht 
angekommen. ;-)

Welchen Programmieradapter verwendest du denn?
Ich hab bisher mit USBprog und OpenOCD(JTAG) die STM32er geflasht, ob 
man mit dem auch über USART flashen kann bin ich noch am erforschen.

Gruß Johannes

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

@Johannes M. (johannesm)

Wenn es so eng ist, dann empfehle ich diese Stecker-Belegung:

http://www.mikrocontroller.net/articles/JTAG#Der_10-polige_JTAG_Stecker_von_mmvisual

Hat alle erdenklichen Möglichkeiten und die Kombination der Pins ist 
perfekt.
Ich meinen Schaltungen (STM32) nehme ich immer diese Belegung.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Man kann die STM32 auch per SWD programmieren, dann brauch man noch fünf 
Pins, also nur einen mehr als bei UART.

Dafür hat man dann die volle Debugfähigkeit wie bei JTAG.

Gruß
Lasse

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

SWD kann nicht jedes System, daher abklären/testen.
z.B. der J-Link kann SWD.

von Frank K. (fchk)


Lesenswert?

Johannes M. schrieb:
> Hi,
> leider kann ich dir noch nicht wirklich helfen bei deinem Problem.
> Ich entwerfe zur Zeit auch eine Schaltung mit einem STM32F103
> (High-Density), da es auf der Platine ziemlich eng zugehen wird plane
> ich auch auf den JTAG zu verzichten und über USART zu gehen. Im moment
> kämpfe ich mich noch durch die ganzen Application Notes und
> Datenblätter, bei einer handfesten Platine bin ich noch nicht
> angekommen. ;-)

Der neue ARM-Connector für JTAG/SWD hat nur noch 10 Pins im 1.27mm 
Raster. Damit solltest Du nun wirklich keine Platzprobleme mehr haben:

http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm

fchk

von dirk h. (Gast)


Lesenswert?

Hatte gerade das gleiche Problem wie der TO. Ich konnte meinen STM32 
über die serielle mit der Arduino IDE flashen. Mit dem gleichen Aufbau 
und dem Flash Loader Demonstrator 2.9 (Tool) nicht.

nach ewigen Probieren:

COM Port Einstellung das Parity auf Even, ohne Parity kommt das Tool bei 
mir nicht klar.
Wenns dann immer noch gebuggt hat(habe nach jedem Versuch Reset 
gedrückt), musste ich folgendes machen:
Boot 0 und Boot 1 auf VDD, dann Reset, dann nochmal versuchen und die 
Fehlermeldung vom Tool abwarten.
Anschließend Boot 1 GND (Boot 0 auf VDD lassen), Reset und dann gings.
Und nur so, auch PowerOn, Tool neustarten, usw, nichts brachte was.

9600 Baud ging danach auch.

Einfach nur Schrott das Tool von STM.

Ich hoffe ich helfe damit jemand (Verzweifelten)!

MFG

von A.. P. (arnonym)


Lesenswert?

Das Tool von ST ist kein Schrott, sondern funktioniert wie definiert und 
vorgesehen. Wenn der Controller nicht vermurkst wurde und die 
Einstellungen korrekt gewählt wurden (8 Daten-Bits, Even Parity, 1 
Stop-Bit), dann funktioniert der Flash-Loader wie

von A.. P. (arnonym)


Lesenswert?

Das Tool von ST ist kein Schrott, sondern funktioniert wie definiert und 
vorgesehen. Wenn der Controller nicht vermurkst wurde und die 
Einstellungen korrekt gewählt wurden (8 Daten-Bits, Even Parity, 1 
Stop-Bit), dann funktioniert der Flash-Loader wie vorgesehen. Die 
Baudrate ist in einem großen Spektrum zweitrangig, da der USART des STM 
eine automatische Baudratenerkennung hat.

Gruß

von W.S. (Gast)


Lesenswert?

dirk h. schrieb:
> Ich hoffe ich helfe damit jemand (Verzweifelten)!

So?

Guck lieber mal in Projekte&Code rein. Dort findest du nen STM32Fxxx 
Programmer von mir, den ich selber fast täglich benutze - und deshalb 
weiß ich, daß er funktioniert.

Beitrag "STM32Fxxx Bootlader Programmer STM32Prog"

W.S.

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
Noch kein Account? Hier anmelden.