[活动] 【APM32M3514开发板测评】开篇

[复制链接]
2251|1
 楼主| Ketose 发表于 2025-2-8 23:09 | 显示全部楼层 |阅读模式
本帖最后由 Ketose 于 2025-2-8 23:36 编辑


年前收到这个开发板,本来是直接上FOC来测试,但是官方的例子代码需要人工审核,只能在网上先找其它人,找到了SDK,keil的开发包,原理图,等资料,太难了!!!最后还是没有拿到官网的FOC例子。在我的keil里安装了官方的Geehy.APM32M35XX_DFP.1.0.0.pack,创建完工程CMSIS竟然没有system_apm32m35xx.c和startup_apm32m35xx.s,虽然我已经在Run-Time Environment里Device选择了APM32M35XX Startup。不知道这是不是个BUG,我用的环境是Keil 5.41。

后面会再造一次车轮来修练内力,总的来说会分这么几部分来完成这次评测
1、开环速度控制
2、闭环位置控制
3、闭环速度控制
4、闭环位置-速度-电流控制
5最后SVPWM
这里面有一些前置知道比如Clark变换、Park变换、SVPWM就不详细介绍了,但是通俗的说明一下。感兴趣的同学可以去问Kimi、豆包、Deepseek,不要去问百度就行。也可以用纳米AI搜索APP,这个集成了好几个AI模型,最后无耻的给自己打个广告,使用纳米AI搜索时,大家填写抽车码请填写:Z4P2YT

本来一开始就打算直接上电机,可是我的直流稳压电源坏了。有谁知道这款电源虽然显示30V电压,但是万用表量的时候没有电压!!!


    还有就是因为Jlink没有支持APM32M35xx,今天安装了最新的Jlink 8.12,结果悲剧了,我的Jlink V11没注意升级了固件,出现了Clone提示。Jlink的序列号丢失了。最后翻箱倒柜的找到了一个Freescale的Freelink,改一改更新了一个DAP固件,做成一个通用的DAP Link,可以使用。晚上有了时间顺手把Jlink给**一下,我的Jlink又活了,但是还是没有序列号,已经找到了方法,有时间再搞。

下面我的要驱动的电机:三款,希望都能驱动起来。

motor.png

由于没有电源,只能先跑一个 Hello world !!!.

1、APM32M3514芯片介绍
       一款面向电机驱动市场推出的高集成、高性价比电机控制专用SoC,基于APM32F035系列电机控制专用MCU的性能架构进行优化升级,搭载Arm® Cortex® -M0+内核,内置M0CP协处理器,集成200V 6N-Gate Driver及高性能3.3V LDO。适用于园林工具、手持吸尘器、低压风扇、低压水泵等领域。
               
性能参数
系统                                
  • Arm® Cortex®-M0+
  • 工作主频 72MHz
  • M0CP协处理器(硬件:移位单元、32位/32位除法器、
  • 开方、三角函数、SVPWM、乘加运算)
                           
存储                                
  • Flash 64KB
  • SRAM 10KB
  • BootLoader支持 USART升级
                           
电源管理                                
  • MCU工作电压 2.0~3.6V
  • 驱动电压5~20V
  • 支持上电/掉电复位
                           
   定时器                                
  • 16位高级控制定时器:1
  • 16/32位通用定时器:2/1
  • 16位基本定时器:2
  • 看门狗定时器:2
  • 24位自减型SysTick:1
  • 支持红外接收功能,用于遥控
                           
  模拟外设                                
  • 12位ADC:1,通道数:13
  • 可编程模拟比较器:2
  • 通用运算放大器:4
  • 温度传感器:1

2、F035 VS M3514
F35VSM35.png
上图是F035(左),M3514(右)的系统框图,从图中可以看到M3514比F035多了 6N-Gate Driver及LDO。 协处理器(M0CP) 旨在加速一些运行在 Arm® Cortex®-M0+上,与 FOC(Field Oriented Control,磁场定向控制)相关的应用。200V 6N-Gate Driver,可直接为电机驱动提供 6 路驱动 N 沟道 MOSFET 三相全桥驱动功能,减少了外部驱动芯片的使用
以上的这款芯片的一些介绍,都是照本宣科。如果感兴趣可以去极海的官网去查询。

这次活动使用的开发板是APM32M3514x8 MOTOR EVAL,主要为电机控制而设计的开发板。可以用来进行BLDC、FOC算法的电机控制 。

虽然是用来进行电机控制,但是一般单片机该有功能还是都有的。我还是从入门开始,学习一下“Hello world”,然后循序渐进最后运行FOC程序,控制电机转起来。
单片机程序的Hello world就是点个灯。
主程序代码如下:
  1. /*!
  2. * [url=home.php?mod=space&uid=247401]@brief[/url]       Main program
  3. *
  4. * @param       None
  5. *
  6. * @retval      None
  7. *
  8. */
  9. int main(void)
  10. {
  11.     APM_MINI_Init();

  12.     //GPIO_Init();
  13.                 LED_GPIO_Init();

  14.     printf("This is an example of GPIO toggle \r\n");

  15.     while (1)
  16.     {
  17.         /* Turn Fault on */
  18.         GPIO_ClearBit(GPIOA, GPIO_PIN_12);
  19.                                 APM_DelayMs(200);
  20.         /* Turn Fault off */
  21.         GPIO_SetBit(GPIOA, GPIO_PIN_12);
  22.         APM_DelayMs(200);
  23.     }
  24. }
LED_GPIO的初始化代码如下:
  1. void LED_GPIO_Init(void)
  2. {
  3.     GPIO_Config_T gpioConfig;

  4.     RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);
  5.     /* LED2 GPIO configuration */
  6.     gpioConfig.pin = GPIO_PIN_12;
  7.     gpioConfig.mode = GPIO_MODE_OUT;
  8.     gpioConfig.outtype = GPIO_OUT_TYPE_PP;
  9.     gpioConfig.speed = GPIO_SPEED_50MHz;
  10.     gpioConfig.pupd = GPIO_PUPD_NO;
  11.     GPIO_Config(GPIOA, &gpioConfig);
  12. }

原理图我也发一个:

SCHE.png

跑起来了

board.png

chenjun89 发表于 2025-2-9 09:14 来自手机 | 显示全部楼层
不用等官方,网上很多例子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我最讨厌两种人:一是有种族歧视的; 二是黑人;三是不识数的!

66

主题

3267

帖子

15

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