本帖最后由 科科1987 于 2018-1-17 20:11 编辑 大家好,请教一个问题:我用stm32f103c8作为主控通过功率驱动电路来控制一个有刷直流电机,当电机速度增大(增大PWM占空比)到一定程度时,stm32就停机了,PWM停止没有输出,其他功能也停止了工作,按理说应该是stm32受到干扰代码跑飞了,但奇怪的是,当我去转动几下电机轴后stm32又接着开始正常工作了(没有重启,速度还是停机前的速度),过一会又停机了,再转动几下电机轴后stm32又接着开始正常工作了,非常奇怪的是在stm32停机的时候它处于一个什么状态?难道是时钟停止了工作?请各位分析一下原因,谢谢。 |
谢谢! 这是定时器的配置,没有开中断,今天测试发现其他有的GPIO输出也失效了(再次转动电机后又恢复正常了),但输入一直有效。stm32的gpio口会不会在受到干扰后锁死呢?
评分
查看全部评分
2、不知道你这个是不是H桥,H桥的话你要确定桥臂上管和下管的驱动之间要有死区时间,感觉有可能是你死区时间设置过小,在增加PWM占空比过大时,出现了上下管近似同时导通的状态,
3、还有一个就是监控一下你的直流母线电压,看在发生你这个问题时,电压是否变化,看是不是电源功率不够,带不起来
评分
查看全部评分
是否可能是电机本身过流保护了。
评分
查看全部评分
谢谢指导,硬件电路没有过流保护功能,stm32时钟电路受干扰会不会停止工作?
一般说来,即使受到干扰,时钟也不会停止,只能是程序跑飞了。一旦跑飞了,是回不来的。而你转动一下电机,又能正常工作,所以个人认为时钟和程序应该都一直在正常工作,问题应该出在电机硬件上。
前段时间弄个直流电机,PWM有输出,但是电机不转。是因为电压不够,我用了5V供电,PWM占空比是25%。当设置占空比到50%后,电机转起来了,然后再降回25%,依然在转。
评分
查看全部评分
谢谢指导!在停机时用示波器看stm32的PWM输出引脚没有PWM波形,难道stm32受到干扰后寄存器会随机改变吗,比如像这种现象是不是pwm控制寄存器受到干扰而改变了?
谢谢! 停机时,用示波器查看了STM32的PWM波形和电机两端电压,pwm停止输出了,电机两端也没有了电压。而且这种现象比较随机,不是每次都出现,10次可能就会出现2两次。
先测试一下空载,确保空载时PWM正常。
然后建议换一个电机试试看,电机前端加上电容了吗?
电机调速时,用示波器检测MCU供电电压是否有被拉。
最好提供必要的现象证据以供分析。
评分
查看全部评分
谢谢!都是在空载的情况下测试的,电机前端加过电容,现象依然会出现,stm32程序没有跑飞,也没有复位,只是停在那里不动了,如果转动几下电机有可以继续运行,就这点想不明白。
示波器测试一下晶振是否有停振?cpu不会无缘无故停在那里不动,除非进入halt之类模式,除非停振。
评分
查看全部评分
谢谢!
也怀疑过外部晶振停止,程序改成内部时钟后也会出现这种现象;如果进入halt就不会继续接着运行了。
æ¶æ¯æ³¢å½¢