[开发板] CW32L011电机驱动器开发评估板测评记录

[复制链接]
37|0
RainEc 发表于 2025-8-28 21:37 | 显示全部楼层 |阅读模式

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

1.实物图片:

bce72d84e19888fad529eaff97a6022f.jpg

已经把外壳拆开了,板子是四层沉金还是很漂亮的

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部