使用J-Link EDU Mini 为ATSAMD21G18烧写Bootloader
最近几天利用ATSAMD21G18 制作了与Arduino Zero安全兼容的几块PCB样板,支持三路步进电机输出,四路舵机输出,预留了ESP-12可插拔接口,集成了ICM-20600陀螺仪,因为新购的ATMEL ATSAMD21G18不烧写专用的Bootloader,是无法在Arduino IDE下使用的,下面就将使用J-Link EDU Mini 为ATSAMD21G18烧写Bootloader的过程记录下来,供需要的朋友参考。
PCB板的设计

这块控制板的目标是可以自由的创建一些机器人项目,而不需要去额外的连接其它模块。同时,它集成有足够使用的传感器端口和电压输出,并能保持与 Arduino Zero 100%兼容性,由于采用的核心处理器是ARM Cortex-M0与Arduino Zero完全一致,因此,Arduino IDE会将其识别为有USB接口的Arduino ZERO。下面是基本完成的实物图:

下面是各主要部件图:

其中,1 为核心处理器;2是5V、3.3V电路;3是三路步进电机驱动板接口,支持A4988电机驱动板;4是ESP8266模块接口,与ESP-12S转接板尺寸完全兼容;5是ICM20600陀螺仪。
在上图中步进电机驱动板接口的中间有一个2.54mm的3P母座,该接口就是预留的ATSAMD21G18的SWD烧写 firmare 的接口,从上到下分别是RESET、SWCLK、SWDIO。
J-Link EDU Mini

这是性价比最高的SEGGER产品,小巧实用,带2×5针1.27mm输出线,J-Link EDU Mini 支持的CPU类型可查阅:Overview of Supported CPUs and Devices ,其输出针脚定义如下图:

接口定义图中的 1 脚与实物图中的一脚对应。电商购买地址:J-Link EDU Mini
Bootloader烧写前的准备
- 前往Github下载Arduino官方的Bootloader,地址:https://github.com/arduino/ArduinoCore-samd ,提前下载文件包备用;
- 下载安装Atmel Studio 7.0;
- 完成J-Link 1.27mm 转2.54mm的改造,可用小电阻的引脚插入10针排线孔引出,再用杜邦线接触即可。
- 完成硬件连接,即J-Link与 ATSAMD21G18的SWD 接口的硬件连接,可见下图:

ATMEL Cortex-M0 Bootloader烧写
完成前面准备工作后,将J-Link插入电脑USB接口,通常Windows会自动安装驱动,否则只能自行官网 SEGGER.com 下载驱动安装了。然后打开ATMEL Studio 7,点开“Tools”菜单,找到下面的“Device Programming”。

打开Device Programming窗口,选择“Tool”为 J-link,“Device”为ATSAMD21G18A, “interface”为SWD,然后点击“Apply”。

如果硬件连接和 J-Link 驱动安装无误,我们就可以读出设备的签名信息和目标电压

这是可以点击Fuses熔丝位检查是否需要解锁了,我的ATSAMD21G18A是没有锁的,网上有教程说需要修改BOOTPROT为0x07,我研究了一晚终于在官方的DATASHEET上找到了答案,见下图

奇怪的事我安装的最新studio版本的熔丝位显示如下,它并不是以十六进制存在的,也许官方进行了软件更新

NVMCTRL_BOOTPROT为值为“ 0 Bytes”,对应的值就是“7”。熔丝位检查无误后可以进入“Memories”菜单,进行BOOTLOADER的烧写了。
点击Flash地址栏后面的三点图标,导航到前面下载的Arduino SAMD Bootloader文件位置,应该是“ArduinoCore-samd-master.zip”,文件的路径是”ArduinoCore-samd-master\bootloaders\zero\samd21_sam_ba.hex”。

至此,Bootloader烧写就成功了,这时可以打开Arduino IDE验证软件是否可以识别出板子了。


OK,IDE完美识别出开发板,至此使用J-Link EDU Mini 为ATSAMD21G18烧写Bootloader成功。
专题:制作自平衡机器人:
- 使用J-Link EDU Mini 为ATSAMD21G18烧写Bootloader
- 制作Arduino Zero机器人控制板
- 兼容Arduino Zero的自制机器人控制板的舵机控制