[原创] 【STM32WB55 测评】+无线固件更新

damiaa   2019-5-17 10:06 楼主
STM32WB55 测评】+无线固件更新 STM32WB55包含两个内核,一个M4处理大部分任务,一个是M0+,专门处理无线通信。这个很像TI的CC2652. 捕获8.PNG 于是编程时候有两个固件要烧写。 对于M4直接可以用STLINK烧写。几种编程器和调试器都支持。 顺便说一下。stm32wb55 USB dongle烧写要用STM32CubeProgrammer IDE界面,选择USB口的DFU 烧写(不过烧过之后怎么就不见了DFU呢,这里出了啥问题!!!)。 安装STM32CubeProgrammer后目录里还有个STM32_Programmer_CLI。这个就可以烧写无线固件。为了方便操作,可以把烧写的估计拷贝到这个安装目录。 无线固件烧写:(说明,目前只是讨论固件版本1.0的,另一个版本不讨论,因为有网友Firmware Upgrade Service (FUS) 升级出问题) 1,硬件准备: stm32wb55 USB dongle SW2拨动到远离USB口的那端。 无标题1.png stm32wb55 nucleo: CN11的5和7腿短接,JP1跳接USB MCU(其他不接 )。 微信图片_20190517093546.jpg 2,上电,擦除 :STM32_Programmer_CLI.exe -c port=usb1 -fwdelete 过程: 微信图片_20190517095417.jpg 结果: 微信图片_20190517094948.jpg 3,烧写:STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade [Wireless_Coprocessor_Binary] [Install@] firstinstall=1 Wireless_Coprocessor_Binary是你要烧写的文件 Install@是烧写文件地址 微信图片_20190517100400.png 过程(我这里是烧写的thread固件,一定要看清楚烧写哪个,特别是地址要对): 微信图片_20190517095413.jpg 结果: 微信图片_20190517094853.jpg 4,断电后恢复硬件设置到原来状态。 stm32wb55 USB dongle SW2拨动到靠近USB口的那端。 stm32wb55 nucleo: CN11的5和7腿去掉短接,JP1跳接最靠边的那个(其他不接 )如下图 微信图片_20190517093549.jpg 5,这样就结束了,后面可以 stm32wb55 nucleo用自带的STLINK加编程调试软件, 或者 stm32wb55 USB dongle烧写用STM32CubeProgrammer IDE界面,选择USB口的DFU 烧写应用程序了。 此内容由EEWORLD论坛网友damiaa原创,如需转载或用于商业用途需征得作者同意并注明出处 本帖最后由 damiaa 于 2019-5-18 20:31 编辑

回复评论 (13)

