前言
在伺服变频器应用中,会用到 Singma-Delta ADC 进行采样,这时候如果客户使用到了STM32 自带的 DFSDM(Digital filter for sigma delta modulators)模块进行滤波,后面会与PWM 输出相关起来,这样有 Break 的封波需求,本文就这个功能以及注意事项做说明,使用STM32H723 芯片做测试验证。
配置 DFSDM 做为 TIM1 的封波信号
配置 DFSDM 的 Break 源,一般是用模块的 Anolog 的 watchdog 做为 break 的产生源,当然这边可以选择 Filter 单元的输出做为源,也可以使用 WDT 自己的 Filter 做为源。
测试效果
连续对寄存器输入相同数据 Test_Value ,设定上限是 0x400*filter,下限是 0x50*filter。
功能限制
因为 DFSDM 的输出 break 信号不同于外部管脚的输入,普通的 TIM1 的管脚 break 是电平判别,而 DFSDM 的 break 严格意义上是沿的判别,因此 TIM1 的 break 滤波功能不能用于DFSDM 的 break 源,因此 BRK Filter 在本例中应该配置为 0,配置为大于 1 的值就没有 Break的效果。
结论
本例中详细介绍了如何配置 DFSDM 的输出做为 TIM1 的封波功能,并且强调不能对来自DFSDM 的 break 源使用 TIMER 的 break 滤波,上面配置供客户参考。另外本例子中 DFSDM 的配置是测试模式,实际使用过程中客户会使用到串行输入功能,详细使用说明可参考 AN4990 以及芯片的参考手册。