《APM32芯得》系列内容为用户使用APM32系列产品的经验总结,均转载自21ic论坛极海半导体专区,全文未作任何修改,未经原文作者授权禁止转载。

最近申请到了APM32F407IG-Tiny板,这块开发板做工不错,尤其自带了DAPLINK下载器,外设资源也挺丰富的,很适合做mbedos移植,并且mbedos官方stduio是有自带的DAPLINK烧录固件的,而如果我们要使用mbed studio开发的话,就需要手动改写板载的DAPLINK固件,那么怎么改写呢?这篇文档就简单介绍一下。

1、APM32F407IG 参数

     系统

       ·  Arm® Cortex®-M4F

       ·  工作主频168MHz

       ·  内置16个数据流的DMA

       ·  支持FPU和DSP指令

     存储

       ·  Flash512/1024KB

       ·  SRAM192+4KB

       ·  SDRAM2MB

     电源管理

       ·  工作电压 1.8~3.6V

       ·  支持上电/掉电/欠压复位

       ·  支持可编程电源电压检测器

     定时器

       ·  16位高级定时器:2

       ·  16/32位通用定时器:8/2

       ·  16位基本定时器:2

       ·  看门狗定时器:2

       ·  24位系统滴答定时器:1

     模拟外设

       ·  12位ADC:3,通道数:24

       ·  12位DAC: 1,双通道

     I/O

       ·  多达140个I/O

       ·  均可映射到外部中断向量

     通信外设

       ·  U(S)ART:6

       ·  I2C:3

       ·  SPI(I2S):3(2)

       ·  USB_OTG:3

       ·  CAN:2

       ·  SDIO:1

       ·  EMMC

       ·  Ethernet MAC:1EthernetMAC:1

2、DAPLINK概述

      • Arm Mbed DAPLink 是一个开源软件项目,支持对在Arm Cortex CPU 上运行的应用软件进行编程和调试。DAPLink通常称为接口固件,在连接到应用MCU的SWD或JTAG端口的辅助MCU上运行。几乎所有开发板上都可以找到这种配置。枚举为USB 复合设备,它在开发计算机和 CPU调试访问端口之间创建桥接。DAPLink 使开发人员能够:

      •  MSC - 拖放式编程闪存

      •  CDC - 用于日志、跟踪和终端仿真的虚拟 com 端口

      •  CMSIS-DAPv2 WinUSB(无驱动程序供应商特定批量)- 符合 CMSIS 标准的调试通道

      •  CMSIS-DAPv1 HID - 符合CMSIS标准的调试通道

      •  WebUSB CMSIS-DAP HID - 符合CMSIS标准的调试通道

      它相比于F407自带的DAPLINK,多了拖拽式烧录以及串口集成这两个功能。

3、固件更新   

    在此之前,我们需要确保我们电脑已经安装好了git以及python(python3.7及以上)环境,这里就不在过多赘述git以及python的安装了。下面是git和python的官网网址,可去官网自行下载。(这里我只介绍了windows上固件更新的流程)

    git官网:https://git-scm.com

    python官网:https://www.python.org

3.1 固件所需资源

    1、APM32F407IG固件更新hex文件:https://github.com/GeehySemi/mbed-os-DAPLINK-Hardware

    2、DAPLINK源码获取:https://github.com/ARMmbed/DAPLink

    3、一根USB线,用于连接PC端与开发板

    4、两根杜邦线,用于连接 APM32 LINK 与 F407 开发板的串口

    5、用于固件烧录的工具(jlink等等)

3.2 固件更新步骤

3.2.1 参考APM32 LINK原理图,使用烧录器与开发板连接

我们接线,应该接靠近USB接口的那一堆排针,这个才是LINK的固件烧录接口,而上面的一排接口是APM32F407IG开发板的烧录接口。

3.2.2 接好线之后,打开烧写工具,我这里使用的是jflash,打开jflash工具,创建新工程

3.2.3 搜索芯片选项,选择APM32F103CB

3.2.4 修改Speed,改为200KHz

3.2.5 点击"Connect"

3.2.6 把准备好的bl.bin文件拖入jflash

3.2.7 确认地址是0x08000000,点击OK

3.2.8 擦除原来的固件

3.2.9 下载新的固件

3.2.10 运行新的固件

3.2.11 用一根USB把PC和开发板连接,电脑就会识别出一个磁盘

3.2.12 把准备的固件更新的hex文件直接拖拽至磁盘

磁盘更改为DAPLINK则说明固件更新成功。

并且可以点击查看里面的信息。

3.3 验证固件更新

    我们可以从Geehy官网下载APM32F4系列官方SDK来验证固件是否更新成功。

3.3.1 打开ADC_AnalogWindowWatchdog,点击魔术棒,配置编译生成hex文件。

3.3.2 把生成的hex文件拖拽到生成的PC识别的磁盘中,可查看磁盘里面的信息,若没有FAIL.txt,则程序成功烧录。

3.3.3 把DAPLINK的RX、TX接口分别与PA9、PA10连接。打开串口调试助手,配置波特率为115200,复位开发板,串口若成功打印数据,则说明固件更新成功。

以上就是本次APM32F407IG-Tiny的DAPLINK固件更新的方法。

原文地址:基于mbed-os APM32F407IG TINY板载DAPLINK烧录固件更新 - 极海MCU官方技术支持论坛

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