Forum: Mikrocontroller und Digitale Elektronik STM3e2F051 Programm nur über ST-LINK startbar


von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo,
ich habe eine kleine Schaltung mit einem STM32F051K6T6 aufgebaut, das 
HEX-File mit ST-LINK in den Flash geschrieben und mit ST-LINK einen Core 
Reset ausgelöst. In dieser Konstellation läuft das Programm einwandfrei.
Wenn ich jetzt die Verbindung zum ST-LINK (SWD) löse und den Prozessor 
durch aus- und anschalten der Betriebsspannung neu starte, läuft das 
Programm nicht. Erst wenn ich jetzt den ST-LINK verbinde und einen core 
reset auslöse ist wieder alles OK.
BOOT0 ist auf 0 (VSS), so dass aus dem Flash gestartet wird. Da mein 
SWD-Anschluss kein Reset hat, sollte es nicht an der Bootkonfiguration 
liegen können.
Hat irgend jemand eine Idee, wie dieses Verhalten, das ich in ähnlichen 
Schaltungen mit dem gleichen Prozessor nicht hatte, zu erklären ist?
Grüße, Kurt

von holger (Gast)


Lesenswert?

>Hat irgend jemand eine Idee, wie dieses Verhalten, das ich in ähnlichen
>Schaltungen mit dem gleichen Prozessor nicht hatte, zu erklären ist?

Du hast nicht zufällig Semihosting aktiviert?

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo Holger,
wenigstens nicht bewusst :-). Und in dem kleine Programm gibt es keinen 
einzigen print. Dass ein print in den HAL_...-Funktionen versteckt ist, 
nehme ich nicht an.
Zusatzinfo: Das Programm wartet auf eine Sequenz aus 2 Zeichen (UART1), 
liest dann 2 ADC-Kanäle und sendet die Daten über UART1 raus.
Grüße, Kurt

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo,
nach einigen weiteren Versuchen hat sich herausgestellt, dass das 
Programm doch gestartet wird. Allerdings erfolgt dieser Start nur, wenn 
die Spannungsversorgung direkt an der Schaltung/dem Prozessor 
unterbrochen wird. Die Schaltung, ein Stromsensor für Telemetrie an 
einer FrSky Taranis, wird aber eigentlich vom Empfänger versorgt. 
Schalte ich die Empfängerversorgung aus und wieder ein, läuft das 
Programm nicht, schalte ich dann die Schaltung aus und wieder ein, läuft 
alles bestens.
Soweit der Zwischenstand. Ich werde über eine endgültige Lösung 
berichten :-).
Grüße, Kurt

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo,
wie versprochen hier die endgültige Lösung:
Da der Sensor sowieso einen WatchDog bekommen sollte, wurde mit dem auch 
gleich das Startproblem gelöst. Sollte das Eingangssignal am UART nicht 
erkannt werden, erfolgt nach ca. 1s ein Reset vom WatchDog und alles ist 
OK. Verwendet habe ich hierfür den indepedant WatchDog IWDG mit den 
HAL_-Funktionen.
Grüße, Kurt

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.