我正在使用STM32F030C6进行BLDC电机控制项目,我对在限流电路中发现的错误感到困惑。
我正在应用逐周期电流限制。在外部,我有一个(足够快)运算放大器,用于测量三相组合的接地路径中的电流。还有一个高速比较器,用于将设定值与设定值进行比较。该比较器的输出馈入PB12上的TIM1_BKIN输入。当电流过高时,比较器翻转,STM32关闭PWM。
通常情况下这是完美的(参见范围图像中的第一个循环)。比较器输出(CH2)变为低电平,测量电流(CH1)立即开始下降。
顺便说一下,当信号耦合到我的探头中时,您可以看到H桥切换,导致尖峰。
第二次 - 实际上这种情况多次发生 - 中断输入似乎没有对下降沿做出反应,因为电流持续上升并在4.6us后关闭。
为了消除软件禁用BRK输入的可能性,我在TIM1_BDTR上激活了锁定级别1 寄存器。执行此操作的代码是使用STM32CubeMX 4.14.0生成的。
我不明白为什么会发生这种情况,因为BRK输入异步工作,甚至不需要中断。有关更多信息的任何想法或要求吗?
答案 0 :(得分:0)
我没有找到为什么断点输入不能一直工作。
相反,我重新设计了我的硬件以使用ETR(外部触发器)输入而不是中断输入并清除它。这非常有效。