STM3e2F051 Programm nur über ST-LINK startbar

OP (Firma: KHTronik) #4112636
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
OP (Firma: KHTronik) #4112711
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
OP (Firma: KHTronik) #4112827
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
OP (Firma: KHTronik) #4113296
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.