Nordic芯片烧录指南
本文讲介绍Nordic系列芯片的烧录方式
一、准备工作
1、硬件
首先需要准备一块Nordic的DK或者Jlink,但是需要注意的是x宝购买的盗版Jlink因为没有license,用一段时间可能会被锁,且有些低版本的Jlink可能无法烧录M33内核的芯片,如nRF5340和nRF91系列,因此建议使用官方DK做Jlink来烧录自己的板子。因为官方DK上带有一个Jlink,且DK上的Jlink有正版license,可以稳定使用。
nRF51/52系列,可以使用nRF52832的DK来烧录,DK代号是PCA10040。nRF5340和nRF91系列需要Jlink支持烧录M33内核的芯片,因此必须要nRF5340或者nRF9160的DK来烧录,这里推荐使用nRF5340的DK来烧录nRF5340和nRF91系列,DK代号是PCA10095。
DK上的Jlink默认连接的是DK上的芯片,如果要做Jlink外接烧录自己的板子,需要在DK的VDC/VDD和VTG插针上插一个跳帽即可。
如下图红框位置是插的跳帽就是DK板上需要接跳帽的位置
在DK的VDC/VDD和VTG插针上插一个跳帽后就可以将2.54mm的杜邦线或者1.27mm的排线插在DK上,然后将VCC、GND、SWD、SWC四个脚接到自己的板子上即可。
2、软件
烧录程序有两种方法,一种是使用nRF Connect for Desktop中的Programmer插件。nRF Connect for Desktop。
注意:老的nRFgo Studio已经停止更新,DTM控制,程序下载等功能已经全部迁移到nRF Connect for Desktop中,因此建议使用nRF Connect for Desktop。
下载安装完成后,打开nRF Connect for Desktop,安装Programmer插件。
如果安装完成后存在界面不显示插件的问题,可参考此文章解决:https://blog.csdn.net/MEMORY_2016/article/details/117512713
另一种方法是使用nrf jprog命令来烧录,使用nrf jprog需要安装nRF Command Line Tools。
下载地址:https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download
安装完成后打开 cmd 使用nrfjprog 命令来测试工具是否安装成功
在cmd界面输入 nrfjprog -v 可以看到 nrfjprog的版本
注意1:使用nrfjprog需要安装J-Flash,若电脑没有安装J-Flash,烧录会提示报错。
注意2:使用nrfjprog命令需要在CMD下,不建议使用Powershell,可能会报错。
二、程序烧录
1、 使用nRF Connect for Desktop
打开Programmer插件,点击SELECT DEVICE识别DK。
(1)点击ADD HEX file添加hex固件
(2)点击Erase & write,全片擦除并写入固件,这样应用程序的固件就烧录完成
2、使用nRF jprog烧录
将路径切换到固件的文件夹下。
使用 nrfjprog -f NRFxx --program xxxxxx.hex 即可下载固件,还可以后面加入校验命令 “--verify”。
所以输入 nrfjprog -f NRFxx --program xxxxxx.hex --verify 就可以实现下载并校验,下载完成后会提示Verified OK。
如上图所示
在上面这条命令中 NRFxx表示烧录的芯片对应的系列
如果要烧录nRF51系列 此处的参数应为“NRF51”
同理NRF52系列参数为“NRF52”
NRF5340参数为“NRF53”
NRF91系列参数为“NRF91”
而xxxxxx.hex为应用程序的固件名称
三、制作批处理实现一键烧录
因为可以使用nrfjprog命令行烧录程序,我们可以将这些命令打包成批处理的形式,实现一键烧录的效果。
1、新建一个文件夹,在文件夹下新建两个.txt的文本,并将.txt改为.bat,文件名称可以修改为批量烧录.bat和prohAll.bat
2、 以文本形式编辑批量烧录.bat文件,将以下代码拷贝到文件中。
@echo off
setlocal enabledelayedexpansion
set "a=0"
:loop
set /a "a=!a!+1"
echo 烧录总数:!a!
start "" /b /wait "progAll.bat"
goto loop
点击另存为以ANSI编码保存(使用UTF编码会出现乱码) 。
3、 以文本形式编辑prohAll.bat文件,将以下代码拷贝到文件中。
@echo off
echo ------------------------------------------------------------------
echo 已烧录完成,请更换模块并敲回车键!
echo ------------------------------------------------------------------
pause & exit
点击另存为以ANSI编码保存。
4、 接下来在prohAll.bat中添加要处理的nrfjprog命令
在@echo off下添加一条擦除Flash的命令
nrfjprog.exe –eraseall
保存后,将DK的SWD接口与需要烧录的板子接线连接,打开批量烧录.bat,将可以看到命令已经执行,重复敲击键盘上的任意按键,批处理文件可以记录已烧录的数量。
5、继续在prohAll.bat中添加烧录固件的nrfjprog命令:
nrfjprog.exe -f NRFxx --program xxxxxx.hex --verify(xxxxxx.hex为固件名称)。
此命令的详解已经在上面有详细介绍,此处不再做赘述。
这里需要的注意的是nRF91系列Modem的固件也可以通过此方式烧录,只需要把xxxxxx.hex换成xxxxxx.zip即可。(Modem固件为.zip,可以去Nordic官网下载)
Modem固件下载地址:
https://www.nordicsemi.com/Products/nRF9160/Download?lang=en#infotabs
然后将固件放在prohAll.bat的文件夹下。
以上截图中的文本实现了烧录nRF9160的Modem固件,然后擦除nRF9160的Flash,最后烧录nRF9160的application固件。
6、保存后,将DK的烧录接口与需要烧录的板子接线连接,打开批量烧录.bat,将可以看到已经执行了烧录Modem和擦除Flash,烧录应用程序并校验的命令。
注:上面只是演示完整步骤,仅供参考。如果只是烧录nRF51\52\5340,或者nRF91系列没有更新Modem的需求,则无需执行Modem烧录步骤。
以上就是批处理的制作方法,使用批处理文件可以在产线上实现快速一键烧录,在4-6小节的基础上,可以继续添加其他的nrfjprog命令,添加的方式参考4-6小节即可。