IMX6ULL裸机开发:定时器(GPT/EPIT)与UART串口

一、IMX6ULL 两大核心定时器

定时器是嵌入式开发最常用的外设,核心作用是精准计时、延时、定时触发任务、测量信号时间、输出指定频率波形。IMX6ULL内置两款专用硬件定时器:EPIT和GPT,二者功能定位、计数方式完全不同,适配不同开发场景。

1. EPIT 定时器

EPIT 是 IMX6ULL 专用的 32位自减型定时器,是专为简单延时、定时中断设计的轻量化定时器,使用简单、配置便捷。

核心特性:

  • 计数范围:0x00000000 ~ 0xFFFFFFFF(32位全范围计数)

  • 计数方式:从预设值开始自动递减,减到0触发中断或定时事件

  • 支持时钟源:常用24MHz高速时钟、32.768KHz RTC低速时钟

两大工作模式:

  • 自由运行模式(Free-Running Mode):默认从最大值 0xFFFFFFFF 开始不断自减,减到0后自动重装最大值,循环持续计数,适合长期定时、系统时钟计时场景。

  • 设置-遗忘模式(Set and Forget Mode):手动设置初始计数值,定时器自动递减完成单次定时,无需重复配置,适合单次精准延时场景。

常用场景:裸机精准延时函数、按键软件消抖、简单定时中断任务。

2. GPT 定时器

GPT 是 IMX6ULL 的 32位自增型多功能定时器,功能比EPIT更强大,支持输入捕获、输出比较,是工业控制、信号测量的核心定时器。

核心特性:

  • 计数范围:0x00000000 ~ 0xFFFFFFFF

  • 计数方式:从0开始自动递增,计数到最大值后溢出归零,重新计数

  • 功能丰富:除了基础定时延时,支持输入捕获、输出比较两大高级功能

常用场景:电机测速、电机调速、方波信号生成、外部脉冲时间测量、高精度定时控制。

3. 输入捕获 & 输出比较

(1)输入捕获

简单来说就是 测量外部信号的时间参数。GPT定时器通过指定引脚,捕获外部电平的跳变(高变低、低变高),记录两次跳变之间的定时器计数值,从而计算出信号的周期、频率、脉冲个数。

经典应用:检测电机转速(统计单位时间内电机脉冲数量)、测量方波频率、检测外部设备脉冲信号。

(2)输出比较

简单来说就是 主动输出指定频率的方波信号。提前设置好比较值,当GPT递增计数值等于预设比较值时,芯片引脚自动翻转电平,持续循环即可生成固定频率、固定占空比的方波。

经典应用:控制电机转速、驱动LED呼吸灯、生成外设所需时钟信号。

二、UART串口通信

UART(通用异步收发传输器)是嵌入式最基础、最常用的 异步串行通信协议,主要用于设备之间的近距离数据传输,无需时钟线,仅通过收发两根引脚即可实现数据交互,稳定性强、配置简单。

1. UART核心参数

工业通用标准配置:115200 8N1

  • 波特率:115200(数据传输速率)

  • 数据位:8位(单次传输8字节数据)

  • 校验位:无校验(N)

  • 停止位:1位

2. UART硬件流控(RTS/CTS)

为了解决串口数据传输丢包、缓冲区溢出问题,UART支持硬件流控功能,适配强干扰、强电场的工业场景:

  • RTS_B(请求发送) :设备主动告知对方,本机缓冲区空闲,可以接收数据;

  • CTS_B(清除发送) :设备告知对方,本机缓冲区已满,暂停发送数据。

核心作用:防止高速传输时数据溢出、丢包,提升工业场景通信稳定性。

3. 波特率计算原理

IMX6ULL裸机配置115200波特率核心参数:

  • UBIR = 999

  • UBMR = 43402

  • 计算公式:(UBMR + 1) / UBIR 精准匹配115200标准波特率

4. 工业组网:Modbus单主机多从机

UART可基于Modbus协议实现工业组网,拓扑结构为单主机、多从机:

  • 主机:IMX6ULL(主动下发指令、查询数据)

  • 从机:多个IMX6ULL或其他外设(被动响应主机指令)

为适配工业强干扰环境,通信支持多种校验方式:累加和校验、奇偶校验、CRC校验,可自动检测从机地址,保障通信准确。

三、思考题

  1. 什么是UART?简述其核心作用与通信特点

  2. 什么是EPIT定时器?它的计数方式和工作模式是什么?

  3. 什么是GPT定时器?相比EPIT有什么优势?

  4. 什么是输入捕获?什么是输出比较?分别有哪些典型应用场景?

四、知识点总结

  1. EPIT是自减型定时器,主打简单延时、定时中断,配置简单,适合基础定时场景;

  2. GPT是自增型多功能定时器,支持输入捕获、输出比较,主打信号测量、电机控制等高级场景;

  3. 输入捕获用于测量外部信号 ,输出比较用于生成可控方波信号,是电机调速测速的核心功能;

  4. UART是通用异步串口,支持硬件流控和多种数据校验,可搭建Modbus工业组网,是嵌入式设备通信的基础外设。

相关推荐
幼儿园蛋小黑5 天前
ARM 时钟与定时器详解:从原理到实践
arm
幼儿园蛋小黄6 天前
从定时器到时钟:ARM 嵌入式学习总结
arm
祖力556 天前
ARM时钟
嵌入式硬件·arm·时钟·imx6ull
koi77u6 天前
嵌入式学习——ARM(3)
arm
学linux的QQ蛋6 天前
i.MX6ULL GIC 中断整体知识点总结和ARM时钟重点总结
arm·时钟·中断
G.E.M.小白6 天前
【IMX6ULL ARM内核启动与时钟系统超详解】PLL/PFD/分频/根时钟配置
嵌入式·arm·时钟·imx6ull
AAA代码批发商6 天前
Days 50 51 单片机与 i.MX6ULL 定时器对比:Timer、EPIT、GPT 原理与实验
51单片机·定时器·imx6ull·裸机开发
koi77u6 天前
嵌入式学习——ARM(1)
arm
myy-learn7 天前
ARM-点亮第一颗LED
arm