STM32 电机控制应用中,ICxFilter,ICxPSC以及高级定时器的采样时钟分频CKD区别是什么

一 ICxPSC以及高级定时器的采样时钟分频CKD区别是什么

IC1Filter(输入捕获滤波器)和高级定时器的采样时钟分频(通常指 TIM_ClockDivision,即 CKD 位)虽然都涉及"分频"和"采样",但它们在定时器内部所处的阶段具体作用 以及影响范围上有本质的区别。

简单来说:采样时钟分频决定了整个数字滤波器的"工作时钟有多快",而 IC1Filter 决定了在这个工作时钟下进行"多少次采样来确认一个有效电平"。

以下是详细的对比分析:

1. 采样时钟分频(CKD:Clock Division)

  • 通常的宏定义TIM_CLOCKDIVISION_DIV1TIM_CLOCKDIVISION_DIV2TIM_CLOCKDIVISION_DIV4

  • 作用范围全局性(针对整个定时器模块)。

  • 它在哪 :它位于时基单元(Basic/General/Timer)的配置中,影响的是数字滤波器(包括所有输入通道的滤波器)所使用的采样时钟(tDTS)

  • 具体作用

    定时器的核心时钟(CK_INT,即内部时钟)通常很快(如 72MHz 或 168MHz)。CKD 位会对这个核心时钟进行分频,产生 tDTS(Digital Time base System) 时钟。这个 tDTS 就是后续所有输入滤波器进行采样的基础时钟源。

  • 例子

    • 如果 CK_INT = 72MHz,设置 CKD = DIV1,则 tDTS = 72MHz (周期约 13.89ns)。

    • 如果设置 CKD = DIV4,则 tDTS = 18MHz (周期约 55.56ns)。

2. ICxFilter(输入捕获滤波器参数)

  • 通常的宏定义ICFILTER_x (x 从 0 到 15)

  • 作用范围局部性(仅针对特定的输入捕获通道,如 IC1)。

  • 它在哪 :它位于输入捕获通道的配置中,决定了具体对输入信号进行怎样的处理

  • 具体作用

    它定义了对输入信号进行采样的频率 (以 tDTS 为基准的进一步分频)以及进行电平确认所需的采样次数

  • 例子(结合上面的 CKD 例子):

    • 频率:比如设置 IC1Filter = 0x0F(二进制1111),数据手册规定这意味着"采样频率 = tDTS / 32",即每隔 32 个 tDTS 时钟周期采样一次输入信号。

    • 次数:同样,0x0F 也意味着需要连续采样 8 次相同的电平,才认为信号稳定。


核心区别总结

对比维度 采样时钟分频 (CKD) IC1Filter
角色定位 时钟源提供者 信号处理逻辑
控制对象 控制整个定时器数字部分的基础采样时钟频率 (tDTS)。 控制输入信号在 tDTS 基础上的采样频率和采样次数
影响范围 所有依赖 tDTS 的功能(如所有输入捕获通道的滤波器、编码器模式抗噪等)。 仅限它所配置的那一个输入捕获通道。
参数含义 设置分频系数 (1, 2, 4)。 设置采样频率分频比和采样次数 (由4位二进制数组合定义)。
最终效果 决定了一个 tDTS 周期有多长,这是滤波器的时间分辨率 决定了在多少个 tDTS 周期 内进行多少次采样判定,这是滤波器的抗噪强度

一个直观的类比

想象一下小区门口的安检系统

  1. 采样时钟分频 (CKD) 相当于安检设备的"扫描速度"

    • DIV1 = 机器每秒扫描 1000 次。

    • DIV4 = 机器每秒扫描 250 次。

    • 这个速度决定了设备能捕捉到的最细微的时间差异。

  2. IC1Filter 相当于安检的"验证规则"

    • 规则 1 (ICFilter=0):扫一次看到是好人,就直接放行(速度快,但可能看错)。

    • 规则 15 (ICFilter=15):必须连续扫到 8 次都是好人,才放行(抗干扰强,但反应慢)。

结论:

如果你想滤除的是非常窄的毛刺,你需要先通过 CKD 提供足够快的扫描速度(tDTS) ,然后通过 IC1Filter 设定严格的验证次数,两者配合才能达到最佳的滤波效果。如果 CKD 设得太慢(DIV4),导致扫描精度下降,那么即使 IC1Filter 设得再高,也可能无法分辨短毛刺,因为扫描间隔已经太长了。

二 ICxFilter与ICxPSC区别是什么

为了帮你清晰地理解,我们可以把输入捕获的信号流想象成一条产品质检流水线。信号(产品)需要经过两道独立的关卡才能最终被捕获(入库)。

核心区别一句话总结:

  • ICxFilter(滤波器):负责质量检测,剔除有瑕疵的坏产品(噪声),确保只有合格品才能进入下一环节。

  • ICxPSC(捕获分频器) :负责数量统计,决定每遇到几个合格品,才向老板(CPU)汇报一次。


详细对比解析

