Falsche systemfrequenz an stm32f4discovery?

OP #4059513
Lesenswert?

Hi!
Ich versuche gerade die sys_clk auf dem MCO1 pin (A8) auszugeben
Dazu verwende ich die codezeile
1
RCC_MCO1Config(RCC_MCO2Source_SYSCLK, RCC_MCO1Div_1);

An A8 kann ich aber nur 16MHz messen, wenn ich den divider auf 2 setze, 
kommen 8MHz raus, also sollte es kein messfehler sein. Der PLL ist 
richtig eingestellt wie im einstieg in emblocks Artikel (168mhz), meine 
IDE ist EMBlocks.

Kennt ihr sonstige theoretische Fehlerquellen?
(Firma: matzetronics) #4059618
Lesenswert?

Lies kurz mal Kapitel 7.2.10 im RM0090 Reference Manual.
Du kannst eine der 4 Clocks
–     HSI clock
–     LSE clock
–     HSE clock
–     PLL clock
am PA8 ausgeben, aber nur, solange sie nicht 100 MHz übersteigt. Sys_Clk 
ist also nicht dabei.
Sys_Clk wäre an MC02 verfügbar, aber auch nur, wenn sie unter 100MHz 
bleibt.

Leon Loeser schrieb:
> RCC_MCO1Config(RCC_MCO2Source_SYSCLK, RCC_MCO1Div_1);
                        ^
Wofür meinst du, steht da MC02?
OP #4059761
Lesenswert?

danke für die hilfe!
das mit mco2 war wohl ein tippfehler (oder falsche nutzung der 
autovervollständigung in emblocks^^
Wen ich an mco2 den HSE nehme, bekomme ich auf jeden fall die richtige 
quarz frequenz. Ich mach mich dann mal daran, die frequenz mit nem timer 
zu prüfen^^

EDIT: Ok, die frequenz stimmt, habe mit timer2 die frequenz auf 168Hz 
runtergeteilt und toggle damit einen pin, der dann die frequenz 84Hz 
hat.
Problem: Wenn ich den prescaler und die periode sehr tief senke (beide 
2(-1)), ist die maximale pinfrequenz 500kHz. Ist das ne begrenzung des 
timers?
Das ganze ist (momentan) interrupt betrieben, kann es daran liegen?

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