您好楼主!之前free和我在坛子里遇到了升级1.1版本协议栈时遇到了变砖的问题,你这里只升级1.0版本的协议栈,不对FUS进行更新,我想这是正确的做法。ST在1.1版本协议栈的说明文件中附加了更新FUS固件的步骤,从我们的实验来看,是十分危险的,这一点ST至今也没有合适的文档解释,我也没找到怎么重新烧写FUS的方法。所以接下来我再更换一块芯片(原厂应该内置了FUS),原来FUS坏了变砖的芯片先搁置(但是仍可以通过SW或JTAG口烧写应用程序,但缺了BLE支持,也没什么意义),直接上1.0版本的协议栈试一试,我想应该都是正常的了,谢谢你的这个实验,否则我会一直等待ST的消息。 另外你在文章中有两点我有点疑问,你说的“不过烧过之后怎么就不见了DFU呢,这里出了啥问题!!!”这是指不能再通过dfu烧写应用程序了吗?还是重新插入,就又可以烧写了呢?请明示一下!而你在最后又说dfu可以烧写应用程序了,说明usb的dfu没有坏,是吧?也请明示!谢谢!(怕再变砖,弄怕了 本帖最后由 卡森 于 2019-5-22 22:59 编辑
点赞  2019-5-22 22:57
引用: 卡森 发表于 2019-5-22 22:57 您好楼主!之前free和我在坛子里遇到了升级1.1版本协议栈时遇到了变砖的问题,你这里只升级1.0版本的协议栈 ...
不过烧过之后怎么就不见了DFU呢,这里出了啥问题 是的。我这里还没时间仔细研究。 当时是看不到能继续烧写的DFU了。 后面说的是开始的烧写。是第一次。这里都是烧写应用程序。 后面我将继续观察。有消息再汇报。 毕竟上吃螃蟹的,哪能保证手上的板子不变砖呢。哈哈。不过这个应用层其实问题还小。可以用SWD烧写。但无线固件就不好办。 本帖最后由 damiaa 于 2019-5-23 09:57 编辑
点赞  2019-5-23 09:53
你好!你现在的dfu接口已经不能用了,是吗?如果是这样的话,fus固件就被破坏了,那就无法再更新其他协议栈了,这有点问题。如果不是这样,那就可以继续更新协议栈。
点赞  2019-5-23 14:41
引用: 卡森 发表于 2019-5-23 14:41 你好!你现在的dfu接口已经不能用了,是吗?如果是这样的话,fus固件就被破坏了,那就无法再更新其他协议栈 ...
没破坏。把SW2拨到远离USB口的那边就可以替换无线固件,我刚才看了还有DFU 。普通应用程序要拨过来。但不能用STM32CubeProgrammer IDE烧写了(第一次是可以烧的),当时好像有个像MBED一样接口的盘,直接把文件拖进去就可以,应该那样处理的。不过现在其实可以用STLINK连上SWD接口烧写。 本帖最后由 damiaa 于 2019-5-24 09:19 编辑
点赞  2019-5-23 20:49
dfu只在拨到远离 usb的位置才有效,拨过来是应用程序接口,无法实现 dfu真正的功能,我曾试过在应用程序接口实现 dfu功能(通过mx制作一个工程来实现),但仍无法连接fus固件,也就无法恢复原来变砖的板子了。而 Stlink即使在指定位置烧入了 fus固件,也无法再恢复 dfu的功能,估计要经过指定通道经过验证才能烧写正确,很是无奈啊。
点赞  2019-5-23 22:34
引用: 卡森 发表于 2019-5-23 22:34
dfu只在拨到远离 usb的位置才有效,拨过来是应用程序接口,无法实现 dfu真正的功能,我曾试过在应用程序接 ...

FUS估计破坏了那是没办法了。我的是避开了这个。虽然破坏了应用程序直接用USB烧写。但还可以用STLINK。
点赞  2019-5-24 09:21
你的 USBdongle板子不能用 usb烧写应用程序了吗?它要实现 SW口烧写,你要焊线的吧?请明示一下!
点赞  2019-5-24 09:32
引用: 卡森 发表于 2019-5-24 09:32
你的 USBdongle板子不能用 usb烧写应用程序了吗?它要实现 SW口烧写,你要焊线的吧?请明示一下!

还不清楚。今天拿到公司电脑,有发现了FS设备。但驱动没装好。
点赞  2019-5-24 10:12
两边针焊接了好了。周末试一下用STLINK烧写。
点赞  2019-5-24 10:26
引用: damiaa 发表于 2019-5-24 10:12
还不清楚。今天拿到公司电脑,有发现了FS设备。但驱动没装好。

嗯,ST的驱动也有些问题。
点赞  2019-5-24 10:56
引用: damiaa 发表于 2019-5-24 10:12
还不清楚。今天拿到公司电脑,有发现了FS设备。但驱动没装好。

你再试着更新另一个无线协议栈试试看,如果成功了,那说明 dfu没问题了。
点赞  2019-5-24 10:58
stm32wb55 USB dongle SWD烧写应用程序没问题。试了:接好地和电源,NRST SWDIO SWCLK,随便用ST的一款烧写软件。
点赞  2019-5-30 16:45

貌似固件升级的问题解决了,最近看ST的论坛资料。

点赞  2019-8-15 10:13
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复