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):CBCMR、CBCDR寄存器,高速外设总线时钟。
    • 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功能丰富,适合测量、信号输出。

相关推荐
叼烟扛炮8 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
蒸蒸yyyyzwd8 小时前
学习笔记 八股手撕
笔记·学习
留岁11 小时前
大模型推理部署 · 学习文档
学习
Zevalin爱灰灰11 小时前
Linux入门第二部分(ARM裸机篇) 第二章 Cortex-A7 MPCore架构与ARM汇编基础
linux·汇编·arm开发·嵌入式
小李不想当小白11 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
陈飞EXCEL13 小时前
北京杰飞 IT 旗下妙码生花少儿Python编程上线两大学习系统
开发语言·python·学习
SLAM必须dunk13 小时前
Agent入门学习一
学习
承渊政道14 小时前
Linux网络学习【从NAT与代理服务理解网络转发、探索内网穿透原理、再到认识DNS与ICMP、最后动手部署并测试内网穿透】
linux·网络·学习·内网穿透·dns·nat
栉甜15 小时前
Vue2学习内容(上)
前端·javascript·vue.js·学习
shangjian00715 小时前
K8S学习-基础组件
学习·容器·kubernetes