Forum: Mikrocontroller und Digitale Elektronik STM32F100 Discovery -- habe ich mich ausgesperrt?


von Georg (Gast)


Lesenswert?

Hallo,

ich habe ein STM32F100 Discovery Board mit dem STM32F100RBT6B darauf. Da 
ich an PA13, PA14 und PA15 ein Display angeschlossen habe, habe ich 
diese Pins (die ja für SWJ sind) als normale GPIOs konfiguriert, so wie 
Stefan es hier gezeigt hat: http://stefanfrings.de/stm32/
1
// Enable clock for alternate functions
2
SET_BIT(RCC->APB2ENR, RCC_APB2ENR_AFIOEN);
3
    
4
// Disable both SWD and JTAG to free PA13, PA14, PA15, PB3 and PB4
5
MODIFY_REG(AFIO->MAPR, AFIO_MAPR_SWJ_CFG, AFIO_MAPR_SWJ_CFG_DISABLE);

Leider kann ich jetzt den Mikrocontroller nicht mehr programmieren. Habe 
ich mich ausgesperrt, oder gibt es noch Hoffnung?

Viele Grüße,
Georg

von Jim M. (turboj)


Lesenswert?

In der Software für den ST-Link: "Connect under Reset" [x].

von STM Apprentice (Gast)


Lesenswert?

Jim M. schrieb:
> In der Software für den ST-Link: "Connect under Reset"

... und vorher aber das Display abklemmen.

von Stefan F. (Gast)


Lesenswert?

Georg, kannst du mal schauen, ob ich das auf meine Homepage jetzt klarer 
beschrieben habe?

von Georg (Gast)


Lesenswert?

Hallo,

Danke für die Hinweise, aber leider fehlt in meinem ST-Link der Eintrag 
"Connect under Reset". Es gibt dort nur "System mode reset" und "core 
reset" zur Auswahl. Woran kann das liegen?

@Stefanus: ja, jetzt ist es verständlich und klar geworden. Vielen Dank.

Gibt es noch andere Möglichkeiten, z.B. die Boot-Pins umzulegen, sodass 
der Mikrocontroller beim Start das Programm nicht ausführt und ich dann 
zumindest den Flash löschen kann?

Oder könnte ich über UART noch programmieren?

Viele Grüße,
Georg

von chris (Gast)


Lesenswert?

Jim M. schrieb:
> In der Software für den ST-Link: "Connect under Reset"

Alternativ BOOT 0 und BOOT 1 so jumpern, dass er den Bootloader startet.
Dadurch wird dein Code, der das SWD deaktiviert, nicht ausgeführt und du 
kommst mit SWD wieder drauf.

von Stefan F. (Gast)


Lesenswert?

Georg schrieb:
> leider fehlt in meinem ST-Link der Eintrag "Connect under Reset"

Das finde ich seltsam, denn in der Doku steht:
"The “connect under reset” option makes it possible to connect to
the target before executing any instruction. This is useful in many
cases like when the target contains a code that disables the JTAG/SWD
pins. "

"18-Oct-2011 Added support of “Connect under reset” option"

https://www.st.com/content/ccc/resource/technical/document/user_manual/e6/10/d8/80/d6/1d/4a/f2/CD00262073.pdf/files/CD00262073.pdf/jcr:content/translations/en.CD00262073.pdf

Hast du vielleicht eine extrem alte Softwareversion installiert?

> Oder könnte ich über UART noch programmieren?

Ja.

von Georg (Gast)


Lesenswert?

Hallo,

habe das Problem jetzt so gelöst, dass mir eingefallen ist, dass die 
Software erst nach ein paar Millisekunden das SWJ deaktiviert. Daher 
habe ich dann den Controller mit dem Reset-Button resettet und 
währendessen geflasht (Mit einem Programm, welches SWJ nicht 
deaktiviert). Nach ein paar Versuchen hat es geklappt, diese Software zu 
flashen und jetzt funktioniert wieder alles ganz normal. Danke für die 
Unterstützung.

Die Version von ST-Link hatte ich vor ein paar Tagen installiert und da 
direkt von der ST-Webseite runtergeladen. Sollte also eigentlich eine 
relativ neue Version sein. Habe Win10. Kann das damit zusammen hängen?

Wie kann man über UART programmieren? (Nur so aus Interesse).

von Stefan F. (Gast)


Lesenswert?

Ich habe das auf meiner Homepage beschrieben. Schau sie dir nochmal an.

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.