1. YT(云途)芯片的eTimer模块概述
在嵌入式系统开发领域,定时器模块一直是硬件设计的核心组件之一。云途半导体(YT)作为国产芯片的新锐力量,其eTimer(Enhanced Timer)模块在工业控制、物联网终端等场景中展现出独特的优势。我最近在几个电机控制项目中深度使用了YT系列芯片的定时器功能,这里分享一些手册上不会写的实战细节。
与常见的通用定时器不同,YT的eTimer在设计上做了多处针对性优化:
- 支持硬件级PWM死区控制(Dead Band),无需软件干预
- 每个定时器通道独立配备32位计数器,精度可达1/48MHz
- 特有的"影子寄存器"机制确保参数更新无毛刺
- 支持级联模式实现64位超长定时
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. eTimer的寄存器配置精要
2.1 时钟树配置要点
YT芯片的定时器时钟源选择比传统ARM Cortex-M复杂得多。在CLK_CTRL寄存器中:
c复制// 推荐配置(PLL作为源,二分频)
CLK_CTRL->TIMER_DIV = 0x1;
CLK_CTRL->TIMER_SEL = 0x3; // 选择PLL输出
实测发现上电默认使用HSI时钟,必须显式切换才能获得稳定时序。有个坑是修改时钟源后需要延时至少5个周期才能操作定时器寄存器。
2.2 比较模式的双缓冲机制
eTimer的比较寄存器采用独特的双缓冲设计:
- 工作寄存器(Active Register):当前生效的数值
- 预装载寄存器(Preload Register):准备更新的数值
通过设置CR寄存器的PRLD位触发数据同步:
c复制eTimer->CR |= (1 << 5); // 使能预装载
eTimer->CMPR[0] = 1000; // 写入预装载寄存器
eTimer->EGR |= (1 << 0); // 触发更新事件
这个设计在电机控制中特别实用——可以无抖动地动态调整PWM占空比。
3. 高级应用:正交编码器接口实现
3.1 硬件接线方案
YT的eTimer支持直接接入正交编码器信号,省去外部解码芯片。推荐电路:
code复制编码器A相 ──┬── eTimer_CH1
│
编码器B相 ──┴── eTimer_CH2
在SMT3
