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
Eventuell hat das Teil einen jitter-armen rc Oszillator und eine jitter-reiche spar-PLL, die jeden 4. Takt wieder eingefangen wird? Auf jeden Fall sehr merkwürdig... Oder der jitter ist künstlich um die Abstrahlung zu kaschieren. (spread spectrum)
:
Bearbeitet durch User
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
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
Vanye R. schrieb: > Daher neige ich mich der Vorstellung zu das die MCU einfach Murks ist. Ich vermute, mehr war für 10ct/Stück einfach nicht drin. Und ich lehne mich nicht all zu weit aus dem Fenster wenn ich behaupte, das in 99.99% aller Anwendungsfälle der Jitter völlig zu vernachlässigen ist.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.