CH32V003 RC-Oscillator / Jitter

OP #7653221
Lesenswert?
• ▲
▼

Moin da draussen,

Hat schon mal einer einen Blick auf den internen RC Oszillator des CH32V003 geworfen?

Das Bild zeigt den MCO Ausgang an PC4 wenn der den HSI ausgibt. Das sieht ja grauselig aus.

Das uebschwingen ist okay, liegt daran das ich mit Pigtail am Tastkopf arbeite, war mal faul. Aber wie kann es sein das der fuer genau vier Perioden so rumjittert und sich dann wieder faengt?

Schaltung sieht so aus:

Beitrag "CH32V003 Minimales Testboard"

Man koennte einwenden das ich den 100nF besser haette plazieren koennen, deshalb hab ich nochmal einen zweiten direkt ueber die Versorgunganschluesse am Controller geloetet. Es ist auch egal ob ich die Spannung zwischen 3.3V und 5V variiere oder das Dingen mal mit Kaeltespray bearbeite.

Vanye

Angehängte Dateien:
OP #7653253
Lesenswert?
• ▲
▼

Okay, erstmal ich fand es auch haesslich. Darum hab ich mich doch mal aufgerafft mit Massefeder mal ordentlich zu messen. Da sieht man gleich mal warum sowas wichtig ist!

Eventuell hat das Teil einen jitter-armen rc Oszillator und eine jitter-reiche spar-PLL, die jeden 4. Takt wieder eingefangen wird?

In dem Teil ist ja eine PLL drin. Nennt der Hersteller jedenfalls so. Kann aber nur x2 und nix anderes. Die MCU selbst laeuft auch damit, also mit 48Mhz! Aber natuerlich kam mir auch zuerst der Gedanke das es an der PLL liegt, deshalb zeigt Bild auch den HSI.

Man sollte ja meinen das man da nicht viel falsch machen kann:

1
  uint32_t temp;
2
  RCC->APB2PCENR |= RCC_APB2Periph_GPIOC;
3

4
  //PC4 als PushPull alternate function ausgang
5
  GPIOC->CFGLR &= ~((uint32_t)0xf<<(4*4));                     
6
  GPIOC->CFGLR |= (GPIO_Speed_50MHz | GPIO_CNF_OUT_PP_AF)<<(4*4);
7

8
  //MCO aktivieren
9
  temp = RCC->CFGR0;
10
  temp = temp & (~RCC_CFGR0_MCO);
11
  temp = temp | RCC_CFGR0_MCO_HSI; //interner RC Oszillator
12
  RCC->CFGR0 = temp;

Dabei wollte ich nur kurz die Frequenz messen weil ich den Eindruck hatte als wenn die mit 5% ganz schoen weit daneben liegt. :)

Vanye

Angehängte Dateien:
OP #7653762
Lesenswert?
• ▲
▼

Obiges Bild ist ja entstanden als der HSI eingeschaltet war (24Mhz) und die PLL daraus 48Mhz gemacht hat und damit lief dann die MCU.

Ich hab mal ein bisschen mit den Einstellungen rumgespielt, also MCU ohne PLL laufen lassen, in der StartConfiguration oder mit unterschiedlichen Waitstates auf das Flash. Jede dieser Einstellungen veraendert den Jitter auf den 24Mhz, aber er verschwindet nie. Daher neige ich mich der Vorstellung zu das die MCU einfach Murks ist. Ich glaube das irgendwo auf dem MCU die Signale aus anderen Bereichen rueberkoppeln.

Vanye

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.