rabi 发表于 2024-6-14 14:48:47

关于无刷电调BEMF的问题

本帖最后由 rabi 于 2024-6-14 15:03 编辑

学了STC8H8K视频教学中梁工补充的PWM控制电机视频后,仿照梁工提供的电路图自己画了块PCB,成功实现了六拍的开环控制。

但在打算进一步完成BEMF过零检测时,发现经过分压后的ADC端的平均电压才约为比较器负输入端CMP-的十分之一,进而导致二者的差值不存在过零点。


即等同于上图梁工视频中的ADC10/9/8采集到的电压远小于CMP-处的电压。
请问为什么会出现这种状况?又该如何修复?谢谢!

补充说明
部分参数
- 主控STC8H1K08
- 电机输入电压为3V
- 单片机输入3.3V
- 每步间隔2ms
- PWM占空比100/255
- PWM频率约为43kHz

出问题的PCB原理图(各阻容的数值均与梁工提供的一致)



核心代码(主函数中初始化后直接进入该函数)



示波器波形(红色为ADC_U,黄色为CMP-,橙色为二者差值)



其他说明
- PCB上的元件均是由嘉立创SMT的,应该不存在焊接问题
- 示波器无源探头和示波器设置均为1x
- 电机是2204 1400kv的,在上述代码下可正常运转



梁工 发表于 2024-6-17 10:58:14

按理不应该的。
CMP-是3个信号的中点,反电动势相对于CMP-是正负变化,不会一直低于或高于CMP-,所以请仔细检查电路是否有误。
我的图中是按最高供电24V设计的分压电阻网络,适用12~24V,如果你的供电电压低于12V或高于24V,请参考STC32G12K128的版本,使用驱动IC驱动MOSFET,并且修改分压电阻以适应你的电压。
页: [1]
查看完整版本: 关于无刷电调BEMF的问题