#c #embedded #arm #clock
#c #встроенный #arm #тактовая частота
Вопрос:
Я работаю над компилятором IAR для платформы FRDM-KL46Z. Я хочу использовать внутреннюю тактовую частоту и установить ее на 48 MHz
(или как можно более максимальную). До сих пор я выполнял следующие шаги в sysinit.c
предоставленном файле примера и функции sysinit()
.
#define NO_PLL_INIT
#if defined(NO_PLL_INIT)
mcg_clk_hz = 48000000; // It only works on 21000000 Hz, otherwise I get garbage prints on UART0.
SIM_SOPT2 amp;= ~SIM_SOPT_PLLFLLSEL_MASK
uart0_clk_khz = (mcg_clk_hz) / 1000;
#else
....
В режиме FEI, если я использую режим FBI или режим BLPI, я получаю очень меньшую частоту mcu.
Я хочу, чтобы clk mcu был как можно выше во внутренней тактовой частоте. (Согласно спецификации, я думаю, что это поддерживается, но я не знаю как?)
Может кто-нибудь, пожалуйста, объяснить или какую-либо ссылку на код, очень благодарен.
Комментарии:
1. Дополнительная информация: это Freescale ARM Cortex M0 , семейство KL4x. И поскольку это вопрос, зависящий от конкретного оборудования, вы, вероятно, получите лучшие ответы в сообществе. freescale.com .
Ответ №1:
Исправлено, выполнив это
#define NO_PLL_INIT
#if defined(NO_PLL_INIT)
MCG_C4 |= (MCG_C4_DRST_DRS(1) | MCG_C4_DMX32_MASK);
mcg_clk_hz = 48000000;
SIM_SOPT2 amp;= ~SIM_SOPT_PLLFLLSEL_MASK
uart0_clk_khz = (mcg_clk_hz) / 1000;
#else
....