STM3e2F051 Programm nur über ST-LINK startbar

OP (Firma: KHTronik) #4112636
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
Gast
>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?
OP (Firma: KHTronik)
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)
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)
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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.