Forum: Mikrocontroller und Digitale Elektronik Olimex STM32-H103 startet nach Spannungsverlust nicht mehr


von Mikel (Gast)


Lesenswert?

Hallo,

ich habe mir ein STM32-H103 Board von Olimex besorgt und darauf ein 
simples LED Blink Programm geschrieben. Allerdings funktioniert das 
Programm nach einen "Neustart" nicht mehr (ich habe die 
Batterieversorgung mittels Schalter unterbrochen und anschließend wieder 
hergestellt). Erst wenn ich das Programm erneut auf den Controller lade 
läuft es wieder.
Woran kann das liegen? Das Programm habe ich mit der Demoversion von 
Crosstudio geschrieben.

Danke
Mikel

von (prx) A. K. (prx)


Lesenswert?

Was das Programm im RAM oder im ROM?

von Mikel (Gast)


Lesenswert?

Im Flash Speicher. Das ist ja das seltsame.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Probiere es mal ohne JTAG, möglicherweise hält der den Reset auf Low 
fest wenn die PC-Software ihn nicht explizit auf High setzt. Falls das 
nicht hilft, überprüfe die Reset-Konfiguration des Controllers (ich 
kenne den STM32 nicht, deshalb weiß ich keine Details dazu).

von (prx) A. K. (prx)


Lesenswert?

Es gibt auch 2 Pins für die Bootsteuerung, die sowas bewirken könnten. 
Weiss nicht ob das bei Olimex auf Schalter oder Jumper gelegt ist.

von Mikel (Gast)


Lesenswert?

Es gibt zwei Jumper Boot1 und Boot0. Aktuell sind beide auf 0.

Boot1 Boot0
x     0        User flash memory
0     1        System memory
1     1        Embedded SRAM


User flash memory müsste doch stimmen oder?

von Mikel (Gast)


Lesenswert?

Achso: Habe es auch ohne JTAG versucht, ändert nichts.

von (prx) A. K. (prx)


Lesenswert?

Ach ja, ich seh's grad: die alte Crossworks-Nummer. Schau mal in die 
ersten Zeilen vom Quellcode des Startup-Files oder in die Notizen zum 
STM32 Support-Package rein, dann wird es klar.

Ohne entsprechende Definition läuft der Startup direkt in eine 
Totschleife, aus der der Debugger das Teil rausholt. Ohne Debugger 
bleibt er da drin gefangen. Hat mit einer Eigenheit des ARMschen JTAG zu 
tun, das den Kontakt zum Prozessor beim Reset verliert und erst mühselig 
wieder aufbauen muss.

Pfiffigere Geister als Rowley verwenden dort eine Zeitschleife.

von Mikel (Gast)


Lesenswert?

Danke, das war das Problem!

von Matze T. (gruetzwurschd)


Lesenswert?

Hallo Leute,

ich möchte das Thema nochmal aufwärmen.
Ich benutze Rowley und habe das selbe problem(anderes evalboard).
Anscheinend hat man ja das Problem gefunden. Leider ist mir nicht 
ersichtlich wie es nun gelöst wurde.

Folgendes hat bei mir nicht geholfen:
- von Jtag auf SWD umstellen
- in den properties bei entry point "reset_handler" eintragen.

kann vielleicht nochmal jemand für mich den entscheidenenden tip geben? 
:)

grüße Tarkan

von Matze T. (gruetzwurschd)


Lesenswert?

Hat sich erledigt. wer lesen kann ist klar im vorteil :)

Weiß jemand ob sich ein Nachteil ergibt, wenn man die Präprozessor 
definitions dauerhaft auf STARTUP_FROM_RESET lässt ?

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.