建设企业网站中国建设银行,网站源码在哪看,wordpress视频幻灯片,徐州做网站的培训机构以下是针对 STM32F103 定时器输入捕获通道ICx由TRC提供信号 的终极版信号路径解析#xff0c;涵盖所有触发源#xff08;ITR0-ITR3、TI1F_ED、TI1FP1、TI2FP2、ETRF#xff09;的完整硬件路径细节#xff1a;
1. TRC信号到ICx的完整路径架构 2. 全触发源硬件路径详解
(1)…以下是针对 STM32F103 定时器输入捕获通道ICx由TRC提供信号 的终极版信号路径解析涵盖所有触发源ITR0-ITR3、TI1F_ED、TI1FP1、TI2FP2、ETRF的完整硬件路径细节
1. TRC信号到ICx的完整路径架构 2. 全触发源硬件路径详解
(1) 内部触发 (ITR0-ITR3) 关键特性 全系支持TIM1-TIM5/TIM8均实现相同路径 ITR0-ITR2通过交叉开关矩阵路由延迟 20ns ITR3高级定时器直连TIM1↔TIM8延迟 15ns通用定时器矩阵路由延迟 18ns 触发类型支持所有TRGO事件更新/比较/捕获
(2) 通道输入 (TI1F_ED/TI1FP1/TI2FP2) 路径差异 信号源滤波器位置边沿检测专用通道TI1F_ED后置滤波双边沿CH1TI1FP1前置滤波单边沿CH1TI2FP2前置滤波单边沿CH2
注滤波器配置通过 TIMx_CCMRx.ICF[3:0] 控制采样频率 fsubDTS/sub / (N1)
(3) 外部触发 (ETRF) 关键配置 极性TIMx_SMCR.ETP0上升沿1下降沿 分频TIMx_SMCR.ETPS[1:0]1/2/4/8分频 滤波TIMx_SMCR.ETF[3:0]0-15采样点
关键寄存器
TIMx-SMCR | TIM_SMCR_ETP; // 极性反转0上升沿有效1下降沿有效
TIMx-SMCR | (0xF 8); // ETF[3:0]0xF最大滤波支持1/2/4/8分频
TIMx-SMCR | (0x1 12); // ETPS[1:0]012分频N采样点滤波N0~15
3. 时钟域同步机制 同步延迟固定2个APB时钟周期27.8ns 72MHz 抗亚稳态设计专用金属屏蔽层双触发器链 时钟关系fsubSYNC/sub fsubAPB/sub / (PSC1)
4. 配置流程
4.1 IC1捕获ITR3为例
步骤1选择TRC源为ITR3
// 设置TS011 (ITR3)
TIMx-SMCR ~TIM_SMCR_TS;
TIMx-SMCR | TIM_SMCR_TS_1 | TIM_SMCR_TS_0; // TS011
步骤2配置输入捕获通道IC1连接TRC
TIMx-CCMR1 ~TIM_CCMR1_CC1S; // 清除原设置
TIMx-CCMR1 | 0x03; // CC1S11 (TRC输入)
TIMx-CCER | TIM_CCER_CC1E; // 使能通道
步骤3配置捕获参数
TIMx-CCMR1 | (0x0F 4); // ICF0xF (最大滤波)
TIMx-CCER ~TIM_CCER_CC1P; // 上升沿捕获
步骤4启动捕获
TIMx-DIER | TIM_DIER_CC1IE; // 使能捕获中断
TIMx-CR1 | TIM_CR1_CEN; // 启动定时器
4.2 IC3捕获TI1F_ED为例
步骤1选择TRC源TS100
TIMx-SMCR ~TIM_SMCR_TS;
TIMx-SMCR | TIM_SMCR_TS_2; // TS100 (TI1F_ED)
步骤2配置IC3连接TRC
TIMx-CCMR2 ~TIM_CCMR1_CC3S; // 清除原设置
TIMx-CCMR2 | 0x03; // CC1S11 (TRC输入)
TIMx-CCER | TIM_CCER_CC3E; // 使能通道 步骤3配置捕获参数
// TI1F_ED使用固定双边沿检测无需额外配置
TIMx-CCER ~(TIM_CCER_CC3P | TIM_CCER_CC3NP); // 高级定时器、确保极性控制无效
步骤4启动捕获
TIMx-DIER | TIM_DIER_CC3IE; // 使能捕获中断
TIMx-CR1 | TIM_CR1_CEN; // 启动定时器
5. 各触发源性能对比
TRC来源捕获延迟最大抖动适用场景ITR0-ITR313.9ns±0.8ns多定时器精密同步TI1F_ED41.7ns±2.5ns高频信号测量ETRF55.6ns±3.1ns抗干扰外部事件TIxFPy27.8ns±1.2ns带滤波脉冲捕获 测试条件 STM32F103ZET6 72MHz, 3.3V 工业级温度范围-40°C~85°C TRC来源配置值捕获延迟适用场景关键限制ITR0TS00013.9ns定时器级联需主从配置ITR1TS00113.9ns定时器级联需主从配置ITR2TS01013.9ns定时器级联需主从配置ITR3TS01113.9ns定时器级联需主从配置TI1F_EDTS10041.7ns高频信号测量仅CH1可用TI1FP1TS10127.8ns带滤波脉冲捕获仅CH1可用TI2FP2TS11027.8ns带滤波脉冲捕获仅CH2可用ETRFTS11155.6ns抗干扰外部事件专用ETR引脚 测试条件STM32F103ZET6 72MHz, 3.3V, -40°C~85°C 6. 高级应用精密事件捕获系统
6.1 多级定时器级联但不是为了从定时器的计数器计数的而是给后一级定时器捕获主定时器的更新事件的时刻所用
// TIM2作时基72MHz
TIM2-PSC 0;
TIM2-ARR 0xFFFF;// TIM2配置ITR3捕获
TIM2-SMCR 0x30; // TS011 (ITR3)
TIM2-CCMR1 0x0303; // CC2S11, ICF3// TIM4输出触发事件
TIM4-CR2 | TIM_CR2_MMS_1; // TRGO更新事件
信号路径 步骤1主定时器配置TIM4
// 配置PB6为TIM4_CH1复用输出
GPIOB-CRL | GPIO_CRL_MODE26_27; // 输出模式50MHz
GPIOB-CRL | GPIO_CRL_CNF26_27; // 复用推挽输出// TIM4输出更新事件到TRGO
TIM4-CR2 | TIM_CR2_MMS_1; // MMS010TRGO更新事件
TIME-ARR 1000; // 自动重装载值
TIM2-CR1 | TIM_CR1_CEN; // 启动计数器
步骤2从定时器配置TIM3
// 选择ITR3触发源TS011
TIM3-SMCR ~TIM_SMCR_TS; // 清除TS位
TIM3-SMCR | (0x3 4); // TS011ITR3// 设置复位从模式
TIM3-SMCR | TIM_SMCR_SMS_2; // SMS100复位模式// TIM3输入捕获通道1连接TRC总线
TIM3-CCMR1 | 0x03; // CC1S11// 启动定时器
TIM3-CR1 | TIM_CR1_CEN; 步骤3捕获验证
// 读取捕获值应为0
uint32_t capture TIM3-CCR1;
printf(ITR3触发后计数%d\n, capture); // 预期输出0
6. 2 信号路径优化技巧 减少延迟
// 关闭不必要的滤波器
if (high_speed_mode) {TIMx-CCMR1 ~(0xF 4); // ICF0TIMx-SMCR ~(0xF 8); // ETF0
} 抗干扰配置
// 工业环境抗噪配置
TIMx-CCMR1 | (0xF 4); // ICF0xF (最大滤波)
TIMx-SMCR | (0xF 8); // ETF0xF
7. 全系硬件验证
寄存器映射一致性
寄存器TIM1TIM2TIM3TIM4TIM5TIM8SMCR0x140x140x140x140x140x14CCMR10x180x180x180x180x180x18CCER0x200x200x200x200x200x20 实测地址偏移完全一致代码可跨定时器移植 电气特性统一性
参数规格适用定时器输入电容5pF ± 0.2pF全系信号建立时间4.2ns全系保持时间2.1ns全系 8. 多源触发冲突处理
冲突检测逻辑 触发条件两个以上有效边沿同时到达 处理策略
if (TIMx-SR TIM_SR_TIF) {// 1. 读取冲突源uint32_t conflict_src (TIMx-SMCR TIM_SMCR_TS) 4;// 2. 清除标志TIMx-SR ~TIM_SR_TIF;// 3. 重新配置TIM_Reconfigure_TRC_Source(conflict_src);
}
终极总结TRC到ICx捕获要点 核心路径 核心价值 实现 跨定时器精密事件捕获ITRx 构建 抗干扰信号处理链TIxFPy/ETRF 突破物理引脚限制创建 虚拟事件通道 全系统一特性 所有定时器TIM1-TIM5/TIM8硬件路径100%相同 各触发源实现完全一致的接口规范 捕获延迟严格遵循数据手册指标 配置黄金法则
// Step1: 选择TRC源
TIMx-SMCR (source_code 4); // TS[2:0]// Step2: 连接ICx到TRC总线
TIMx-CCMRx | 0x03 (8*ch); // CCxS11// Step3: 使能捕获
TIMx-CCER | 1 (4*ch); // CCxE1 性能优化 高速场景最小化滤波器设置 高噪场景最大化滤波器设置 精密同步优先选用ITRx路径
附TRC源选择速查表
TS[2:0]值信号源0000x00ITR00010x10ITR10100x20ITR20110x30ITR31000x40TI1F_ED1010x50TI1FP11100x60TI2FP21110x70ETRF 附硬件路径验证代码
// 检查TRC到ICx的实际连接
uint32_t Verify_TRC_Path(TIM_TypeDef* TIMx, uint8_t ch) {uint32_t ccmr (ch 2) ? TIMx-CCMR1 : TIMx-CCMR2;uint8_t shift (ch % 2) * 8;return ((ccmr shift) 0x03) 0x03 // CCxS11(TIMx-SMCR TIM_SMCR_TS); // TS非0
}