stm32 ADC Clock, Systemclock

Gast #2275808
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?
Gast #2275816
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.
Gast #2275823
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).
Gast #2275849
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
Gast #2275942
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.