• 正文
  • 相关推荐
申请入驻 产业图谱

极海 APM32F035 无感方波 BLDC 控制方案开发实操

23分钟前
71
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本文基于珠海极海半导体 AN1098 (V1.1) 官方应用笔记,完整解读 APM32F035 MOTOR‑EVAL 评估板无感方波(六步换相)BLDC 电机整套软硬件实现方案,包含芯片资源、硬件电路、软件分层架构、状态机流转、关键参数、整机调试流程。全部参数、电路逻辑、代码框架均源自原厂文档,适合风机、水泵、小型无刷驱动项目前期评估与移植参考。

资料获取:AN1098 APM32F035 MOTOR EVAL无感方波控制方案

1. 项目概述与芯片硬件资源

1.1 无感方波方案设计规格

本方案采用ADC 采样反电动势完成转子角度估算,实现 BLDC 无传感器六步方波换相,不需要外接霍尔器件,降低整机硬件成本,适合中小功率无刷电机应用。

项目 规格参数
控制方式 无感方波六步换相
PWM 调制模式 HPWM_LON
转子角度获取 ADC 检测反电动势过零点
PWM 载波频率 8KHz
适配电机极对数 2 对极
电机工作转速范围 0‑3000RPM
电机起动策略 6‑Step 开环预定位启动
内置保护功能 过压、欠压、过流、堵转保护
固件代码占用 Flash <10Kbytes
开发 IDE Keil C V5.23 及以上版本

1.2 APM32F035 芯片外设资源清单

APM32F035 是面向电机控制的专用 Cortex‑M0 + 内核 MCU,内置 M0CP 协处理器,集成 Cordic、硬件除法、SVPWM 数学加速单元,片上集成多路运放、比较器,减少外部模拟器件,分为 LQFP48(C8T7)、LQFP32(K8T7)两种封装。

资源项 APM32F035‑C8T7(LQFP48) APM32F035‑K8T7(LQFP32)
内核 & 最大主频 Cortex‑M0+ @72MHz Cortex‑M0+ @72MHz
Flash 64KB 64KB
SRAM 10KB 10KB
定时器 32 位通用 ×1;16 位通用 ×2;高级定时器 ×1;基本定时器 ×2;24 位计数器 ×1 同左
看门狗 独立看门狗 ×1、窗口看门狗 ×1 同左
RTC 实时时钟 1 路 1 路
通信外设 USART×2;SPI/I2S×1/1;I2C×1;CAN×1 同左
ADC (12 位) 外部通道 16 路,内部通道 3 路 外部通道 12 路,内部通道 3 路
比较器 COMP 2 路 2 路
运算放大器 OPA 4 路 2 路
GPIO 引脚数量 42 个 27 个
工作电压 2.0V~3.6V 2.0V~3.6V
温度范围 环境‑40℃~105℃,结温‑40℃~125℃ 同左

2. 硬件系统设计说明

2.1 整机硬件系统架构

整套评估板外部输入24V 主电源;电源调节模块输出多路电压:12V 供给栅极驱动芯片,3.3V 供给 APM32F035 主控,功率 MOS 管直接使用 24V 母线供电。 调速指令:电位器旋钮输出 0‑3.3V 模拟电压给到 ADC 输入,电压超过启动阈值电机运行;电压低于阈值电机停机。 电机运行阶段,ADC 采集三相反电动势 BEMF 信号,识别过零点完成六步换相;电流检测电路配合片内 OPA、COMP 实现硬件过流刹车保护。

