Forum: Mikrocontroller und Digitale Elektronik Wozu dient das AFIOEN Bit beim STM32F1 ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bei STM32F1 gibt es das Bit AFIOEN. Irgendwie habe ich noch nicht 
verstanden, was genau durch dieses Bit eingeschaltet wird.

Ich habe im Referenzhandbuch gelesen, dass man damit den Takt für 
alternative Funktionen einschaltet.

Aber die seriellen Ports, PWM und die SWJ Schnittstelle funktionieren 
auch ohne das Bit zu setzen. Andererseits muss ich das Bit aber setzen, 
BEVOR ich JTAG oder SWD deaktivieren kann.

Ich muss irgend einen wichtigen Hinweis übersehen haben, nur welchen?

: Bearbeitet durch User
von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Ich muss irgend einen wichtigen Hinweis übersehen haben, nur welchen?

vielleicht hilft das weiter:

To read/write the AFIO_EVCR, AFIO_MAPR and AFIO_EXTICRX registers, the 
AFIO clock should first be enabled.

Findet sich zu Beginn des Kapitels 9.4: Alternate Function IO Registers

Stefan U. schrieb:
> Andererseits muss ich das Bit aber setzen,
> BEVOR ich JTAG oder SWD deaktivieren kann.

Weil du dazu einen Zugriff auf AFIO_MAPR brauchst, um SWJ_CFG 
umzuschreiben (und der Zugriff geht nur, wenn die CLK dafür enabled 
ist).

Stefan U. schrieb:
> Aber die seriellen Ports, PWM und die SWJ Schnittstelle funktionieren
> auch ohne das Bit zu setzen.

Dann kommen die wohl auch ohne Zugriff auf AFIO_EVCR, AFIO_MAPR and 
AFIO_EXTICRX aus (z.B. gilt für SWJ_CFG: "The default state after reset 
is SWJ ON without trace").

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Das würde doch bedeuten, dass dieses Bit nicht wirklich den Takt für die 
alternativen I/O Funktionen aktiviert, sondern dass es den Zugriff auf 
die AFIO Register freischaltet.

Kann es sein, dass die Datenblätter+Referenzhandbuch von STM deutlich 
lückenhafter sind, als die von Atmel/Microchip? Je mehr ich damit 
arbeite, umso stärker wird dieses Gefühl bei mir.

von Markus M. (mmvisual)


Bewertung
0 lesenswert
nicht lesenswert
Das steht schon richtig so im Manual. Beim STM32 muss man für alles was 
man nutzen möchte die Clock's aktivieren. Wenn die nicht aktiv sind, 
können die Änderungen nicht nach "Taktende" synchronisiert ausgeführt 
werden.
-> ist der Clock off, ist es so als wäre die Peripherie nicht verbaut 
und braucht auch kein Strom.

von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Das würde doch bedeuten, dass dieses Bit nicht wirklich den Takt für die
> alternativen I/O Funktionen aktiviert, sondern dass es den Zugriff auf
> die AFIO Register freischaltet.

Ja, so liest es sich in der Note zu Beginn von Kapitel 9.4, und so würde 
es ja auch zu deiner Beobachtung passen. Ich selbst kanns leider nicht 
ausprobieren, ich habe kein passendes System zur Hand ;-)

Markus M. schrieb:
> -> ist der Clock off, ist es so als wäre die Peripherie nicht verbaut
> und braucht auch kein Strom.

Stimmt schon, aber die weitergehende Frage von Stefan ist, was genau zu 
der von AFIOEN betroffenen Peripherie zählt.

Ist z.B. "JTAG Teil der abgeschalteten Peripherie"? Oder ist in diesem 
Fall nur AFIO_EVCR, AFIO_MAPR and AFIO_EXTICRX die betroffene Peripherie 
(die man erstmal enablen muss, damit man JTAG disablen kann).

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
> Die weitergehende Frage von Stefan ist, was genau zu
> der von AFIOEN betroffenen Peripherie zählt.

Genau.

von Markus M. (mmvisual)


Bewertung
0 lesenswert
nicht lesenswert
Im Datasheet zum jeweiligen µC steht im Abschnitt "pin definitions" in 
der Spalte "Main function (atfter reset)" welche alternative Funktionen 
nach dem Reset aktiv sind. Darin sieht man dass JTAG und OSC aktiv ist.
Bei gesetztem ReadOut Protection jedoch kann das JTAG deaktiviert 
werden.

Wo das steht welche Peripherie nun genau das AFIOEN benötigt habe ich 
beim STM32F1 auch noch nicht gefunden. Das AFIOEN gibt es beim STM32F4 
nicht mehr, da war STM so schlau und bildet wohl das Signal selbst 
intern (anhand der aktivierten Clocks/AF-Funktionen).

Im Grunde aktiviert man das AFIOEN und gut ist. Ich habe mich daran auch 
noch nicht weiter gestört.
Will man Alternative Pinfunktionen nutzen -> AFIOEN setzen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.