一、今天的主要学习内容时钟和时钟源PLL 锁相环Prescaler 分频器PFD 分数分频器i.MX6ULL 时钟树AHB、IPG、PERCLK 时钟51 单片机定时器EPIT 增强型周期中断定时器GPT 通用定时器EPIT 定时中断实验GPT 自由运行模式精准延二、什么是定时定时器本质上是一个计数器。它通过对一个频率已知的时钟信号进行计数实现定时 延时 周期性事件 事件计数 输入捕获 输出比较基本原理时钟信号 ↓ 分频 ↓ 定时器计数 ↓ 达到指定条件 ↓ 产生事件/中断例如输入时钟频率为1MHz那么1个时钟周期 1μs如果计数1000次那么1000 × 1μs 1ms因此定时器的核心就是“利用已知频率的时钟进行计数”。三、时钟 ClockClock即时钟。在数字系统中时钟是一个稳定、周期性变化的信号为处理器和各种外设提供统一的时间基准。可以把时钟理解成数字电路工作的“节拍”。例如_ _ _ _ _ \_/ \_/ \_/ \_/ \_每一次周期变化都可以作为数字电路进行一次操作或计数的时间基准。四、时钟源定时器要进行准确计时首先需要稳定的时钟源。常见的时钟源是晶体振荡器也就是利用石英晶体的压电效应产生稳定的振荡信号。基本过程石英晶体 ↓ 施加电信号 ↓ 晶体产生稳定振荡 ↓ 形成稳定时钟晶体振荡器具有较好的稳定性因此可以作为系统的基础时钟源。五、PLL锁相环PLLPhase Locked Loop锁相环。PLL 主要用于对输入时钟进行倍频从而得到更高频率的系统时钟。例如24MHz ↓ PLL ↓ 528MHz或者24MHz ↓ PLL ↓ 1056MHzPLL 可以理解为输入低频时钟 ↓ PLL ↓ 输出高频时钟六、Prescaler分频器Prescaler预分频器。作用是对输入时钟进行分频。例如66MHz ÷ 2 ↓ 33MHz或者66MHz ÷ 4 ↓ 16.5MHz因此PLL → 提高频率 Prescaler → 降低频率七、PFD分数分频器PFDPhase Fractional Divider分数分频器。它可以对 PLL 输出进行进一步的分频从而产生不同频率的时钟。例如528 PLL ↓ PFD ↓ 产生不同的外设时钟因此在 i.MX6ULL 中PLL ↓ PFD ↓ 各种外设时钟需要注意PFD 是Phase Fractional Divider即分数分频器。八、PLL、Prescaler、PFD的区别三者作用可以简单记忆模块主要作用晶体振荡器产生稳定基础时钟PLL倍频提高时钟频率Prescaler分频降低时钟频率PFD对 PLL 输出进行分数分频可以记成晶振 ↓ 基础时钟 ↓ PLL ↓ 提高频率 ↓ PFD / Prescaler ↓ 得到需要的工作时钟九、i.MX6ULL时钟系统i.MX6ULL 内部有比较复杂的时钟树。可以简单理解为晶振 ↓ PLL ↓ PFD ↓ 分频器 ↓ CPU / AHB / IPG / PERCLK / 外设不同模块需要不同频率的时钟因此需要经过不同的选择和分频。十、ARM内核时钟ARM Cortex-A7 内核时钟主要由CCM_ANALOG_PLL_ARM相关模块产生。配置 ARM 内核 PLL 时需要注意切换过程。基本流程① 选择 OSC_CLK ↓ ② STEP_CLK 24MHz ↓ ③ 暂时使用 STEP_CLK ↓ ④ 配置 PLL1 ↓ ⑤ 设置 PLL 倍频参数 ↓ ⑥ 配置 PLL 后分频 ↓ ⑦ 切换回 PLL1_MAIN_CLK十一、为什么配置PLL时需要先设置二分频配置 ARM PLL 时需要特别注意在修改 PLL 倍频参数之前要先设置好 PLL 后面的二分频。原因是PLL频率突然发生变化 ↓ ARM内核时钟可能瞬间过高 ↓ 可能导致ARM内核工作异常因此配置过程中要先降低风险再逐步恢复到目标频率。基本思想正常工作频率 ↓ 切换到安全时钟 ↓ 修改PLL ↓ 设置分频 ↓ 切换回目标PLL十二、528 PLLi.MX6ULL 中还有CCM_ANALOG_PFD_528它与 528MHz PLL 时钟有关。可以理解为528 PLL ↓ PFD ↓ 不同频率的时钟 ↓ 提供给部分外设十三、480 PLL还有CCM_ANALOG_PFD_480主要与 480MHz PLL 时钟相关。同样可以通过 PFD 产生不同的时钟频率。因此可以简单记PLL1 → ARM内核相关时钟 528 PLL → 528MHz时钟源及其PFD 480 PLL → 480MHz时钟源及其PFD十四、AHB_CLK_ROOTAHBAdvanced High-performance BusAHB 是系统总线的一部分。今天重点涉及AHB_CLK_ROOT 132MHz其时钟配置涉及CBCMR[PRE_PERIPH_CLK_SEL] CBCDR[PERIPH_CLK_SEL] CBCDR[AHB_PODF]可以理解为PLL/PFD ↓ PERIPH时钟选择 ↓ AHB分频 ↓ AHB_CLK_ROOT最终得到AHB_CLK_ROOT 132MHz十五、IPG_CLK_ROOTIPGInternal Peripheral BusIPG 时钟主要用于内部外设。今天涉及IPG_CLK_ROOT 66MHz主要通过CBCDR[IPG_PODF]进行分频。关系可以理解为AHB_CLK_ROOT ↓ IPG分频 ↓ IPG_CLK_ROOT ↓ 66MHz因此AHB 132MHz IPG 66MHz二者通常存在AHB 2 × IPG的关系。十六、PERCLK_CLK_ROOTPERCLKPeripheral Clock即外设时钟。今天涉及PERCLK_CLK_ROOT 66MHz主要由CSCMR1[PERCLK_CLK_SEL] CSCMR1[PERCLK_PODF]控制。可以理解为时钟源 ↓ PERCLK_CLK_SEL ↓ PERCLK_PODF ↓ PERCLK_CLK_ROOT十七、i.MX6ULL主要时钟关系今天可以重点记住ARM核心 ↓ ARM PLL 528 PLL ↓ PFD ↓ 部分外设 480 PLL ↓ PFD ↓ 部分外设 系统总线 AHB_CLK_ROOT ↓ 132MHz ↓ IPG_CLK_ROOT ↓ 66MHz以及PERCLK_CLK_ROOT ↓ 66MHz十八、51单片机定时器51单片机中常见的定时器/计数器包括Timer0 Timer1部分型号还具有Timer2定时器本质上都是通过计数实现定时。十九、51单片机定时器的特点51单片机定时器常见工作方式包括8位自动重装 16位定时/计数8位自动重装计数器溢出后自动重新装载初值因此适合产生周期性的定时事件。16位定时器16位方式可以使用THx TLx组成16位计数器。溢出以后如果需要重新计时通常需要在中断服务程序中重新装载计数初值。二十、51单片机与i.MX6ULL定时器的区别虽然都是定时器但是两者结构不同。对比51单片机i.MX6ULL定时器Timer0/Timer1/Timer2EPIT/GPT等系统复杂度较低较高时钟系统相对简单PLL/PFD/分频器组成复杂时钟树定时方式计数溢出多种计数和比较方式输入捕获功能较少GPT支持输出比较功能较少GPT支持应用简单定时精确定时、捕获、比较等二十一、EPIT定时器EPITEnhanced Periodic Interrupt Timer中文增强型周期中断定时器。EPIT 主要用于周期性定时 周期性中断 延时基本工作过程时钟 ↓ EPIT ↓ 计数 ↓ 计数到指定值 ↓ 产生中断 ↓ 执行中断服务函数二十二、EPIT的特点EPIT 非常适合产生周期性的中断。例如每1秒产生一次中断然后在中断服务函数中LED翻转最终效果1秒 ↓ LED状态翻转 再过1秒 ↓ LED状态翻转 再过1秒 ↓ LED状态翻转因此 LED 会周期性闪烁。二十三、EPIT 1秒中断实验实验目标使用 EPIT 实现 1 秒周期中断并在中断服务函数中反转 LED。基本流程配置EPIT时钟 ↓ 设置EPIT分频 ↓ 设置计数初值 ↓ 打开EPIT中断 ↓ 打开GIC对应中断 ↓ 启动EPIT ↓ 等待计数结束 ↓ 产生IRQ ↓ 进入中断服务函数 ↓ LED翻转 ↓ 重新开始下一次计时二十四、EPIT定时计算定时器计算最重要的是定时时间 计数次数 × 单个计数周期而单个计数周期 1 / 定时器输入频率例如输入频率 1MHz那么1MHz 1,000,000Hz即1个计数周期 1μs如果需要1秒那么需要1,000,000次计数所以1秒 1,000,000 × 1μs二十五、频率单位和存储单位不要混淆今天特别容易混淆两个概念频率1MHz 1000 × 1000Hz 1,000,000Hz这里的1000 × 1000表示1,000,000存储容量存储容量中1MiB 1024 × 1024Byte 1,048,576Byte因此MHz → 十进制单位 MiB → 二进制容量单位在实际编程计算时要注意单位。二十六、EPIT定时器计算的一般方法假设定时器输入频率 F 预分频系数 N 目标时间 T则定时器实际计数频率为Ftimer F / N单次计数时间Tcount 1 / Ftimer需要的计数次数Count T / Tcount也可以直接写成Count T × Ftimer因此定时时间 计数次数 / 计数频率这是定时器计算最重要的公式。二十七、GPT定时器GPTGeneral Purpose Timer中文通用定时器。GPT 的功能比简单的周期定时更加丰富可以实现定时 计数 输入捕获 输出比较 精准延时因此 GPT 是一种功能比较完善的通用定时器。二十八、GPT自由运行模式GPT 可以工作在Free Running Mode自由运行模式。在自由运行模式下计数器启动以后不断进行计数。例如0 ↓ 1 ↓ 2 ↓ 3 ↓ 4 ↓ ... ↓ 65535 ↓ 重新计数计数器一直运行。因此可以利用当前计数值计算时间差。二十九、GPT精准延时利用 GPT 自由运行模式可以实现比较精准的延时。基本思想读取开始时间 ↓ 保存当前GPT计数值 ↓ 执行需要延时的操作 ↓ 不断读取GPT当前计数值 ↓ 计算计数差值 ↓ 达到目标时间 ↓ 延时结束例如start GPT当前计数值等待GPT当前计数值 - start达到目标计数值后延时结束三十、为什么GPT适合精准延时普通软件延时while() { ... }延时时间容易受到CPU频率 编译器优化 代码执行时间 中断等因素影响。而 GPT 是硬件计数器时钟 ↓ GPT ↓ 硬件自动计数因此时间基准更加稳定。三十一、GPT输入捕获GPT还支持Input Capture输入捕获。输入捕获可以用来测量外部信号的时间。例如测量PWM周期 脉冲宽度 频率基本过程外部信号 ↓ GPT输入捕获 ↓ 记录当前计数值 ↓ 下一次边沿 ↓ 再次记录计数值 ↓ 计算两个计数值的差 ↓ 得到时间例如第一次捕获1000 第二次捕获5000 计数差 5000 - 1000 4000再根据 GPT 的计数频率就可以计算出实际时间。三十二、GPT输出比较GPT还可以实现Output Compare输出比较。基本过程GPT计数器 ↓ 不断计数 ↓ 当前计数值 比较值 ↓ 产生事件因此可以用于产生定时事件 输出控制 周期信号三十三、EPIT和GPT的区别两者都可以定时但是应用重点不同。项目EPITGPT全称Enhanced Periodic Interrupt TimerGeneral Purpose Timer主要用途周期定时、中断通用定时周期中断支持支持自由运行功能重点不是此模式支持输入捕获不作为主要功能支持输出比较不作为主要功能支持精准延时可以很适合典型应用周期性LED闪烁精准延时、捕获、比较可以简单记忆EPIT → 周期中断 GPT → 通用定时 ├── 定时 ├── 延时 ├── 输入捕获 └── 输出比较三十四、定时器与中断的关系定时器本身负责计数达到条件后产生中断然后由 CPU响应IRQ ↓ 执行中断服务函数因此定时器 ↓ 计数 ↓ 达到计数条件 ↓ 产生中断 ↓ GIC ↓ CPU ↓ IRQ ↓ 中断服务函数这与上一节学习的 GPIO 中断可以联系起来。GPIO 中断GPIO → GIC → CPU定时器中断EPIT/GPT → GIC → CPU最终都需要经过中断控制器再由 CPU 响应。三十五、今天的知识结构今天可以把整个知识点串起来时钟系统 │ ┌────────────┼────────────┐ ↓ ↓ ↓ PLL PFD Prescaler │ │ │ └────────────┼────────────┘ ↓ 系统时钟 │ ┌────────────┼────────────┐ ↓ ↓ ↓ AHB 132M IPG 66M PERCLK 66M │ ↓ 定时器时钟 │ ┌──────┴──────┐ ↓ ↓ EPIT GPT │ │ ↓ ↓ 周期中断 定时/捕获/比较 │ │ └──────┬──────┘ ↓ GIC ↓ CPU ↓ IRQ ↓ 中断服务函数三十六、今天重点掌握的概念1. Clock为数字系统提供统一的时间基准。2. PLL锁相环主要用于倍频。3. Prescaler预分频器用于降低时钟频率。4. PFD分数分频器用于对 PLL 输出进行进一步分频。5. AHB系统高速总线相关时钟。AHB_CLK_ROOT 132MHz6. IPG内部外设总线时钟。IPG_CLK_ROOT 66MHz7. PERCLK外设时钟。PERCLK_CLK_ROOT 66MHz8. EPIT增强型周期中断定时器。重点周期定时、周期中断9. GPT通用定时器。重点定时、精准延时、输入捕获、输出比较三十七、计算关系最核心的几个公式频率 f 1 / T周期 T 1 / f定时器计数频率Ftimer Fclock / Prescaler单次计数时间Tcount 1 / Ftimer定时时间T Count / Ftimer需要的计数次数Count T × Ftimer例如Ftimer 1MHz那么1个计数 1μs需要1秒则Count 1s × 1MHz 1,000,000三十八、学习总结今天主要学习了i.MX6ULL 的时钟系统以及 EPIT、GPT 定时器。首先了解了时钟系统的基本组成。晶体振荡器提供稳定的基础时钟PLL 用于提高时钟频率Prescaler 用于分频PFD 用于对 PLL 输出进行分数分频。通过这些模块可以为 ARM 内核、系统总线和各种外设提供不同频率的工作时钟。i.MX6ULL 中需要重点掌握AHB_CLK_ROOT → 132MHz IPG_CLK_ROOT → 66MHz PERCLK_CLK_ROOT → 66MHz其中 AHB、IPG 和 PERCLK 是后续学习外设驱动和定时器时经常会遇到的时钟。然后学习了 EPIT 和 GPT。EPIT时钟 ↓ 分频 ↓ 计数 ↓ 达到计数值 ↓ 产生周期中断 ↓ 执行中断服务函数因此非常适合实现周期性中断例如每 1 秒进入一次中断在中断服务函数中反转 LED实现 LED 周期闪烁。GPT 则属于功能更加丰富的通用定时器可以工作在自由运行模式并支持输入捕获和输出比较。因此可以利用 GPT 的连续计数值实现精准延时也可以测量外部信号的周期和脉冲宽度。今天最重要的一句话定时器本质上就是对已知频率的时钟进行计数EPIT主要用于周期定时和周期中断GPT主要用于通用定时、精准延时、输入捕获和输出比较。
企业数字化 ERP 产品动态
相关推荐
清蒸鳜鱼全解析:从“淡水鱼之王”的经典做法到 RAG 菜谱数据的结构化价值 教程人工智能大模型RAG 【免费下载链接】all-in-rag 🔍大模型应用开发实战一:RAG 技术全栈指南,在线阅读地址:https://datawhalechina.github.io/all-in-rag/ 项目地址: https://gitcode.com/datawhalechina/all-in-ra… · 2026/9/24 17:42:29
AI大模型落地秘籍:小白程序员必备的收藏攻略,解锁企业增长新机遇! 本文深入剖析企业AI部署失败原因,指出95%的AI试点未能产生财务影响的关键在于流程对接缺失。文章强调选择高频、重复、可容错且有数据的场景至关重要,并重新排序企业AI架构层级:业务接口优先,数据中台、AI中台、技术底座依次重要。… · 2026/9/24 17:42:23
小白程序员必看:大模型如何赋能制造企业,实现AI自主运营? 文章探讨了制造企业数字化深水区面临的挑战:数据虽多但缺乏持续理解和转化。介绍了Operation Agent Brain(AI全自主运营分析及优化平台),它不是新增系统,而是企业现有数字化基础上的AI智能中枢。OAB通过连接各类业务系… · 2026/9/24 17:42:23
Java+SSM+Flask混合架构博客系统开发全攻略 博客系统在Java课程设计和毕业设计里出现的频率,高到几乎可以称之为“国民级项目”。这段时间我接触了不少基于JavaSSMFlask的博客系统源码包,包含LW(论文文档)、调试文档和讲解视频那种,功能看起来都挺全,… · 2026/9/24 19:18:52
降AI率工具实测:从65%到12%的修改流程与避坑指南 你有没有遇到过这种情况:论文写到凌晨三点,终于用AI工具把初稿赶出来了,结果导师看了一眼就皱眉:“这语言风格一读就是AI写的,重复率倒是过了,AIGC检测估计又得飘红。”于是你开始搜各种“降AI率”工具。说… · 2026/9/24 19:18:40
PostGraphile 的 PostgreSQL JWT 规范:将 JWT Claims 序列化进数据库会话 后端API网关 【免费下载链接】crystal 🔮 Graphiles Crystal Monorepo; home to Grafast, PostGraphile, pg-introspection, pg-sql2 and much more! 项目地址: https://gitcode.com/gh_mirrors/cry/crystal 点击查看 免费下载 导读
本文围绕 PostGrap… · 2026/9/24 19:18:40
呼和浩特朋友圈广告大促投放:服务商筛选与实操指南 1. 大促节点下呼和浩特本地朋友圈广告投放的底层逻辑1.1 为什么大促期间的朋友圈广告和平时完全是两码事做过本地投放的人都有一个共识:大促节点的朋友圈广告,和平时的日常投放,本质上不是同一个物种。平时你投朋友圈广告,拼的是素… · 2026/9/24 19:18:33
HCIE数通备考指南:官方、培训与免费资源全攻略 年年有人问HCIE数通认证考试的课程去哪里看,今年尤其多,毕竟备考节奏要往前赶。作为一个在数通这行摸爬滚打了十几年、前几年刚把HCIE证书拿下来的老工程师,我太清楚大家的问题了——不是不想学,是资源太多不知道从哪儿下手&#… · 2026/9/24 19:18:33
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44