1. IC1Filter:质量检测员
  • 位置:位于信号处理链路的最前端,紧挨着输入引脚。

  • 作用抗干扰。它检查从引脚进来的每一个信号边沿,判断它是真实的电平变化还是外界的噪声毛刺。

  • 工作方式 :**通过对信号进行多次采样(由 CKD 提供采样时钟)并比较结果来工作。**只有连续N次采样值都相同的边沿,才被认为是"有效的",允许通过。否则,视为噪声并丢弃。

  • 类比:就像质检员用放大镜检查每一个产品,有划痕或变形的(噪声)直接扔进废品筐,只有完好无损的产品(有效边沿)才能放行到传送带上。

  • 参数效果IC1Filter 的值越大(0-15),需要连续采样的次数就越多,滤波能力越强,但也会引入越大的信号延迟(因为判断需要时间)。

2. ICxPSC:数量统计员
  • 位置:位于滤波器之后、捕获寄存器之前。

  • 作用降频它对已经通过滤波器检验的"有效边沿"进行计数。

  • 工作方式它是一个简单的计数器。你可以设置它的分频系数(1, 2, 4, 8)。

    • 如果设置为 1分频(TIM_ICPSC_DIV1):每来一个有效边沿,就立即触发一次捕获。这是最常用的模式。

    • 如果设置为 4分频(TIM_ICPSC_DIV4):需要每来4个有效边沿,才触发一次捕获(即捕获第4个边沿时的计数器值)。

  • 类比:传送带上的产品经过质检员后,来到打包员这里。打包员不关心产品本身的质量,他只负责数数。如果他的规则是"每满10个产品打包一箱"(相当于10分频),那么只有数到第10个产品时,他才会触发"打包"(捕获)动作。

  • 参数效果ICxPSC 越大,触发捕获的频率就越低。这在处理极高频率信号时非常有用,可以减轻CPU的负担(因为中断次数变少了)。


对比总结表

维度 ICxFilter (输入捕获滤波器) ICxPSC (输入捕获预分频器)
核心使命 保证信号质量 控制捕获频率
处理对象 每一个原始的、可能有毛刺的信号边沿 已经确认过的、干净的有效边沿
工作逻辑 通过过采样和连续判定来过滤噪声 通过计数来跳过部分有效边沿
对中断的影响 不影响中断次数。如果噪声被滤掉,原本可能触发的中断就不会发生;如果信号干净,中断次数不变。 直接减少中断次数。无论信号多干净,如果设置了4分频,中断次数就会减少为原来的1/4。
典型应用场景 电机编码器信号、PWM输入测量、任何信号线较长或有干扰的场合。 测量极高频率信号(如MHz级别),防止CPU频繁进中断导致丢数或无法处理其他任务。

配置示例(逻辑关系)

在代码中,它们通常是先后配置的关系:

c

复制代码
TIM_ICInitTypeDef TIM_ICInitStructure;

// 1. 先配置滤波器:确保进来的信号是干净的
TIM_ICInitStructure.TIM_ICFilter = 0x0F; // 开启强滤波

// 2. 再配置预分频器:决定多久捕获一次
TIM_ICInitStructure.TIM_ICPSC = TIM_ICPSC_DIV1; // 通常是每个边沿都捕获,即不分频
// 如果是极高频率信号,可能会配成 TIM_ICPSC_DIV4 或 DIV8

// 应用配置到定时器的通道1
TIM_ICInit(TIM5, &TIM_ICInitStructure);
相关推荐
科技前瞻观察8 小时前
赋能智算升级|基于极海G32R501实时控制DSP MCU的AI服务器电源应用方案
服务器·人工智能·单片机
程序员杰森8 小时前
ESP32开发板+TB6612 x 2 四电机小车笔记
笔记·单片机·嵌入式硬件
阿拉斯攀登8 小时前
第 10 篇 RK 平台安卓驱动实战 3:PWM 驱动开发,实现 LED 呼吸灯 + 电机调速
驱动开发·嵌入式硬件·pwm·瑞芯微·嵌入式驱动·rk3576·嵌入式安卓
集芯微电科技有限公司8 小时前
氮化镓GaN FET/GaN HEMT功率驱动器选型一览表
人工智能·单片机·嵌入式硬件·深度学习·神经网络·生成对抗网络
7yewh17 小时前
jetson_yolo_deployment 01_linux_dev_env
linux·嵌入式硬件·yolo·机器人·嵌入式
WinstonMao18 小时前
STM32上电不能开机运行问题排查
stm32·单片机·嵌入式硬件
csg11071 天前
PIC单片机高阶实战(四):PIC32MX串口与4G模块通信
单片机·嵌入式硬件·物联网
BackCatK Chen1 天前
STM32保姆级入门教程|第3章:从新建工程到LED闪烁点灯(Hex生成+ST-Link/J-Link切换全攻略)
stm32·单片机·stm32cubeide·led 闪烁点灯·st-link/j-link
辰哥单片机设计1 天前
MPU6050陀螺仪(STM32)
stm32·单片机·嵌入式硬件
梦..1 天前
电路EMC问题(二)
嵌入式硬件·硬件架构·硬件工程·pcb工艺