IMX6ULL 时钟系统与 EPIT/GPT 定时器原理与配置

IMX6ULL裸机开发:时钟系统与EPIT/GPT定时器知识点总结

一、基础概念

  1. 时钟Clock:产生稳定周期性振荡信号,为数字电路提供时序基准。
  2. 定时器Timer:对已知频率时钟计数,实现定时、延时、事件计数。
  3. RTC实时时钟:主电源关闭后依靠后备电源继续提供日历时间。
  4. 时钟硬件单元
    • 晶体振荡器:石英晶体,施加电压输出稳定振荡,IMX6ULL外部24M晶振。
    • PLL锁相环 :对输入时钟做倍频,提升频率。
    • Prescale预分频器 :对时钟做分频,降低频率。
    • PFD相位分数分频器:分数分频,输出频率可升高或降低。

二、IMX6ULL时钟树与PLL配置

  1. 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。
  2. ARM PLL安全配置流程(重要) 1)先选择osc_clk,step_clk临时为24MHz; 2)把ARM内核临时切换到step_clk(24MHz),避免直接修改高频PLL导致内核故障; 3)先配置PLL后端二分频,再设置倍频因子,配置到1056MHz; 4)最后切回pll1_main_clk作为ARM内核时钟。
  3. 主要根时钟与寄存器
    • AHB_CLK_ROOT(132M):CBCMRCBCDR寄存器,高速外设总线时钟。
    • IPG_CLK_ROOT(66M):CBCDR[IPG_PODF],低速外设时钟。
    • PERCLK_CLK_ROOT(66M):CSCMR1,供给定时器等外设。

三、定时器EPIT、GPT

1.51单片机定时器回顾

8位自动重装;16位需要在中断服务函数中手动重装初值。

2.EPIT 增强型周期中断定时器

  • 32位向下递减计数器,12位预分频。
  • 核心用途:周期性定时中断;例:1秒定时中断翻转LED。
  • 计数到0自动重载初值,产生中断;无输入捕获、输出比较功能

3.GPT通用定时器

‑32位向上计数器,支持自由运行模式。 ‑具备输入捕获、输出比较功能;可实现脉冲测量、PWM输出。 ‑实验场景:自由运行模式编写精准软件延时函数。

区分:EPIT专注简单周期中断;GPT功能丰富,适合测量、信号输出。

相关推荐
乌暮1 小时前
Java 抽象类与接口详解:半成品图纸 vs 能力合同
java·开发语言·后端·学习
AAA代码批发商1 小时前
Days 47 IMX6ULL 裸机开发:按键轮询实验 + 外部中断原理剖析(上)
笔记·学习·imx6ull·裸机开发·#arm中断
一条破秋裤1 小时前
Hi3516CV610 20S V4 开发板启动与调试流程
学习
sunoo-2291 小时前
【ARM嵌入式学习笔记Day6】一文打通i.MX6ULL时钟体系:PLL/PFD/预分频+滞回比较器全解析
arm开发·笔记·vscode·单片机·imx6ull·汇编语言
P.D.Wei2 小时前
[Leetcode 3524] 求出数组的X值I
python·学习
边境悍匪2 小时前
蜗牛学苑 Java 智能体学习 Day46|贯穿项目 2 思维导图复盘
java·开发语言·vue.js·学习·spring
M78佐菲10 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
无敌贵点大王12 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
是翎14 小时前
深度长文|2026产品经理AI实践手册
人工智能·深度学习·学习·自然语言处理·数据挖掘