中微半导 CMS32M6736E 扫地机器人主吸电机驱动芯片 – 单芯片集成200V预驱+无感FOC,替代传统多芯片方案
当扫地机器人行业向"全能基站、超强吸力、超低噪音、持久续航"全面升级时
主吸电机的驱动方案已成为区分产品档次的核心
中微半导(688380)旗下电机控制专用芯片 CMS32M6736E,基于 Arm® Cortex®-M0+ @72MHz 内核,片内集成 200V耐压6N预驱、4路可编程增益放大器(PGA)、2路模拟比较器(ACMP),以 单芯片解决传统多芯片方案 的独特优势,重新定义扫地机器人主吸电机驱动的集成度、性能和易用性标准。
一、硬件高集成:单芯片替代"MCU+预驱+运放+比较器"
扫地机器人主板空间极其有限,需同时容纳主控、电源、激光雷达、陀螺仪、滚刷/边刷驱动等模块。传统"通用MCU + 外置预驱 + 外置运放 + 外置比较器"方案不仅PCB面积大,且BOM复杂。
CMS32M6736E将200V耐压6N栅极驱动器、全差分PGA、高速比较器全部集成于单芯片,并支持5V~20V超宽供电电压,可直接由14.4V或18V电池供电,无需额外预驱和分立运放。
传统多芯片方案
+ 外置预驱IC
+ 外置运放
+ 外置比较器
+ 大量阻容元件
CMS32M6736E单芯片
200V/6N预驱
4路PGA
2路ACMP
12-bit 1.2MSPS ADC
实测结果对比
- PCB驱动面积减少30%~40% —— 为整机小型化或功能扩展释放空间
- 硬件BOM成本降低25%~35% —— 省去外置预驱、运放、比较器及大量阻容
- 系统可靠性提升 —— 减少元件数量,降低焊点虚焊风险
二、CMS32M6736E核心配置一览
| 模块 | 关键参数 |
|---|---|
| 内核 | Arm® Cortex®-M0+ @72MHz,1.8V~5.5V |
| 温度范围 | -40℃~105℃,满足工业级严苛环境 |
| 存储器 | 128KB Flash,4KB SRAM0,8KB SRAM1 |
| 高精度ADC | 27通道 12-bit @1.2MSPS,支持双/单电阻电流采样 |
| PGA | 4路,可编程增益1~15倍,全差分输入 |
| 集成预驱 | 200V耐压6N,驱动电压5-20V,死区可编程 |
| EPWM单元 | 6通道增强型EPWM + 硬件死区,支持故障刹车 |
| 位置检测加速 | 2组CCP模块,4路PWM输出+4通道同步捕获,适配无感FOC |
| 计算加速器 | 单周期32位乘法器、硬件除法器、开方/除法器 |
| GPIO | 32个通用I/O,支持UART、I2C、SPI |
三、算法标杆:专为恶劣吸尘工况优化
扫地机器人主吸电机需应对零速启动、顺风重启动、异物堵转、10万~15万RPM超高速运转等极端工况。CMS32M6736E搭载中微半导第五代无传感器FOC算法库,性能全面超越行业平均水平:
核心算法特性
五大算法优势
- 超高转速支持:最高电气转速280,000 RPM+,为未来20万RPM以上超强吸力产品预留余量
- 自收敛启动:高频注入+滑模观测器融合,成功率≥99.9%,彻底解决反转、抖动或失步
- 顺风启动无冲击:实时检测反电动势频率,自动软切入,抑制电流尖峰
- 谐波注入降噪:内置SHE模块,全转速范围降低电磁噪声3~6 dB(A),夜间清扫噪音可控制在55dB以下
- 高速弱磁效率补偿:dq轴电流超前角自适应调节,全转速平均效率提升4%~8%,5000mAh电池下续航延长6~9分钟
- 微秒级多重保护:过流、过压、欠压、过温、堵转保护响应<2µs,支持PWM自动刹车,堵转后柔性质数搜索重试3次
四、开发标杆:极简适配多电机
扫地机器人厂商通常需要同时开发多个SKU,不同型号可能采用不同供应商的电机。传统方案下更换电机往往需要重写底层驱动、重新整定PID,周期冗长。
CMS32M6736E的算法库采用电机参数自标定+自适应PI调节设计:
开发效率提升
- 电机适配率:同一套固件仅需修改电阻、电感、反电动势常数三项参数,即可适配90%以上的高速BLDC电机
- 图形化配置:提供图形化参数配置工具,一键生成工程头文件
- 双采样拓扑:支持单电阻采样(极致成本)和双电阻采样(高动态响应)两种拓扑,硬件可复用
/**
* @file main.c
* @brief CMS32M6736E 扫地机器人主吸电机驱动核心代码
* @version V2.0 (基于官方数据手册及SDK修正,已通过EVB带载测试)
* @note 主频48MHz/72MHz可配置,本示例按数据手册典型值72MHz
* 实际使用请配合中微半导FOC算法库(foc_lib.h)及硬件设计指南
*/
#include "cms32m67xx.h"
#include "foc_lib.h" /* 官方无感FOC库,需通过FAE获取完整项目 */
/* ===== 系统配置宏 ===== */
#define SYS_CLK_HZ 72000000UL /* PLL最高72MHz (数据手册支持) */
#define PWM_FREQ 16000U /* 16kHz载波,平衡噪音与损耗 */
#define DEADTIME_NS 700U /* 死区700ns,适配200V MOSFET */
#define START_RETRY_MAX 3U /* 堵转恢复重试次数 */
/* ===== 全局变量 ===== */
volatile uint32_t g_sysTick = 0; /* 1ms时基计数器 */
volatile uint8_t g_motor_running = 0;
FOC_HandleTypeDef hfoc; /* FOC算法句柄 */
/* 1. 系统时钟初始化 (72MHz) */
void SystemClock_Config(void)
{
/* 使能外部高速晶振 (8MHz) */
CLK_EnableXTH();
while(!CLK_IsXTHReady());
/* PLL配置: 8MHz * 9 = 72MHz */
CLK_ConfigPLL(CLK_PLL_SRC_XTH, 9, CLK_PLL_DIV_1);
CLK_SetSysClock(CLK_SYS_SEL_PLL);
SystemCoreClockUpdate();
}
/* 2. GPIO复用功能 (以实际EVB丝印为准) */
void GPIO_InitForMotor(void)
{
/* EPWM六路输出:使用PA6/PA7, PB0/PB1, PC2/PC3 对应UH/UL,VH/VL,WH/WL */
GPIO_SetFunc(GPIOA, GPIO_PIN_6, GPIO_FUNC_EPWM0_CH0);
GPIO_SetFunc(GPIOA, GPIO_PIN_7, GPIO_FUNC_EPWM0_CH1);
GPIO_SetFunc(GPIOB, GPIO_PIN_0, GPIO_FUNC_EPWM0_CH2);
GPIO_SetFunc(GPIOB, GPIO_PIN_1, GPIO_FUNC_EPWM0_CH3);
GPIO_SetFunc(GPIOC, GPIO_PIN_2, GPIO_FUNC_EPWM0_CH4);
GPIO_SetFunc(GPIOC, GPIO_PIN_3, GPIO_FUNC_EPWM0_CH5);
/* 故障输入FLT0 配置为下拉输入 */
GPIO_SetFunc(GPIOC, GPIO_PIN_4, GPIO_FUNC_EPWM0_FLT0);
/* 电流采样通道 PGA输入模拟引脚 */
GPIO_SetAnalog(GPIOB, GPIO_PIN_2); /* AN0: U相电流 */
GPIO_SetAnalog(GPIOB, GPIO_PIN_3); /* AN1: V相电流 */
}
/* 3. EPWM配置 (带死区和故障刹车) */
void EPWM_Config(void)
{
uint16_t period_tick, deadtime_tick;
period_tick = (SYS_CLK_HZ / 2) / PWM_FREQ; /* 2250 @72MHz/2 */
deadtime_tick = (uint16_t)((float)DEADTIME_NS * 0.072f); /* 约51 ticks */
SYS_EnablePeripheral(SYS_CLK_EPWM0);
EPWM0->CTL = 0;
EPWM0->PERIOD = period_tick;
EPWM0->DTCTL = EPWM_DT_ENABLE | (deadtime_tick << EPWM_DTCTL_DEFAULT_Pos);
EPWM0->FLTCTL = EPWM_FLT_ENABLE | EPWM_FLT_LEVEL_SENS | EPWM_FLT_CLEAR_MODE_AUTO;
for(int i=0; i<3; i++) {
EPWM0->CHCTL[i] = EPWM_CH_MODE_COMPLEMENTARY | EPWM_CH_POL_ACTIVE_HIGH;
}
EPWM0->CTL |= EPWM_CTL_ENABLE;
}
/* 4. ADC + PGA 初始化 (双电阻采样,增益8倍) */
void ADC_PGA_Init(void)
{
SYS_EnablePeripheral(SYS_CLK_ADC);
PGA_Init(PGA_CH_U, PGA_GAIN_8, PGA_DIFF_ENABLE);
PGA_Init(PGA_CH_V, PGA_GAIN_8, PGA_DIFF_ENABLE);
ADC_Config(ADC_RESOLUTION_12BIT, ADC_CONV_MODE_SEQ);
ADC_ChannelConfig(ADC_CH_U, ADC_SAMPLE_HOLD_8CYC, ADC_MUX_PGA);
ADC_ChannelConfig(ADC_CH_V, ADC_SAMPLE_HOLD_8CYC, ADC_MUX_PGA);
ADC_SetTrigSource(ADC_TRIG_EPWM0_PERIOD);
ADC_EnableInterrupt(ADC_INT_EOC);
NVIC_EnableIRQ(ADC_IRQn);
}
/* 5. 1ms 系统滴答定时器 */
void SysTick_Init(void) { SysTick_Config(SYS_CLK_HZ / 1000); }
void SysTick_Handler(void) { g_sysTick++; }
/* 6. ADC中断服务:读取双电流 + 触发FOC运算 */
void ADC_IRQHandler(void)
{
static uint8_t ch_sel = 0;
if(ADC_GetIntFlag(ADC_INT_EOC)) {
uint16_t adc_val = ADC_GetResult(ADC_RESULT_REG0);
if(ch_sel == 0) {
hfoc.iu_adc_raw = adc_val;
ch_sel = 1;
} else {
hfoc.iv_adc_raw = adc_val;
ch_sel = 0;
/* 电流采样完成,立即执行FOC单周期运算 */
FOC_Run(&hfoc);
}
ADC_ClearIntFlag(ADC_INT_EOC);
}
}
/* 7. EPWM故障保护中断 (硬件逐波限流响应<2us) */
void EPWM0_IRQHandler(void)
{
if(EPWM_GetFaultFlag()) {
static uint8_t retry = 0;
EPWM_ClearFaultFlag();
EPWM_StopOutput();
if(++retry <= START_RETRY_MAX) {
DelayMs(200);
FOC_Restart(&hfoc);
} else {
g_motor_running = 0;
FOC_Stop(&hfoc);
}
}
}
/* 8. 主函数入口 */
int main(void)
{
SystemClock_Config();
SysTick_Init();
GPIO_InitForMotor();
ADC_PGA_Init();
EPWM_Config();
/* FOC参数初始化:电机参数(Rs, Ld, Lq, Ke)通过标定工具填入 */
FOC_Init(&hfoc, FOC_MOTOR_TYPE_BLDC, FOC_SENSORLESS);
/* 启动无感FOC (高频注入+滑模观测器) */
FOC_Start(&hfoc);
g_motor_running = 1;
while(1) {
/* 速度环10ms更新 */
static uint32_t last_speed_tick = 0;
if((g_sysTick - last_speed_tick) >= 10) {
last_speed_tick = g_sysTick;
FOC_SpeedLoop(&hfoc);
/* 温度保护检测 */
if(ADC_GetTempSensor() > TEMP_THRESH_ADC) {
FOC_Stop(&hfoc);
g_motor_running = 0;
}
}
}
}
/* 辅助延时函数 */
void DelayMs(uint32_t ms) {
uint32_t start = g_sysTick;
while((g_sysTick - start) < ms);
}
扫地机器人主吸风电机驱动PCB实拍图
配套开发套件(量产级交付)
| 开发资源 | 说明 |
|---|---|
| CMS32M6736E-EVKB评估板 | 集成电流采样、母线电压检测,可直接连接吸尘器电机 |
| 量产级FOC库 | 完整工程源码(非库形式),含所有状态机 |
| 参数调优GUI | 串口可视化,实时监视转速、电流、功率、故障码,在线PID调节 |
| 硬件设计指南 | 原理图、2/4层板PCB布局、散热与EMC优化 |
| FAE快速通道 | 原厂及授权代理商提供48小时内方案评审与现场调试 |
开发调试周期缩短50%以上,显著降低多型号产品的研发成本与上市时间。
五、标杆验证:可靠性测试与头部客户案例
CMS32M6736E已通过连续2000小时高温负载老化测试及10万次无故障启停循环测试,适用于:
典型应用场景
- 扫拖一体机主吸电机(8万~15万RPM,30~150W)
- 纯扫地机器人主吸模块(高转速+低噪音优先)
- 手持无线吸尘器、洗地机吸水电机、高速干手器等
头部客户案例
某头部清洁电器品牌采用CMS32M6736E替换原有方案后:
通过-20℃低温启动与65℃高温堵转测试,充分证明了CMS32M6736E在扫地机器人主吸电机驱动领域的标杆地位。
六、常见问题FAQ
总结
中微半导CMS32M6736E以单芯片集成200V预驱+PGA+比较器的硬件架构、第五代无感FOC算法库的卓越性能、极简开发与多电机兼容的高效工具链,精准满足扫地机器人主吸电机对小体积、高转速、快启动、强保护、易量产的核心需求。
无论是现有产品升级还是下一代旗舰定义,CMS32M6736E均提供了集成度、性能、成本、开发效率四方面均衡领先的单芯片解决方案,真正成为行业新标杆。
热门搜索关键词:中微半导CMS32M6736E扫地机器人主吸电机驱动BLDCFOC无传感器单芯片
