0

我正在使用 STM32F030C6 进行 BLDC 电机控制项目,但我对在限流电路中发现的错误感到困惑。

我正在应用逐周期电流限制。在外部,我有一个(足够快的)运算放大器放大器测量组合三相接地路径中的电流。还有一个高速比较器将放大值与设定值进行比较。该比较器的输出被馈送到 PB12 上的 TIM1_BKIN 输入。当电流上升太高时,比较器翻转,STM32 关闭 PWM。

通常这可以完美地工作(参见示波器图像中的第一个周期)。比较器输出 (CH2) 变低,测量电流 (CH1) 立即开始下降。

示波器截图

顺便说一句,当信号耦合到我的探头中时,您可以看到 H 桥切换,从而导致尖峰。

第二次 - 实际上这种情况发生了很多次 - 中断输入似乎对下降沿没有反应,因为电流不断上升并在 4.6us 后关闭。

为了消除软件禁用 BRK 输入的可能性,我在 TIM1_BDTR 寄存器上激活了锁定级别 1。执行此操作的代码是使用 STM32CubeMX 4.14.0 生成的。

我不明白为什么会发生这种情况,因为 BRK 输入是异步工作的,甚至不需要中断。有任何想法或要求提供更多信息吗?

4

1 回答 1

0

我没有找到为什么中断输入一直不起作用。

相反,我重新设计了我的硬件以使用 ETR(外部触发器)输入而不是中断输入并清除它。这完美地工作。

于 2016-12-23T15:14:07.470 回答