Witam.
Odzywam się bardzo rzadko, bo czasu coraz mniej na hobby, ale tym razem muszę, bo zaraz nie będę miał czego rwać z głowy.
Do tej pory grzebałem w 8-bitowych AVR-ach i je rozumiałem. Postanowiłem liznąć ARM-a. Padło na Cortex M4, konkretnie płytkę Discovery z STM32F429ZI. Interesuje mnie wyłącznie assembler i od tej strony się do tego zabrałem, chcąc poznać rdzeń i dostępne peryferia.
Problem:
Podczas inicjacji MCU chcę ustawić SYSCLK=168MHz. Konfiguruję PLL następująco:
wejście = HSE, kwarc 8MHz PLL_M = 4 PLL_N = 168 PLL_P = 2 PLL_Q = 7
Na razie rdzeń zasilam prosto z HSE, a na MCO1 i MCO2 wypluwam sobie wyjście PLL/4 oraz (dla porównania) SYSCLK/4.
SYSCLK wynosi 8MHz, co nie budzi wątpliwości, natomiast PLL nie potrafię zmusić, by zachowywała się zgodnie z dokumentacją. Przy powyższych dzielnikach mam za nią ok. 46.4MHz:
Źródła, na których się męczę: