本应用笔记指导初学者了解APM32F4xx系列,并快速上手进行开发,运行,调试等相关任务。
主要分为:
产品概述,文档资料说明,开发板资源描述,固件包功能描述,以及开发工具的使用。
本应用笔记中涉及资料均可在 www.geehy.com 进行获取下载。
产品概述
APM32F405/407系列MCU,基于Arm® Cortex®-M4内核,⽀持单精度FPU、增强型DSP处理指令;丰富外设资源满⾜多应⽤需求,⽀持⽚上PHY的⾼速OTG接⼝;支持SM2、SM3、SM4等多种加密算法,有助于保障数据信息安全,⼯作温度覆盖-40℃~+105℃。
详细性能描述如下表,具体型号可查询官网型号表:
表格 1
系统: | I/Os: |
Arm® Cortex®-M4内核 | 最多140个I/O |
存储器: | 调试模式: |
FLASH:1MB | SWD/JTAG |
安全性: | |
支持国密算法SM2/SM3/SM4 | |
电源与功耗: | 外设接口: |
VDD/VDDA:1.8~3.6V | U(S)ART:6 |
定时器: | |
16/32 位通用定时器:8/2 | |
模拟外设: | 封装: |
12位ADC:3,外部通道数::24 | LQFP64/100/144/176 |
文档资料
Datasheet
《APM32F405xG 407xExG数据手册 V1.1.pdf》
包括:
1.产品特性 2.产品信息
3.引脚信息 4.功能描述
5.电器特性 6.分装信息
7.包装信息 8.订货信息
9.常用功能模块命名 10.修订历史
《APM32F4xxx用户手册 V1.1.pdf》
表格 2
1.简介及文档描述规则 | 2.系统架构 | 3. Flash存储器 |
4.外部存储器控制器(EMMC) | 5.系统配置控制(SYSCFG) | 6.复位与时钟(RCM) |
7.电源管理单元(PMU) | 8.嵌套向量中断控制器(NVIC) | 9.外部中断/事件控制器(EINT) |
10.直接存储访问(DMA) | 11.调试MCU(DBGMCU) | 12.通用输入/输出引脚(GPIO) |
13.定时器概述 | 14.高级定时器(TMR1/8) | 15.通用定时器(TMR2/3/4/5) |
16.通用定时器(TMR9/10/11/12/13/14) | 17.基本定时器(TMR6/7) | 18.看门狗定时器(WDT) |
19.实时时钟(RTC) | 20.HASH处理器(HASH) | 21.数字摄像接口(DCI) |
22.通用同步异步收发器(USART) | 23.内部集成电路接口(I2C) | 24.串行外设接口/片上音频接口(SPI/I2S) |
25.控制器局域网(CAN) | 26.安全数字输入输出接口(SDIO) | 27.USB_OTG |
28.以太网(Ethernet) | 29.模数转换器(ADC) | 30.数模转换器(DAC) |
31随机数(RNG) | 32.CRYP | 33.循环冗余校验计算单元(CRC) |
34.芯片电子签名 |
MINI开发板
根据芯片型号差异以及分装类型,设计了两款MINI BOARD供用户使用,分别为:
APM32F407IG MINIBOARD
根据《APM32F407IG MINI开发板使用说明书V1.1.pdf》
用户可以了解到:
该MINI BOARD 设计芯片为 APM32F407IGT6:
- 引脚数目:176
- 内存容量:1MB
- RAM容量:192+4KB
- 封装类型:LQFP176
- 温度范围:-40°C~85°C
该MINI BOARD设计载资源有:
- 外部高速时钟(HSE):8MHz
- I/Os:140 VCC/VDD:3 GND:1 NC:2 GPIO:134。
- USART1/2:RS-232,通过J3跳线帽选择。
- BOOT0/1:通过J4跳线帽选择。
- USB:Type B / Power,通过J10跳线帽选择。
- 支持JTAG,SWD两种调试模式。
- LED1为电源指示灯,LED2,LED3 供用户使用。
- Reset Key 1个 Key1,Key2 供用户使用。
根据《APM32F407VG MINI开发板使用说明书V1.1.pdf》
用户可以了解到:
该MINI BOARD 设计芯片为 APM32F407VGT6:
- 引脚数目:100
- 内存容量:1MB
- RAM容量:192+4KB
- 封装类型:LQFP100
- 温度范围:-40°C~85°C
该MINI BOARD设计载资源有:
- 外部高速时钟(HSE):8MHz
- I/Os:92 VCC/VDD:6 GND:7 NC:3 GPIO:76。
- USART1/2:RS-232,通过J3跳线帽选择。
- BOOT0/1:通过J4跳线帽选择。
- USB:Type B / Power,通过J10跳线帽选择。
- 支持JTAG,SWD两种调试模式。
- LED1为电源指示灯,LED2,LED3 供用户使用。
- Reset Key 1个 Key1,Key2 供用户使用。
固件包
为了丰富产品型号,充分发挥芯片性能,我司开发出了下列多种固件供用户选择:
“Geehy.APM32F4xx_DFP.0.1.pack”
“APM32F4xx_SDK_V1.1.zip”
“APM32F4xx_OTG_SDK_v1.1.rar”
“APM32F4xx_SM_SDK_v1.1.zip”
MDK5 Packs
对于MDK软件包提供了额外的软件组件和对微控制器设备的支持,简称DFP(Device Family Pack)。
用户可以选择在官网 www.geehy.com 下载最新版pack。
或者选择在 www.keil.com 下载Geehy 目录的历史版本pack。
安装方式:
双击安装
MDK5 安装
选择红框按钮
选择Import
选择pack
安装成功后可以看到, APM32F4 系列目前支持20款芯片型号,分别为F405/407/415/417:
General SDK
软件工具开发包,Software Development Kit,简称SDK。一般指软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具集合。由第三方服务商提供的实现软件产品功能的工具包。对于用户,可以缩短开发周期,减少资源开销,加速产品研发等。
APM32F4xx_SDK主要服务于APM32F4xx系列MCU的通用模块,支持KEIL,IAR等开发平台。其中SDK中包含了ADC,CAN,DMA等模块的驱动代码以及应用例程,用户可以选择合适的驱动进行相关配置。同时在ROTS上也有使用例程。
OTG是On-The-Go的缩写,是今年发展起来的技术,主要应用于不同设备或移动设备间的连接,进行数据交换。OTG技术允许在没有主机(Host)的情况下,实现设备间的数据传送,通过OTG技术,可以给智能终端扩展USB接口配件以丰富智能终端的功能,比如扩展遥控器配件,把手机、平板变成万能遥控器使用。
APM32F4xx_OTG_SDK主要服务于APM32F4xx系列MCU的USB_OTG模块。SDK中包含了USB的主机和设备的驱动代码以及相应的例程,且能支持APM32F4xx内嵌高速USB PHY的应用。用户可以参考例程并利用驱动函数接口来实现特定的USB应用。USB主机驱动支持控制传输、中断传输、批量传输和同步传输,基本覆盖符合USB2.0规范的USB应用。
SM SDK
国密(国家商用密码)使用拼音缩写为SM,是由国家密码管理局指定的自主可控的国产算法,包含SM1,SM2,SM3,SM4,SM7,SM9,ZUC等。
APM32F4xx_SDK_SDK主要服务于APM32F4xx系列MCU的国密模块。SDK中包含了SM2,SM3,SM4的驱动代码已经应用例程,其中SM2非对称加密算法采用软件方式实现,可替代RSA1024/RSA2048等国际算法。SM3杂凑算法采用硬件方式实现,可替代MD5/SHA-1/SH-2等国际算法。SM4对称加密算法采用硬件方式实现,可替代TDES/AES256等国际算法。用户可以参考例程并利用驱动函数接口来实现特定的加解密应用。
工具链
Geehy-Link
APM32 PROG
DFU
ISP
Geehy-Link
Geehy-LINK是一款仿真器和编程器一体化的开发工具,可以在Keil、IAR等集成开发环境下对APM32全系列MCU产品进行在线调试仿真。支持全速运行、单步调试、断点设置等各种调试方式。参考官网《GEEHY-LINK使用说明书V1.0.0.pdf》文件
Keil MDK IDE:
1.使用USB线将Geehy-LINK连接电脑,连接成功后,设备管理器上会出现:Geehy DAP USB Device
2.打开工程文件,选择“Options for Target”选项卡。
3.在“Debug”选项下载选择仿真器为“CMSIS-DAP Debugger”后选择“Setting”。
4.在“CMSIS-DAP Cortex-M Driver Setup”界面选择“Geehy CMSIS-DAP”(旧版本为“Apex CMSIS-DAP”)后点击“OK”。
IAR EW for Arm IDE:
打开工程文件,选择“Options ”选项卡。
在“Debugger”中选择“CMSIS DAP”仿真器后点击“OK”。
APM32 PROG
APM32-PROG 是针对APM32系列芯片开发的工具,他配合该上位机软件完成对MCU芯片的软件烧录,支持在线和离线烧录,支持JTAG和SWD方式编程上位机,支持WIN7/8/10免驱使用。
详细操作参考官网《APM32_PROG使用说明书V1.0.pdf》。
下载好上位机软件 Apex-APM32-Setup.msi 后进行安装(安装界面省略),打开软件后连接APM32PROG,连接成功后上位机会读取当前APM32PROG的固件版本,如下图中最底部的红框。若当前APM32PROG的固件版本低于最新版本将会有更新固件版本信息提示。
整个APM32PROG 上位机的功能区域分为文件打开区域、配置区域(含序列号配置、配置写入)、离线或在线操作区域。APM32PROG配合上位机可以实现对目标MCU进行编程,读取,加解密等功能。
DFU
DFU全称是 Device Firmware Upgrade,设备固件升级。
主要是支持USB的BootLoader,可以对芯片FLASH进行编程和选项字节的修改。极海DFU Programmer上位机用于APM32系列MCU的DFU升级。操作流程如下列内容所示:
1.DFUProgrammer 连接MCU
打开DFUProgrammer软件,若此时电脑已经连接好一个“APM32 Bootloader”设备,初始界面如下所示,若未找到设备点击“搜索设备”按钮即可搜索设备。点击“连接设备”按钮即可连接目标MCU。
2.目标MCU连接成功后,我们可以在log界面看到相应的提示信息。
3.DFUProgrammer 读取程序
点击左侧的“读取芯片”按钮来到芯片内容读取界面,在该界面可设置读取的芯片内容及大小,点击“读取芯片”按钮可读取相应的数据,点击“保存数据”按钮可保存数据至PC。
4.数据保存成功后可在log窗口得到数据保存成功信息。
ISP即In-System-Programming,在线编程,具有ISP功能的芯片,可以通过简单的下载线直接在电路板上给芯片写入或擦除程序,由上位机的软件通过串口来进行改写,并且支持在线调试。使得用户不需要编程器就可以对芯片进行试验和开发。
ISP Multiport Programmer 是为了让用户更方便的使用Geehy的MCU 而开发的一款图形界面应用程序。使用该应用程序,用户可以通过UART 端口同时配置操作多台Geehy的MCU 设备。详细信息参考《Geehy-ISP Multiport Programmer使用说明书》。
APM32F4系列MCU在出厂时都内置了一段BootLoader程序与系统存储区域,以方便用户通过ISP的方式对MCU进行程序下载、选项字节编程等操作。其中各芯片的BootLoader对支持升级的通信方式有所不同。
表格 3
通用MCU系列 | 是否支持ISP升级 | 支持接口 | BootLoader进入方式 |
APM32F4x5x7 | 是 | USB(PA11/PA12) | Boot0接0、Boot1接1 |
APM32 ISP Multiport Programmer连接MCU的一般过程如下:
- 点击 主界面下的加号 Add New Window 得到设置窗口。
- 在设置窗口的COM下选择对应的系统USB Serial Port 例如COM3。
- 在设置窗口的Bandrate下设置需要的波特率,例如设置为 115200。
- 在设置窗口的Timeout下设置连接超时时间,例如设置为 2。
- 最后点击Setting下的Connect按钮完成对目标MCU的连接。