NXP i.MX RT1052 時鐘配置

NXP i.MX RT1052 時鐘配置

RT1052 共有 7 個 PLL 鎖相環電路,分別爲 ARM PLL(PLL 1)、System PLL(PLL 2)、USB1 PLL(PLL 3)、Audio PLL(PLL 4)、Video PLL(PLL 5)、ENET PLL(PLL 6) 、USB2 PLL(PLL 7)

//開啓 Video PLL鎖相環時鐘 輸出, (註釋掉, 關閉 Video PLL鎖相環時鐘 輸出)
CCM_ANALOG->PLL_VIDEO |= CCM_ANALOG_PLL_VIDEO_ENABLE_MASK;
在 CLOCK_InitArmPll 函數中也有 開啓 指定 PLL鎖相環時鐘 輸出

24MHz -> PLL時鐘 -> PFD時鐘 -> 生成根時鐘(作內核或外設的時鐘源)
24MHz -> PLL時鐘 -> 生成根時鐘(作內核或外設的時鐘源)

PLL時鐘生成配置:
const clock_arm_pll_config_t armPllConfig_BOARD_BootClockRUN = {
.loopDivider = 88, /* PLL loop divider, Fout = Fin * (88/2.0) */
};
CLOCK_InitArmPll(&armPllConfig_BOARD_BootClockRUN);//1056MHz
PLL 頻率計算公式:
ARM_PLL = Fin * DIV_SELECT/ 2.0

PFD時鐘生成配置:
CLOCK_InitUsb1Pfd(kCLOCK_Pfd0, 24);
PLL3 PFD0 頻率計算公式:
PLL3*18/24 = 360MHZ.

根時鐘生成配置:
1.時鐘輸入源選擇
CLOCK_SetMux(kCLOCK_PeriphClk2Mux, 0);
0-選擇(CCM Clock Tree圖)中的相應選擇器的第一個時鐘輸入源
1-選擇(CCM Clock Tree圖)中的相應選擇器的第二個時鐘輸入源
2.分頻
CLOCK_SetDiv(kCLOCK_PeriphClk2Div, 0);
0-不分頻, 1-2分頻, 2-3分頻, 以此類推

初始化開發板時鐘
1.保存 RTC OSC(32768Hz)和 XTAL (24MHz)的頻率
2.設置 OSC(24MHz)時鐘作爲 ARM Core Clock的根時鐘(AHB_CLK_ROOT)。系統啓動後 PLL鎖相環輸出時鐘還未設置,爲了保證 CPU穩定運行,首先使用 OSC(24MHz)作爲系統時鐘,當 PLL鎖相環時鐘設置完成並且時鐘輸出穩定後再進行時鐘切換。
注意: 最開始我沒有做任何設置, 但分頻器的值不爲0; CBCDRPERIPH_CLK2_PODF, CBCDRAHB_PODF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章