我正在做一个使用STM32F030C6的无刷直流电机控制项目,我被我在限流电路中发现的一个bug搞糊涂了。
我在逐个周期地施加电流限制。在外部,我有一个(足够快的)运算放大器,测量组合三相的接地路径中的电流。还有一个高速比较器,可以将放大后的值与设定值进行比较。该比较器的输出被馈送到PB12上的TIM1_BKIN输入。当电流上升过高时,比较器翻转,STM32关闭脉宽调制。
正常情况下,这可以很好地工作(请参阅范围图像中的第一个周期)。比较器输出(CH2)变低,被测电流(CH1)立即开始下降。

顺便说一句,你可以看到H桥开关,因为信号耦合到我的探头,导致尖峰。
第二次-在实践中这种情况发生了很多次-中断输入似乎对下降沿没有反应,因为电流保持上升,并在4.6us之后关闭。
为了消除软件禁用BRK输入的可能性,我激活了TIM1_BDTR寄存器上的锁定级别1。执行此操作的代码是使用STM32CubeMX 4.14.0生成的。
我不明白为什么会发生这种情况,因为BRK输入异步工作,甚至不需要中断。对更多信息有什么想法或要求吗?
发布于 2016-12-23 23:14:07
我不知道为什么break输入总是不能正常工作。
相反,我修改了我的硬件,使用ETR (外部触发器)输入而不是break输入,并清除了这一点。这个可以完美地工作。
https://stackoverflow.com/questions/41283069
复制相似问题