当前位置: 首页 > news >正文

ARM—时钟(CLOCK)—定时器(EPIT / GPT)

一、时钟(clock)

<1>. 硬件概念:

  • 时钟概念:在电子系统中是一个产生稳定、周期性振荡信号的电路或组件。这个信号像节拍器或心跳一样,为数字电路中的各种操作提供同步时序基准。
  • 实时时钟(RTC real time clock): 是微处理器中的一个功能模块,用于在系统主电源关闭的情况下,继续提供精确的日历和时间信息。
  • 时钟源:晶体振荡器(工作原理:将石英晶体切割成音叉,施加电压,会产生稳定的震荡)
  • 外设工作频率分配:外部时钟源构建的时钟树通过物理线路供应给外设需要的工作频率,其中也包括供应kernal的工作频率(396M,最大1.3G)

PPL(Phase-Locked Loop):锁相环电路,可以倍频输出
IMX6ULL中共有7个PLL

  • 允许输入一个固定频率,输出固定频率*n(n 倍频系数)
    在这里插入图片描述

Prescal:预分频器,可以分频
在这里插入图片描述

PFD(Phase Fractional Divier):相位分数分频器,输出频率可升可降
IMX6ULL中共有8个PFD(PLL2和PLL3各四个)
在这里插入图片描述

<2>. 代码编写

  1. kernal: CCM_ANALOG_PLL_ARMn
    PLL的配置流程
    在这里插入图片描述

  2. 528 PLL:CCM_ANALOG_PFD_528n

  3. 480 PLL:CCM_ANALOG_PFD_480n
    2和三根据参考手册配置将位置1或置0

  4. AHB_CLK_ROOT(最高频率132M):Advanced High-performance Bus(高级高性能总线),用于驱动高速外设

  • CBCMR[PRE_PERIPH_CLK_SEL]
  • CBCDR[PERIPH_CLK_SEL]
  • CBCDR[AHB_PODF]
  1. IPG_CLK_ROOT(最高频率66M):Internal Peripheral Bus Clock(内部外设总线时钟),用于驱动低速外设
  • CBCDR[IPG_PODF]
  1. PERCLK_CLK_ROOT(最高频率66M):
  • CSCMR1[PERCLK_CLK_SEL]
  • CSCMR1[PERCLK_PODF]

在这里插入图片描述

二、定时器

<1> EPIT(Enhanced Periodic Interrupt Timer):增强型周期中断定时器
EPIT定时器的两种工作模式:

  • set-and-forget 模式:在此模式下 EPIT 的计数器从加载寄存器 (EPITx_LR) 中获取初始值,不能直接向计数器寄存器写入数据。不管什么时候,只要计数器计数到 0,那么就会从加载寄存器 EPITx_LR 中重新加载数据到计数器中,周而复始。
  • free-running 模式:在此模式下,当计数器计数到 0 以后会重新从0XFFFFFFFF 开始计数,并
    不是从加载寄存器 EPITx_LR 中获取数据
    在这里插入图片描述

EPIT工作原理简述

  1. 通过多路选择器,从 三个时钟中选择一个作为输入时钟
    【ipg_clk(内部外设总线时钟)、ipg_clk_32k(32kHz 低速时钟)、ipg_clk_highfreq(高频时钟)或 “Clock off”(时钟关闭)】
  2. 12 位预分频:对第一步选择的时钟进行"12 bit Prescaler"(12 位预分频器),可设置分频系数 (1~4096)对时钟进一步分频,得到 “Prescaled Clock”(预分频后时钟),用于驱动计数器。
  3. 计数器与寄存器协作:
  • 计数器寄存器(Counter Register):32 位宽,在预分频时钟驱动下递减计数
  • 加载寄存器(Load Register):32 位宽,存储计数器的初始值(或重载值)。当计数器减到特定值(如与比较寄存器匹配,或减到 0)时,会从加载寄存器重新加载数值,实现周期性计数。
    【实现通过将EPIT_CR(contral register)寄存器设置为:设置并忘记模式】
  • 比较寄存器(Compare Register):32 位宽,与存储的预设的 “目标值”进行比较。
  1. 比较与中断 / 输出触发比较器(CMP):将计数器当前值与比较寄存器的值对比。当两者匹配时,会触发:
  • 输出触发(ITIF):可通过输出模式(OM)模块(OM模块会使输出信号翻转),生成 EPITn_OUT 输出信号(用于外设控制等场景)。
  • 中断触发:若中断使能位(ITIE)开启,会产生中断请求,用于通知 CPU 执行定时任务(如 LED 闪烁、数据采样等)。

