mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32F405 clocktree und USART


Autor: Detlef _A (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe kundige ARM Kenner,

ich dachte immer laut ARM Cortex Reference manual figure 21, der USART1 
clock hängt über den AHB- und APB-prescaler an der SYSCLK.

Falls ich an der PLL rumschraube ändert sich SYSCLK und die Timerclocks 
aber USART1 läuft nach wie vor super.

Umgekehrt: Falls ich HSE ändere und die SYSCLK über die PLL konstant 
lasse passt die Baudrate nicht mehr. Der USART1 clock scheint also an 
HSE und nicht an SYSCLK zu hängen.

Das steht im Referance manual anders.
Wo ist denn da mein Verständnisproblem?

THX
Cheers
Detlef

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Der USART1 clock scheint also an
>HSE und nicht an SYSCLK zu hängen.

Mit welchem Befehl schaltest du den Takt für die UART Peripherie ein?
Daran kannst du erkennen wo der UART dran hängt.

Autor: Torsten C. (torsten_c) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nicht ganz verstanden was Du machst. Vielleicht postetst Du mal 
zwei CubeMX-Screenshots Deiner Varianten?

Auch falls man die HAL-API nicht nutzt, ist CubeMX eine nette 
Möglichkeit, die Pin-Funktionen und den Clock-Tree festzulegen und zu 
dokumentieren.

Autor: Detlef _. (detlef_a)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier mal die Initialisierung des UART1, habe ich irgendwoher adaptiert, 
geht auch. Ebenfalls der clock tree aus dem Reference Manual angehängt. 
USART1 hängt festverdrahtet an APB2 und der fest an SYSCLK, USART clock 
dürfte sich also nicht ändern falls sich SYSCLK nicht ändert, tut er 
aber.

AHB1 muss man auch noch bespielen, warum verstehe ich nicht richtig, 
aber der hängt ja auch an SYSCLK.

Ja, CubeMX, lohnt sich die Einarbeitung.

hmhm
Cheers
Detlef

Autor: Torsten C. (torsten_c) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Detlef _. schrieb:
> USART clock dürfte sich also nicht ändern falls sich SYSCLK nicht ändert,
> tut er aber.

Um die Möglichkeit "falsch gemessen" auszuschließen:

Woran machst Du die Aussage fest? Per Oscar/LA?

Autor: Detlef _. (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

>>Woran machst Du die Aussage fest? Per Oscar/LA?

An der SYSCLK hängt auch noch ein Zähler, der Interrupts generiert. Wenn 
ich dann HSE ändere ( 10MHz TCXO statt 8MHz Q ) aber SYSCLK gleich 
bleibt ( weil ich die PLL modde ), dann kommen die Interrupts in der 
gleichen Frequenz. Nur der UART gibt in einer anderen Baudrate aus, 
72kBd statt 57.6kBd vorher, also der passende Faktor.

Habs' inzwischen umschifft, indem ich die Baudrate entsprechend ändere. 
Verstanden ist das allerdings nicht, beunruhigend.

THX
Cheers
Detlef

Autor: bbb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm,
änderst du denn auch die HSE-Frequenz in der system_32f4xx.c? Denn 
zumindest bei den Treibern für den F407 (STM32-discovery) rechnet sich
  USART_Init(USART1, &USART_InitStruct);
die Teilerfaktoren für die Baudratenregister aus den Angaben in der 
system_32f4xx.c aus. Wenn du also in dieser Datei an den PLL-Teilern 
spielst, wird das bei der Initialisierung des USARTS berücksichtigt. 
Wenn du einfach einen anderen HSE dranlötest und das nicht in der Datei 
änderst, stimmen die Baudraten nicht mehr.

Hätte ja sein können
bbb

Autor: Detlef _. (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

>>>Hätte ja sein können

War.

Hier  \lib\stm32f4xx.h steht bei mir der HSE Wert (8Mio) drin, hatte ich 
nicht gesehen, steht auch im filesystem ne Ebene tiefer, allerdings 
Hinweis in \system_stm32f4xx.c . Probier ich morgen mal aus.

Vielen Dank.
Cheers
Detlef

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.