IMX6ULL裸机开发:时钟系统与EPIT/GPT定时器知识点总结
一、基础概念
- 时钟Clock:产生稳定周期性振荡信号,为数字电路提供时序基准。
- 定时器Timer:对已知频率时钟计数,实现定时、延时、事件计数。
- RTC实时时钟:主电源关闭后依靠后备电源继续提供日历时间。
- 时钟硬件单元
- 晶体振荡器:石英晶体,施加电压输出稳定振荡,IMX6ULL外部24M晶振。
- PLL锁相环 :对输入时钟做倍频,提升频率。
- Prescale预分频器 :对时钟做分频,降低频率。
- PFD相位分数分频器:分数分频,输出频率可升高或降低。
二、IMX6ULL时钟树与PLL配置
- PLL分类
- PLL1(ARM‑PLL):为Cortex‑A7内核提供时钟,可配置,寄存器
CCM_ANALOG_PLL_ARMn。 - PLL2(528‑PLL):固定输出528MHz,配套4路PFD,寄存器
CCM_ANALOG_PFD_528n。 - PLL3(480‑PLL):固定输出480MHz,配套4路PFD,寄存器
CCM_ANALOG_PFD_480n。 - PLL4~PLL7:音频、视频、以太网、USB2专用PLL。
- PLL1(ARM‑PLL):为Cortex‑A7内核提供时钟,可配置,寄存器
- ARM PLL安全配置流程(重要) 1)先选择osc_clk,step_clk临时为24MHz; 2)把ARM内核临时切换到step_clk(24MHz),避免直接修改高频PLL导致内核故障; 3)先配置PLL后端二分频,再设置倍频因子,配置到1056MHz; 4)最后切回pll1_main_clk作为ARM内核时钟。
- 主要根时钟与寄存器
- AHB_CLK_ROOT(132M):
CBCMR、CBCDR寄存器,高速外设总线时钟。 - IPG_CLK_ROOT(66M):
CBCDR[IPG_PODF],低速外设时钟。 - PERCLK_CLK_ROOT(66M):
CSCMR1,供给定时器等外设。
- AHB_CLK_ROOT(132M):
三、定时器EPIT、GPT
1.51单片机定时器回顾
8位自动重装;16位需要在中断服务函数中手动重装初值。
2.EPIT 增强型周期中断定时器
- 32位向下递减计数器,12位预分频。
- 核心用途:周期性定时中断;例:1秒定时中断翻转LED。
- 计数到0自动重载初值,产生中断;无输入捕获、输出比较功能。
3.GPT通用定时器
‑32位向上计数器,支持自由运行模式。 ‑具备输入捕获、输出比较功能;可实现脉冲测量、PWM输出。 ‑实验场景:自由运行模式编写精准软件延时函数。
区分:EPIT专注简单周期中断;GPT功能丰富,适合测量、信号输出。
