Forum: Mikrocontroller und Digitale Elektronik STM32F0 Verständnisproblem Clock Konfiguration bzw. Clock Tree


von technikus (Gast)


Angehängte Dateien:

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

von Ludwig (Gast)


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...

von Sebastian E. (sbe_15)


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.

von technikus (Gast)


Lesenswert?

Oder gehört das Rhema eher nach "Compiler und IDEs"?

Erstellen eure IDEs auch einen Startup Code der meinem entspricht?

von Markus M. (adrock)


Lesenswert?

Hi,

es gibt doch ein clock config tool welches den entsprechenden 
Startup-Code generiert. Ist zwar schon ein wenig EOL, da es jetzt auch 
Cube gibt, aber hat bei mir gut funktioniert:

http://www.st.com/en/development-tools/stsw-stm32088.html

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.