在线时间281 小时
UID378482
注册时间2015-2-15
NXP金币181
TA的每日心情 | 奋斗 2021-7-8 09:06 |
---|
签到天数: 27 天 连续签到: 1 天 [LV.4]偶尔看看III
金牌会员
 
- 积分
- 2302
- 最后登录
- 2025-5-15
|
前面发了个讨论帖,LPC824Breakout收到,准备做块电机驱动底板,玩玩BLDC控制,看到感兴趣的坛友还挺多的,都期待分享,那我就从功能策划、硬件设计、软件设计三方面分别说说吧。先单独开个贴,讨论基于LPC824Breakout可以实现哪些功能。初步规划如下:
1.方波模式:LPC824的SCTimer/PWM模块带6路输出,三相六步方式驱动三相全桥时可以采样边沿对齐模式。
2.正弦波模式:是FOC还是查表的简单SPWM方式?待评估。SCTimer/PWM模块带6路输出可以实现带死区的互补六路输出,能胜任SPWM和SVPWM两种调制方式。LPC824的CM0+内核可以在高达30MHz下运行,且带单周期乘法器(ARM Cortex-M0+ processor (revision r0p1), running at frequencies ofup to 30 MHz with single-cycle multiplier),ROM API 还支持整数除法,估计执行FOC运算没什么问题。
3.支持有感:LPC824的IO口支持多达8个边沿或电平中断,边沿中断模式支持上跳沿、下跳沿和双跳沿(Up to eight pins can be selected from all GPIO pins as edge- or level-sensitive interrupt requests. Edge-sensitive interrupt pins can interrupt on rising or falling edges or both.),可以用来实现3路霍尔信号跳变检测. 无感方波不需要实时电角度,用双跳沿中断来确定换相时机就行了。这种处理方式有点美中不足,对需要计算电角度的FOC算法来说,要用软件计数器方式来实现霍尔周期捕获了。LPC824不带单独的输入捕获定时器,SCTimer/PWM是有4路输入捕获的,不知道能不能和6路PWM输出同时使用,很多单片机的输入捕获和PWM功能只能选其一的。
4.支持无感:无感方波的关键点是反电势过零检测,用LPC824的ADC和比较器都可以实现。12位的ADC,支持多达12路模拟通道,本身有优化的自动高低门限比较和过零检测功能(Optional automatic high/low threshold comparison and “zero crossing” detection),完全可以胜任反电势过零检测.再说说比较器:比较器有4路输入,可选内部或外部基准(Comparator with four input pins and external or internal reference voltage).外部基准可以接到虚拟中性点、三相电压分压后分别接3路比较器输入,就可以用比较器实现反电势过零检测了.
无感FOC的位置计算一般用观测器,只需要ADC采集母线电压和相电流就行,不过计算量稍大,有点担心CPU是否能处理过来。
实现目前提出的这些功能,总共需用29个IO:全桥驱动需6个PWM, 相电压检测需3个ADC,母线电压检测需1个ADC,比较器方式判断三相过零需3个cmp_in+1个cmp_ref,三路霍尔占用3个GPIO,三相电流检测(考虑三电阻方式)需3个ADC,然后调速信号需1个ADC,还可以加1个指示灯,留一路USART串口占2个IO,再扩展一片I2C的eeprom需2个IO,留出SWD(SWDIO、SWCLK、RESET)调试口需3个IO,那资源就差不多用足了(LPC824共有29个IO),其他输入输出只能和调试口复用了。为了方便查阅,列表如下:
PWM | 6 | 相电压检测ADC | 3 | 母线电压检测ADC | 1 | 相电流检测ADC | 3 | 调速信号ADC | 1 | 比较器 | 4 | 霍尔GPIO | 3 | 指示灯GPIO | 1 | USART串口 | 2 | I2C的EEPROM | 2 | SWD | 3 | 总计 | 29 |
先说这么多,大家可以脑洞大开,看看还能做些什么功能。
基于LPC824BreakOut的电机驱动(硬件篇)
https://www.nxpic.org.cn/module/forum/thread-608020-1-1.html
|
|