仗剑天涯1412 发表于 2025-2-22 20:05

【APM32M3514开发板测评】 走进极海 探索电机

本帖最后由 仗剑天涯1412 于 2025-2-23 20:51 编辑

#申请原创# @21小跑堂

首先感谢21ic平台和极海的支持,提供了这次测评的机会,让我第一次尝试电机的开发板,也是第一次真的使用电机。今天测评的这款开发板是APM32M3514电机通用评估板,以APM32M3514芯片为中心,外设配置LED灯,按钮,电机接口。极海APM32M3514电机通用评估板适配各类12V~72V低压应用场景,可对高速风扇、高速吹风筒、园林工具、四轴飞行器电调等电机应用,进行初步方案验证和算法移植测试,帮助用户更好了解极海电机芯片特性。极海APM32M3514电机通用评估板配各种低压应用场景,用于初步方案验证,以及进行软件层面程序验证,帮助用户更好了解极海电机芯片特性,方便开发及算法移植测试。话不多说快进到开箱,一整个惊艳:

系统实物图如图所示,其中主要有以下五个接口:
(1)电源输入接口(接入 24V,注意正负)
(2)三相电机接口(相序只会影响旋转方向)
(3)HALL 输入接口
(4)SWD 调试接口
(5)USB type-c 接口

再来一个高清效果图:

1.资料获取
极海官网提供了丰富的手册资料和开发工具,助力快速开发产品,官网传送门:珠海极海半导体有限公司

今天测评的APM32M3514开发板所有工具资料都可以通过链接获取:https://www.geehy.com/design/hardware_detail/77






2.硬件设计
通过两页资源可以快速判断是否满足项目需求。


性能特点
[*]12V~72VDC宽电压输入

[*]最大功率100W
[*]支持电机类型: BLDC、PMSM
[*]支持编码器类型: 霍尔、光电、磁编码器
[*]通讯接口: SCI、SPI、I2C、CAN
[*]单/双电阻采样、三相反电动势采样
[*]芯片优势:内置200V 6N Gate Driver和3.3V LDO

2.1电源电路
电源电路部分比较简单,主要是有一个LM5164的DCDC电源芯片将供电输入端电压VM转换为12V电压,用于后续二级降压和单片机VCC使用。12V电压在降压转换为3.3V,另外有一个LED用于显示上电状态。LM5164 是一款设计用于可靠和坚固应用的同步降压转换器,能够在宽输入电压范围内调节,支持 6V 至 100V 的输入电压范围,具有固定的 3ms 内部软启动计时器,峰值和谷值电流限制保护,输入欠压锁定和热关断保护,适合工业电源和高电池计数电池包应用。
如图所示,电源电压 V_BUS =VM/((100K+100K+10K)/10K)=VM/21
采用 12 位 ADC,采样范围 0-3.3V 对应 0-4096
则 3.3V 对应最大可采样电压为:VM= 3.3 *21 =69.3V
2.2最小系统电路如果是第一次使用极海的这款芯片或者是以学习电机的角度,最小系统电路部分可以参照官方的设计。


如图所示,APM32M3514 MOTOR EVAL V1.0 板级硬件接口资源使用情况如上图所描述。HSE
外部晶振输入采用 8MHz,烧录采用 SWD 烧录接口。

2.3通信接口及按键电路这部分电路主要是一个LED灯作为故障状态显示,两个按键分别作为电机的正反转和停止功能使用。最后就是一个USB转串口的CH340芯片。在嵌入式开发中,如果有与电脑等设备有线通信的需求时,大多会使用此类USB转串口功能的设计,因为电脑的USB接口较多同时部分电脑可能没有串口接口,同时部分用户可能也没有串口线。此时USB转串口就会比较方便用户。


如图所示,APM32M3514 MOTOR EVAL V1.0 板级硬件预留有 USB 转串口以及故障指示灯,以
便开发者调试使用;两处按键负责控制电机运行方向及锁车功能。

2.4反电动势与霍尔检测电路


2.5相电流采集电路


如图所示,IU = UI*4.86+1.60
其中 4.86 为运放放大倍数,1.6 为偏置电压,推导过程如下所示:

R3 为 10K 反馈电阻和内部 294K 电阻的耦合,耦合后的阻值为 9.761K
根据虚断,正端可列式子:


同理,负端可列式子:


根据虚短:U+ = U- ,最终可得:1.604 + 4.86Uin = Uo
其中 1.604 为偏置电压,4.86 为放大倍数
采用 12 位 ADC,采样范围 0-3.3V 对应 0-4096
如图 3 所示,采样电阻选用 0.02R,
则 3.3V 对应的最大峰峰值电流为 1.6/4.86/0.02=16.46A。

3.数据备份养成一个好习惯,在进行新的开发任务前,对原有的数据进行备份。因为没有出厂程序源码,所以可以先读取原有程序进行备份。将type-c数据线连接电脑和开发板,电脑的设备管理器中会出现一个名为“USB-SERIAL CH340”的串口名称,这个就是开发板上的CH340芯片将US转换成的串口。
因为第一次使用极海的芯片和开发板,没有极海的烧录器,所以使用STLink尝试。打开STM32 ST-LINK Utility,点击Target->Connect即可连接单片机。


连接完成后会读出芯片内的程序如下:

选择合适的读取大小读取存储器数据,当出现一连串的0xFF湿就已经读取完所有字节了。可以导出.bin文件保存。


