STM32F4高级定时器的刹车功能
请问下外接高级定时器1的刹车引脚后,STM32中能不能做滤波,因为这个刹车功能一旦触发就直接关闭PWM波了,要是因为噪声等干扰意外触发,整个控制都关闭了,还有PWM是在刹车的中断服务函数执行前关闭,还是执行后关闭呢?如果是在执行后关闭,可以在这里做软件滤波吗 针对刹车信号进行滤波是可能的,有时也是需要的。所以,后来推出的STM32系列里的高级定时器都有针对刹车信号的滤波配置,当然是 硬件完成的。比方G0/G4/F7/U5...都支持针对刹车信号的滤波。
我看了下,好像就是早期的F1 F4系列不支持系统,我们尽量使用ST后来推出的系列,往往有更好的性价比。
至于发生刹车事件的PWM关闭,那就不用等到进到中断服务程序了,即不用等CPU来干预了。相关刹车硬件
模块直接将相应PWM输出关闭并进入预定的空闲或安全状态。 只能通过硬件滤波吗 刹车引脚用于接收外部的刹车信号,当刹车信号被触发时,PWM 输出会立即关闭,以保护电机或其他驱动设备。 高级定时器的刹车(Brake)输入默认是硬件级触发的,一旦有效就立刻关闭 PWM,来不及执行中断,所以软件滤波基本没戏。 STM32 的刹车信号可以配合 ETR 入口的数字滤波器,不过具体能不能应用在刹车引脚上,你可以查查 TIMx_BDTR 寄存器的相关配置。 如果是噪声导致误触发,可以试试在刹车引脚外接 RC 滤波,或者用施密特触发器来提高抗干扰能力。 刹车功能的硬件响应速度极快,远远快于中断处理,所以 PWM 关闭肯定是在中断执行前发生的,没办法在中断里再做判断。 如果你的需求是防止误触发,可以考虑使用 BKIN(刹车输入)配合 BKF(刹车滤波器)参数,TIM1/TIM8 都支持 BKF 设置。 你可以检查 TIMx_BDTR 里的 BKE(刹车使能)和 BKP(刹车极性),有时候误触发可能是信号极性设置不对造成的。 如果你的系统对抗干扰要求高,可以考虑使用 LOCK 机制,把关键参数锁死,防止噪声干扰导致意外改写寄存器。 你试过 AOE(自动输出使能)位吗?它可以影响刹车后的 PWM 行为,或许能在某些场景下帮你优化响应逻辑。 如果不想直接关闭 PWM,你可以试试 MOE(主输出使能)结合 OSSR 和 OSSI 配置,让 PWM 进入安全状态而不是完全关断。 你是怎么触发刹车的?是直接接外部信号还是用过流检测?如果是后者,可以看看运放/比较器的输出是否需要额外的去抖处理。
页:
[1]