2.2 关键接口电路解析

  1. 电源与母线电压采样电路 母线电压分压公式:V_BUS = VM / ((100K+100K+10K)/10K)=VM/21;ADC 0‑3.3V 输入对应最大可采样母线电压 69.3V。
  2. 反电动势 BEMF 采样电路 三相 U/V/W 相电压采用电阻分压采样,分压系数同样为 21,把高压反电动势衰减至 ADC 可接受 0‑3.3V 范围,搭配 RC 滤波网络抑制开关噪声。
  3. 过流保护电路 采样电阻选用 0.02Ω;使用片内 OPA4 放大母线采样信号,输出给到 COMP1 反相输入端;COMP1 正向输入端分压得到 3V 阈值;3V 对应硬件触发过流保护最大电流 13.5A。COMP 输出直接连接高级定时器 TMR1 的 BKIN 刹车输入,触发硬件刹车。
  4. 外设按键与指示电路 板载 USB 转串口用于调试打印;PC15 故障 LED 指示灯;两个按键分别实现电机前进 / 后退方向切换、锁车功能;系统使用 8MHz 外部 HSE 晶振,SWD 作为程序烧录调试接口。

2.3 评估板实物接口说明

板上 5 个关键接口:

  1. ①:24V 电源输入端子,严格注意电源正负极;
  2. ②:三相 BLDC 电机接线端子;相序仅会改变电机旋转方向;
  3. ③:HALL 霍尔输入预留接口,本无感方案不使用霍尔;
  4. ④:SWD 程序调试烧录接口;
  5. ⑤:跳线帽,使用评估板时必须接上。

3. 软件程序架构解析

3.1 四层软件分层结构

整个工程分为四层,模块职责划分清晰,便于功能裁剪与二次移植。

  1. USER 用户层:main.c 主入口、中断服务文件 user_function.c、参数头文件 parameter.h、板级初始化 board.c。负责系统初始化、参数配置、主循环、状态机调度。
  2. HARDWARE 外设驱动层:drv_adc.c、drv_time.c、drv_io.c、drv_opa.c、drv_comp.c、drv_m0cp.c、drv_system.c。完成 GPIO、PWM、ADC、OPA、COMP、M0CP 协处理器、系统时钟底层驱动。ADC 由 TMR1‑OC4 触发 DMA 搬运采样数据。
  3. MOTOR_CONTROL 电机控制驱动层:BLDC_SensorLess.c、StateMachine.c。实现相位切换、开环 / 闭环运行、故障处理,全部主、子状态机逻辑。
  4. Geehy_MCLIB 电机算法层:提供反电动势过零点检测、数学运算基础库函数。

3.2 主 / 嵌套子状态机完整逻辑

采用主状态机嵌套 RUN 子状态机架构。

四大主状态

  1. INIT:系统上电,变量、外设初始化,初始化完成跳转 STOP;
  2. STOP:等待速度指令,关闭 PWM 输出;收到有效速度指令进入 RUN;出现错误进入 FAULT;
  3. FAULT 故障状态:发生过流、堵转、过欠压等故障停留在此状态;清除故障标记,延时 FAULTRELEASE_TIME 之后回到 STOP;
  4. RUN 运行主状态:电机工作,收到停机命令或者故障事件,退出 RUN 状态。

RUN 内部 6 个子状态

  1. Run‑calib 校准:完成采样校准,结束后进入 Run‑ready,PWM 关闭;
  2. Run‑ready 就绪:清除闭环标记,判断速度指令,超过阈值跳转 Align 预定位;
  3. Run‑align 预定位:输出固定占空比 PWM,把电机转子强制对齐到指定位置,计时结束进入 Startup;
  4. Run‑startup 开环启动:六步开环拖动电机,等待反电动势能够可靠检测,切换 Spin 闭环;
  5. Run‑spin 闭环运行:依靠 ADC 反电动势过零点估算转子位置,执行闭环调速,正常工作主要运行在此状态;
  6. Run‑freewheel 惯性滑行停机:短接制动,等待电机转速降低,回到 Ready 就绪状态;故障触发则跳入 FAULT。