<2> GPT(General Purpose Timer):通用目的定时器

  • GPT 定时器(高精度定时器)是一个32 位向上定时器(也就是从0X00000000 开始向上递增计数)
  • GPT 定时器特性如下
    ① 一个可选时钟源的 32 位向上计数器;
    ② 两个输入捕获通道,可以设置触发方式;
    ③ 三个输出比较通道,可以设置输出模式;
    ④ 可以生成捕获中断、比较中断和溢出中断;
    ⑤ 计数器可以运行在重新启动(restart)或(自由运行)free-run 模式。
    GPT的两种工作模式:
  • 重新启动(restart)模式:在此模式下,当计数值和比较寄存器中的值相等的话计数值就会清零,然后重新从0X00000000 开始向上计数,只有比较通道 1 才有此模式!向比较通道 1 的比较寄存器写入任何数据都会复位 GPT 计数器。对于其他两路比较通道(通道 2 和 3),当发生比较事件以后不会复位计数器。
  • 自由运行(free-run)模式:当在此模式下,此模式适用于所有三个比较通道,当比较事件发生以后并不会复位计数器,而是继续计数,直到计数值为 0XFFFFFFFF,然后重新回滚到 0X00000000。
    在这里插入图片描述

GPT工作原理简述

http://www.dtcms.com/a/406067.html

相关文章:

  • 基于IMX6ULL的时钟,定时器(EPIT,GPT)
  • HCIE 的云计算方向容易考过吗?该怎么准备考试?
  • 凤山县住房和城乡建设局网站wordpress中国能用吗
  • 从 EFI 到 GPT:深入理解现代计算机启动与磁盘分区技术
  • 计算机网络的性能指标和体系结构
  • 性能怪兽:GPT-5-Codex三大核心进化,重新定义AI编程
  • 网络通信协议全解析:HTTP/UDP/TCP核心要点
  • 郴州网站建设软件定制开发平台e盘网站建设
  • 在Unix/Linux中bash/sh/source以及./执行脚本的区别
  • 宜春公司做网站双语网站建设定制开发
  • Spring Boot 应用启动组件加载顺序与优先级详解
  • Spring Boot 事件发布与监听 观察者模式的实际应用
  • Sui Stack Messaging SDK:为 Web3 打造可编程通信
  • 光谱相机的未来趋势
  • 【Java后端】《Spring Boot Starter 原理详解》博客
  • 设计与绘制一个网站首页同学录wordpress
  • Vue2的生命周期
  • MySQL学习笔记04:MySQL InnoDB存储引擎核心机制深度解析
  • 中国企业网站建设响应式网站管理
  • 遇到不会的事,先写一写
  • 心理咨询 网站模版嘉兴网站建设技术开发
  • 【面试】Kafka / RabbitMQ / ActiveMQ
  • 新网站建设的工作总结文化网站建设需要的功能
  • 11.WPF 的命令处理事件--参数介绍
  • 旅游管理虚拟仿真实训室:打通理论与实践壁垒
  • FreeLong-无需训练即可延长视频生成时长
  • Lynx:新一代个性化视频生成模型,单图即可生成视频,重新定义身份一致性与视觉质量
  • 关于机器视觉中的”果冻效应“讲解:全局曝光 vs 卷帘曝光
  • 如何做百度的网站网站开发技术的雏形 cgi
  • 织梦医院网站源码6731官方网站下载