Forum: Mikrocontroller und Digitale Elektronik stm32 ADC Clock, Systemclock


von stm (Gast)


Lesenswert?

Ich hätte mal eine Frage zum ADC Clock. Der hängt ja am PCLK2 und kann 
durch einen Vorteiler noch herunter gesetzt werden. Nun sind die 
Standardkonfiguarationen des 1007VC (wenn ich das richtig ausgelesen 
habe) so eingestellt, dass der PCLK2 mit 72 MHz läuft.

#define SYSCLK_FREQ_72MHz  72000000
    /* HCLK = SYSCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
    /* PCLK2 = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;




Ein ST Beispiel (ADC) teilt diesen dann durch 4 => 18MHz.

  #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined 
(STM32F10X_HD_VL)
    // ADCCLK = PCLK2/2
    RCC_ADCCLKConfig(RCC_PCLK2_Div2);
  #else
    // ADCCLK = PCLK2/4
    RCC_ADCCLKConfig(RCC_PCLK2_Div4);
  #endif



Im Datenblatt steht als Maximale Frequenz allerdings 14 MHz. Kann ich 
den ADC jetzt höher betreiben, muss ich runter auf Teiler 6 = 12MHz oder 
wo habe ich was überlesen?



Außerdem mal noch die Frage: kann der Sysclock eigentich auf annähernd 
72Hz gebracht werden wenn ein externer 25MHz angeschlossen ist oder 
empfiehlt es sich doch eher einen 8MHz Oszillator anzuschließen?

von stm (Gast)


Lesenswert?

man möge mir Verzeihen, ich habe natürlich nur den 107 ^^ (ich war schon 
wieder zu weit in der Zukunft).

von Martin Antoni (Gast)


Lesenswert?

Bin auch gerade an diesem Thema, also ich würde mich an das Datenblatt 
halten, ich betreibe ihn mit 12Mhz.

Bei einem 25MHz Quarz könntest du ihn auf 75MHz laufen lassen, dieses 
Übertakte müsste er aushalten.

von stm (Gast)


Lesenswert?

Ja, ist aber halt offiziell außerhalb der Spzifikation, deswegen wundere 
ich mich, das alle Hersteller verbauen (und ich glaube irgendwo ist er 
im Datenblatt auch angepriesen). Ich meine der Takt passt ja zu gar 
nichts (außer zur maximal zulässigen Beschaltung).

von stm (Gast)


Lesenswert?

Ich sehe gerade ich habe mich etwas zu sehr am am Guide orientiert, 
scheinbar bieten die 105/ 107 noch gebrochene Teilerwerte an.

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Mit 25 MHz ext. Clock musst du den ADC mit 12,5MHz betreiben den Kern 
mit 50MHz oder experimentell mit 75MHz.Die 75MHz werden ziemlich sicher 
funktionieren, vor allem wenn man Vcc aufs Maximum einstellt.

Grüsse

von stm (Gast)


Lesenswert?

Gut danke, ich habe trotzdem noch mal etwas weiter gesucht und das hier 
gefunden^^, der Aufbau scheint zu stimmen wenn ich mir das Datenblatt 
ansehe:


STM3210E what causes need of using second PLL to produce CPU 72MHz.

HSE == 25MHz   /  PREDIV2 == 5 -> 5MHz   *  PLLMUL2 == 8 ->
40MHz / PREDIV1 == 5 -> 8MHz * PLLMUL == 9 -> 72MHz = SYSCLK

It's looks ugly but above method it's used in ST source code for 
STM3210C
evaluation board.




Quelle:
http://old.nabble.com/R%3A-STM32F107-on-STM3210C-EVAL-p31261340.html

von stm (Gast)


Lesenswert?

Wenn ich mich jetzt nicht vertan habe sollte ein 14Mhz ADC dann so 
funktionieren:

//  HSE ==25MHz     /  RREDIV2 == 5 -> 5MHz   *  PLLMUL2 == 14 ->
//  70MHz / PREDIV1 == 5 -> 14 MHz * PLLMUL == 5 -> 70 MHz = SYSCLK

Dadurch wird allerdings der PLL2CLK unbrauchbar, da er auf 70Mhz läuft.

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.