在mac上用dfu-util更新NanoVNA的固件 image

在mac上用dfu-util更新NanoVNA的固件

我只有Mac的机器,装了个虚拟机刷NanoVNA的固件总是失败。 于是转投了Mac和linux上常用的刷固件软件: dfu-util。

这个软件兼容的芯片很多,nanoVNA用的STM32也是支持的。

软件网站在这: http://dfu-util.sourceforge.net/

使用手册在这: http://dfu-util.sourceforge.net/dfu-util.1.html

安装 dfu-util

在Mac上安装dfu-util很简单,只要在“终端”(Terminal)程序下运行:

brew install dfu-util

然后系统会自动安装。

也可能会要求先更新homebrew,没问题,等他自己更新就行了。

短路开机 NanoVNA

连接好USB线到电脑,短路中间绿色板子上的BOOT0和VDD两个点,然后开机,机器进入booterloader模式,白屏。此时Mac应该改自己就识别出来了STM32的bootloader,不用安装任何驱动。

注:短路只在开机时短一下即可,不用一直短路。

确认哪个是 nanoVNA

Mac的蓝牙控制器也是一个dfu设备,所以,一定要先确认一下,哪个是nanoVNA的bootloader,不能搞错。。

执行:

dfu-util -l

然后会列出一堆设备信息:

dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Found Runtime: [05ac:8290] ver=0167, devnum=2, cfg=1, intf=5, path="20-8", alt=0, name="UNKNOWN", serial="UNKNOWN"
Found DFU: [0483:df11] ver=2200, devnum=16, cfg=1, intf=0, path="20-1", alt=1, name="@Option Bytes  /0x1FFFF800/01*016 e", serial="FFFFFFFEFFFF"
Found DFU: [0483:df11] ver=2200, devnum=16, cfg=1, intf=0, path="20-1", alt=0, name="@Internal Flash  /0x08000000/064*0002Kg", serial="FFFFFFFEFFFF"

[05ac:8290] 这个设备就是Mac的蓝牙控制器。

[0483:df11]才是我们要写入的那个 STM的bootloader。记住这个ID,0483:df11

向 nanoVNA 写入固件文件

使用刚才查到的ID,执行命令:

dfu-util -v -d 0483:df11 -a 0 -D <下载文件所在的目录>/nanoVNA_900_aa_20190802.dfu

然后就等吧,屏幕上会出现哗哗哗的刷机信息,直到最后显示:

done parsing DfuSe file

然后拔掉电源重新开机,重新校准NanoVNA,就好了。

后记

  • 我的刷机环境:macOS Mojave 10.14.5 ,其它机器没试验过,应该问题不大。
  • NanoVNA不怕刷成砖,刷坏了再刷就行。
  • Linux和树莓派也可以装dfu-util。

原文发表于我的微信公众号 BG6LH - 在mac上用dfu-util更新NanoVNA的固件