3.3 核心外设初始化配置要点

  1. 高级定时器 TMR1 (PWM)
  • 时钟 1 分频,向上计数模式,重复计数器 = 1;
  • 配置死区时间,使能刹车 BKIN 输入,关闭刹车硬件自动输出恢复;
  • 使用 PWM2 模式生成互补上下管驱动波形。
  1. ADC 配置
  • DMA 搬运采样结果,触发源来自 TMR1 的 OC4 事件;开启 ADC 中断与中断优先级配置。
  1. OPA 运算放大器 初始化流程:先 DISABLE 全部四路 OPA,配置外部电阻增益模式,再使能 OPA。
  2. COMP 比较器(过流保护) COMP1 输出接到 TMR1 BKIN 刹车输入,反向输入接 OPA4 电流采样输出,低电平触发硬件刹车。

3.4 工程关键参数一览表

全部参数存放在parameter.h头文件,更换电机需要针对性修改。

系统参数

参数 说明 参考设定值
SYS_REFV 系统参考电压 3.3V
SYSCLK_HSE_72MHz 系统主频 72000000Hz
PWMFREQ PWM 载波频率 8000Hz
DEAD_TIME PWM 死区 1.0μs
SLOWLOOP_FREQ 速度慢速环频率 1000Hz

底板硬件参数

参数 说明 参考设定值
ADC_REFV ADC 参考电压 3.3V
R_SHUNT 母线采样电阻 0.02Ω
CURRENT_OPA_GAIN 运放增益 5.0
I_MAX 电流标幺基准 16.5A
UDC_MAX 母线电压标幺基准 69.0V
U_MAX 相电压标幺基准 39.83V

状态机参数

参数 说明 参考设定值
FAULTRELEASE_TIME 故障复位等待时间 5s
ALIGN_PWMVALUE 预定位 PWM 占空比 460
ALIGN_TIME 转子预定位时间 0.1s
FREEWHEEL_SPEED 滑行停机转速阈值 300rpm
STARTUPSPEED_RPM 开环启动转速 300rpm
STARTUP_SPEED_RAMP 开环转速斜率 500rpm/s
STARTUP_TIME 开环启动最长时间 1.0s

电机本体 & 速度环参数

参数 说明 参考设定值
POLEPAIRS 电机极对数 2
SPEED_MAX 最大速度标幺 5000rpm
MAX_DUTY 最大 PWM 占空比 9000
RAMP_UP 速度上升斜率 1000rpm/s
RAMP_DOWN 速度下降斜率 1000rpm/s
M1_SPEED_KP_Q10 速度环 KP (Q10 格式) 2048
M1_SPEED_KI_Q10 速度环 KI (Q10 格式) 300

4. 标准化整机调试流程

文档给出的调试顺序,移植新电机建议严格按照该顺序开展,降低炸管、启动失败风险:

  1. 硬件检查:确认 24V 电源、电机三相接线、仿真器连接;确认接口无短路,接线端子紧固。
  2. 参数适配修改:修改parameter.h,填写目标电机极对数、最大电流、转速、采样板硬件参数。
  3. 无感校准:执行反电动势采样校准;用示波器观测 BEMF 采样波形,确认采样波形正常。
  4. 开环调试:优先只跑开环启动逻辑;如果电机转向错误,修改BLDC_SensorLess.h内部相位顺序配置;示波器观测 PWM 输出波形,调整开环电流、开环启动转速参数,保证开环可以稳定拖动电机。
  5. 闭环调试:开环确认正常之后,切入闭环运行;整定速度环 KP/KI Q10 格式 PID 参数,优化转速稳定性。
  6. 整机性能测试:接入转速表、负载、功率计,测试最大转速、扭矩、效率,验证过流、堵转、过欠压保护是否正常触发。

评估板实际示波器采集波形,观测反电动势采样波形,可用于判断反电动势过零点识别是否正常,作为调参依据。
声明:本文全部内容转录自极海官方 AN1098 V1.1 应用笔记,实际产品开发需要结合 SDK 例程、芯片数据手册、电机本体特性完成整机验证。

相关推荐