日前老大给了个方案,要用ADC检测过零点方案做BLDC控制器,要是用ST的芯片是挺容易的,但是老大让用新唐N79E814来自做,先说说这个芯片的资源吧!(1)4路10Bit的PWM,(带死区带互补模式那你就想多了,PWM中断也没有) (2)定时器/计数器 2 组16-位定时器/计数器. 一个16位定时器带三路输入捕获功能 (3)ADC 10-位 A/D 转换器 最高达150 Ksps.(每秒采样率) 8个模拟输入通道 这些资源貌似是够用了,还好电机速度要求不快,我想用ST的芯片先做一下,当然不能用ST的很多功能,例如:同步整流,ADC+DMA,这些都不能用, 有没有大神有什么好的方案给小弟参考一下呢? |
好吧!修改了之前用比较器检测过零的代码,替换成ADC检测反电动势,原以为速度回大打折扣,没想到速度还是可以的。ST的处理能力就是牛啊!
先看图!
电角度是2.148KHZ,这个速度要移植到51平台上,能够剩下一半我就很满足了,目前就是启动还是有点问题!因为N79E814单片机还不支持读取PWM的计数值,也就是说想去掉斩波情况那是不可能了,虽然每次都能启动来,但是比利用比较器启动差劲的多!
后续会慢慢在改进。
请教楼主,我的控制器中断频率为20Khz,电机电角度为1Khz,同样使用ADC进行过零检测,但是升速到600HZ左右就会出现问题,换相失败导致失步或者母线电压抬高触发保护,大佬有遇到过这种问题吗?求大佬指点