Guten Abend, ich beschäftige mich zur Zeit mit dem STM32F103RBT6 (Nucleo-Board) und habe ein Problem mit der JTAG-Schnittstelle: Laut Datenblatt und Reference Manual sind PB3 und PB4 nach dem Reset auf JTDO und NJTRST gemapped. Des Weiteren soll laut RM das CRL-Register vom GPIOB nach dem Reset 0x4444 4444 beinhalten. Nach dem Reset gibt der Controller jedoch 3.3V auf PB4 (JNTRST) aus, PB4 ist in den Registern als AF_Output_PP initialisiert und das ODR von GPIOB enthält eine 1. Warum ist das so? Das seltsame ist, dass der Takt für GPIOB und AFIO nicht angeschaltet ist. Muss ich tatsächlich jedesmal den Takt für AFIO und GPIOB anschalten und das auf PB3 und PB4 remappen und zusätzlich noch die 1 aus dem ODR löschen? Viele Grüße, Tim
:
Bearbeitet durch User
Wenn du diese Pins als normale I/O Pins verwenden willst, musst du den Takt für Port B und AFIO einschalten, dann JTAG abschalten. http://stefanfrings.de/stm32/index.html#swjdisable > Muss ich tatsächlich jedesmal den Takt für AFIO und GPIOB > anschalten und das auf PB3 und PB4 remappen Ja. > und zusätzlich noch die 1 aus dem ODR löschen? Da bin ich überfragt, hab ich nicht ausprobiert. Ich hatte diese Pins bisher nur als Ausgang verwendet. > Warum ist das so? Mit Sicherheit, weil der Chip-Designer von ST Microelectronics es so wollte. Ich denke: Es hängt damit zusammen, das die SWJ Schnittstelle per default aktiv sein soll und sowohl SWD als auch JTAG Protokoll unterstützen soll. Wenn das nicht so vorgegeben wäre, könnte man den Chip nicht über die JTAG Schnittstelle programmieren. Da JTAG eine Zeit lang total in Mode war, hätten einige Leute vielleicht andere µC bevorzugt, wenn bei STM32 das JTAG Interface nicht per default aktiv gewesen wäre.
Okay, vielen Dank für die Antwort. Eine Frage habe ich aber noch: Im reference manual steht folgendes: "9.1.1 General-purpose I/O (GPIO) During and just after reset, the alternate functions are not active and the I/O ports are configured in Input Floating mode (CNFx[1:0]=01b, MODEx[1:0]=00b). The JTAG pins are in input PU/PD after reset: PA15: JTDI in PU PA14: JTCK in PD PA13: JTMS in PU PB4: NJTRST in PU" Habe ich etwas übersehen? Bei mir ist nach dem Reset PB4 als AF-Output-PP konfiguriert. EDIT: Okay, alles hat seine Richtigkeit. Ich bin bei dem Auslesen der Register in der Zeile verrutscht.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.