CW官方开源的基于CW32L011的电机驱动开发评估板测评,已经收到两周了,前段时间太忙一直没有时间测试,今天晚上得空调试一下电机。
1.实物图片:

已经把外壳拆开了,板子是四层沉金还是很漂亮的
2.官方资料介绍
**主控MCU:**CW32L011K8T6 LQFP32(7*7)
**PCBA尺寸、工艺:**7.4 * 11.6 cm 黑色沉金
**驱动能力:**12~72V 800W MAX
板子做了三相电流采样,霍尔信号采集,反电动势采样,母线电压采样硬件支持有感/无感方波/FOC驱动;
板上预留了485或TTL接口用于通讯控制。
栅极预驱选择了一颗FD6288T,选用双NMOS作为功率驱动。
原理图和PCB李工已开源在立创开源硬件平台:下面附上链接
CW32L011电机驱动器开发评估板 - 立创开源硬件平台
预留485通讯接口或TTL通讯接口。
接口定义:
名称 |
说明 |
DC+,DC- |
直流电源输入,24V**。不能接反** |
U,V,W |
无刷电机相线(霍尔版务必与霍尔线同时正确接线;无霍尔:随便接) |
HA,HB,HC |
霍尔信号线。无霍尔时,悬空。 |
H+,H- |
霍尔电源**。无霍尔时,悬空。** |
V****E |
外接调速****信号输入(标准出货为:0 ~ 5V) |
DR |
方向控制;悬空或接GND低电平****表示方向 |
EN |
使能,悬空时运行,与GND短接时停止****运行。 |
PG |
速度反馈信号,频率可根据需要程序中调节. **** |
ALM |
预留报警输出信号。 |
GND |
GND。 **** |
5V |
5V。 **** |
A、B |
预留485通讯接口或TTL通讯接口。 |
3.开源软件介绍
李工已经开源了有感方波和无感方波的例程,例程包含堵转保护、电位器故障检测、过压保护、过流保护、欠压保护、使能信号保护、方向信号检测。可以在立创开源平台或者官方文档中找到例程。
资料链接:CW32L011开发板/活动/资料合集 - 飞书云文档
我使用的是无感方波例程,重点介绍一下过零点处理部分。使用ADC采集反电动势判断过零点,使用ATim的CCR4通道触发ADC采集,在Ton(上管打开)和Toff(上管关闭)时刻采集,Ton时刻反电动势和母线电压进行比较,当母线电压供直流电时,中性点电压为母线电压的一半。Toff时刻中性点电压应为0V,为提高检测准确性,选择一比0V高一点的固定阈值进行比较判断过零点。在检测到过零点后30°电角度换相。
void ADCS_chuli(void)
{
static unsigned char cou=0;
unsigned char hx=0;
unsigned int thre=0;
BEMFConvertedValue =SampleData[3];//[TAB_BEMFChannel[Dir][bHallStartStep1]];
RisingFalling=TAB_RFling[Dir][bHallStartStep1];
// if(Tonoroff==0) thre=120; //OFF时刻采集。0.2V阀值248
// else
thre=SampleData[5]>>1;
if(RisingFalling==FALLING)//下降沿
{
if(BEMFConvertedValue<thre)
{
cou++;
if(cou>=2)
{
cou=0;
Sta=3;
StCountComm++;//正确检测到第三相反电动势
FFlag=1;
hx=1;
}
}
else
{
cou=0;
}
}
else if(RisingFalling==RISING)
{
if(BEMFConvertedValue>thre)
{
cou++;
if(cou>=2)
{
cou=0;
Sta=3;
StCountComm++;//正确检测到第三相反电动势
FFlag=1;
hx=1;
}
}
else
{
cou=0;
}
}
if(StCountComm>=STCount&&StOk==0)//连续检测到固定数量的过零时,认为启动成功
{
StOk=1;
}
if(StOk==1&&hx==1)
{
hx=0;
if(StepTime>2000)
{
BTIM_SetAutoreload(CW_BTIM3,StepTime>>3);
BTIM_SetCounter(CW_BTIM3,0);
BTIM_Cmd(CW_BTIM3, ENABLE);
}
else
{
if(Dir==1)
{
bHallStartStep1++;
if(bHallStartStep1>=6)bHallStartStep1=0;
}
else
{
if(bHallStartStep1==0)bHallStartStep1=5;
else bHallStartStep1--;
}
Commutation(bHallStartStep1,Motor_Start_F);
}
}
}
4.程序烧录
程序的烧录我使用了官方推荐的WCH-LInk

在keil中选择DAPlink进行烧录。这个size一定要设置正确,我之前是0x4000,一直烧录不成功。

5.电机驱动测试
电机直接使用例程已经能够成功转起来了,我是用的官方购买的PMSM电机带霍尔。供电24v,VSR直接短接到5v