4.FOC例程4.1整体程序架构
此项目整体代码架构主要可划分为 4 层,用户层、外设驱动层、电机控制驱动层以及电机算法层,具体功能描述如下:
4.1.1用户层(USER 层)

[*]main.c:主函数入口,负责初始化电机参数、底层外设、中断优先级、while 循环及低速状态机环路的切换;
[*]APM32M3514_int.c:所有的中断处理函数,重点包括 TMR1 中断函数、ADC 中断处理函数;
[*]user_function.c:包括电机参数的初始化配置、参数复位等处理函数;
[*]parameter.h:包括了所有的需要配置参数信息;


4.1.2外设驱动层(HARDWARE 层)
外设驱动层主要负责 APM32M3514 芯片的外设驱动函数及配置,主要涉略包括 GPIO、PWM、
ADC、OPA、COMP、M0CP 协处理器等,具体如下图所示。


4.1.3电机控制驱动层(MOTOR_CONTROL 层)
电机控制驱动层主要负责电机的控制运行逻辑及核心处理算法调用,具体如下图所示。


4.1.4极海电机算法层(Geehy_MCLIB 层)
电机算法层包括坐标变换、矢量控制等相关函数,数学库,滑模观测器等库函数。





4.2状态机介绍
本案例中采用了主状态机嵌套子状态机的结构,如下所示:
四个主状态:INIT、STOP、FAULT、RUN;
同时主状态 RUN 的六个子状态:run-calib、run-ready、run-align、run-startup、run-spin、
run-freewheel。对主状态机的描述如下:

[*]Fault:当系统有错误发生时一直处于此状态,直到错误的标志位被清除;而后会延时一段时间,然后从 Fault 状态跳转到 STOP 状态等待起动命令。
[*]Init:此主状态执行变量初始化。
[*]Stop:系统完成初始化等待速度命令。此状态下关闭 PWM 输出。
[*]Run:当在运行状态时,若有 Stop 指令下发,便会执行系统停止运行操作。当运行在 Run 状态时,其子状态会相应被调用并执行。
[*]Run-Calib:可以执行电流偏置 ADC 自校准功能。执行完此状态后系统将切 Ready 状态,同时禁止 PWM 输出。
[*]Ready:使能 PWM 输出,同步采样电流,并执行异常状态检查。
[*]Align:执行采样电流,调用预定位算法,同时更新 PWM。在指定时间内执行,系统将切换到Startup 子状态,同时采样直流母线电压并滤波处理。
[*]Startup:采样电流,采用开环起动电机,并调用观测器估计转子转速和位置,调用相应算法,更新 PWM。如果起动成功,系统将进入 Spin 子状态,同时采样直流母线电压并滤波处理。
[*]Spin:采样电流,调用观测器估计转子转速和位置,调用相应算法,更新 PWM,电机开始切入闭环运行。
[*]Freewheel:使能 PWM 输出,并采用短接制动的方式进行停机,由于转子惯性,需等待到电机


停止运行后再进行状态的切换,进而切换到 Ready 状态。如果有错误发生则将进入 Fault 状态。
综上所述,系统的状态机流程图如下图所示。


4.3顶层外设配置
4.3.1PWM 输出配置
void Drv_Pwm_Init(uint16_t u16_Period,uint16_t u16_DeadTime)
(1) PWM 通用配置如下所示:
设置 PWM clock 分频为 1 分频,选用中心对齐模式 2,设置重复计数器为 1,如下图所示。


选择中心对齐模式 (Center Aligned Mode Select),
中心对齐模式下,计数器交替的向上向下计数; 否则只向上或向下计数。
不同的中心对齐模式, 影响输出输出通道的输出比较中断标志位置1 的时
机; 在计数器禁止时 (CNTEN=0) 时 ,选择中心对齐模式。
00: 边沿对齐模式
01: 中心对齐模式1 (在向下计数时, 输出通道的输出比较中断标志位置1)
10: 中心对齐模式2 (在向上计数时, 输出通道的输出比较中断标志位置1)
11: 中 心对齐模式3 (在向上/下计数时, 输出通道的输出比较中断标志位
置1)


(2) PWM输 出状态配置
设置 PWM 上下管输出状态,并使能配置上下管PWM 输 出有效,
配置使能刹车,配置刹车极性, 禁止自动输出, 防止刹车后PWM在下一个更新事件时自动输
出。


在递增计数时,当 TMR1_CNT<TMR1_CCR1 时通道 1 为无效电平,否则为有效电平;
在递减计数时,当 TMR1_CNT>TMR1_CCR1 时通道 1 为有效电平,否则为无效电平。



4.3.2ADC配置
void Drv_Adc_Init(void)
1、ADC 底层配置
采用 DMA 模式,ADC 量化后的数据直接搬运到 ADC_ConvertedValue 数组中存储,ADC 触发
条件采用 TMR1 的 CC4 作为触发源,开启 ADC 使能及配置 ADC 中断优先级及其使能。具体如
下图所示。















5.驱动移植






6.感想与总结








lihuasoft 发表于 2025-2-22 23:01

本帖最后由 lihuasoft 于 2025-2-22 23:05 编辑

运放放大倍数推导那一段,正确写法应该是先依据“虚断”,后依据“虚短”。官方文档是写错了的,我在评估群里已向他们反馈过。此贴把错误也搬来了:)
页: [1]
查看完整版本: 【APM32M3514开发板测评】 走进极海 探索电机