STM32F0 Verständnisproblem Clock Konfiguration bzw. Clock Tree

Gast #4918917
Lesenswert?

Hallo Forum,

ich beschäftige mich hobbymäßig nun einige Wochen mit den STM32.
Hierzu nutze ich ein STM32F0 Discovery, Visual GDB und die HAL Lib.

Visual GDB bietet bei Erstellung eines Projektes eine Option zur 
Einstellung der Arbeitsfrequenz an. Dort arbeite ich mit dem Default von 
8MHz.
Bei Konfigurationen von TIM2 als PWM Timer oder mit ISR bei Überlauf 
habe ich eine LED angesteuert und mal ans Oszilloskop gehangen.
Die Messungen haben ergeben, dass der Timertakt mit einem Vorteiler von 
2 betrieben wird.
Daraufhin habe ich versucht mich eingehender mit dem Clock Tree 
auseinander zu setzen (siehe Anhang).
Die Konfiguration findet in der angehangenen system_stm32f0xx.c statt.

Jetzt hänge ich schon sehr lange drüber und verstehe nur Bröckchen:

HSI => Interner RC Oszillator
HSE => Externer Oszillator

Bei der Fülle an defines drehe ich mich nur im Kreis!

Können wir hier zusammentragen:
- was, wo, wie angepasst werden MUSS, damit ich den internen oder 
externen Oszillator nutze
- wie ich die PLL nutze
- wo ich die Stelle im Code finde, warum der TIM2 Takt vorgeteilt wird 
(kann ja eigentlich nur HPRE sein???)


Ich bitte euch, keine Diskussion "Pro / Contra HAL Lib" zu führen und 
wäre euch sehr dankbar wenn ich den Zusammenhang bzw. die nötigen 
defines finde um meine Fragen zu beantworten.

Gruß
technikus
Angehängte Dateien:
Gast #4918945
Lesenswert?

technikus schrieb:
> Jetzt hänge ich schon sehr lange drüber und verstehe nur Bröckchen:
>
> HSI => Interner RC Oszillator
> HSE => Externer Oszillator
>
> Bei der Fülle an defines drehe ich mich nur im Kreis!

Installiere Dir mal das aktuelle CubeMX. Man muß sich damit keinen Code 
erzeugen, aber der Clock-Tree wird da interaktiv dargestellt. Mir hat 
das beim Verständnis enorm geholfen...
#4918961
Lesenswert?

Laut dem angehängten Diagram hängt der TIM2 hinter HPRE und PPRE.

Eine Sache, über die ich beim STM32F0 Nucleo gestolpert bin (und das 
scheint beim Discovery genau so zu sein), ist das am HSE kein Quarz 
hängt, sondern der MCO vom Debugger, über welchen der STM32F0 mit 8MHz 
versorgt wird. Wenn man den HSE nutzen will, muss der HSE_BYPASS 
aktiviert werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren