孤独stranger 发表于 2014-1-13 14:13:03

k60 程序跑飞(已解决)

本帖最后由 FSL_TICS_ZJJ 于 2014-1-28 11:29 编辑

做平衡直立车,
发现电机一启动的时候,K60端电压,虽然加了稳压芯片,但电压,还是会骤变,从3.3一下跳到2.9
而且一搞,程序就死了,串口打印有时候会报硬件内核错误,
程序就两个中断,一个定时器中断1ms ,一个串口接收中断,
设置的定时器中断比串口中断优先级高
求解释,可能是什么原因导致程序跑飞?

FSL_TICS_ZJJ 发表于 2014-1-13 15:59:33

你好,你的芯片电源和电机电源有没有隔离?这个很重要!是电机的信号串扰过去了!

FSL_TICS_Robin 发表于 2014-1-13 16:04:51

注意功率地线与芯片地线连接方式

如果有条件电源、信号最好做隔离,把MCU与功率器件分开。

电机启动软件上加个渐变过程,别直接给目标占空比值。比如你想要输出50%占空比,程序不要直接给50%(哪怕你程序给到50%电机也无法立即响应)。

我觉得这样能稍微改善你说的芯片复位问题

孤独stranger 发表于 2014-1-13 16:20:39

FSL_TICS_ZJJ 发表于 2014-1-13 15:59
你好,你的芯片电源和电机电源有没有隔离?这个很重要!是电机的信号串扰过去了! ...

加了光耦隔离,但是貌似没有隔离地

FSL_TICS_ZJJ 发表于 2014-1-13 16:28:28

孤独stranger 发表于 2014-1-13 16:20
加了光耦隔离,但是貌似没有隔离地

最好隔开,不然不行啊。
你割开加些磁珠试试!

孤独stranger 发表于 2014-1-15 12:01:50

FSL_TICS_ZJJ 发表于 2014-1-13 16:28
最好隔开,不然不行啊。
你割开加些磁珠试试!

把电机下了,debug 单步调试的时候,程序经常死在这里
while (MCG->S & MCG_S_IREFST_MASK){}; // 等待参考时钟清零

为什么啊

FSL_TICS_ZJJ 发表于 2014-1-15 14:37:05

孤独stranger 发表于 2014-1-15 12:01
把电机下了,debug 单步调试的时候,程序经常死在这里
while (MCG->S & MCG_S_IREFST_MASK){}; // 等待 ...

你好,这句话说明你的外部晶振不稳定,你可以使用内部时钟试试。

laotui 发表于 2014-9-1 12:59:09

学习了最近准备再做一个平衡车,提前注意一下。
页: [1]
查看完整版本: k60 程序跑飞(已解决)