damiaa 发表于 2019-5-17 10:06

【STM32WB55 测评】+无线固件更新

<div class='showpostmsg'> 本帖最后由 damiaa 于 2019-5-18 20:31 编辑

【STM32WB55 测评】+无线固件更新 STM32WB55包含两个内核,一个M4处理大部分任务,一个是M0+,专门处理无线通信。这个很像TI的CC2652.

于是编程时候有两个固件要烧写。
对于M4直接可以用STLINK烧写。几种编程器和调试器都支持。
顺便说一下。stm32wb55 USB dongle烧写要用STM32CubeProgrammer IDE界面,选择USB口的DFU 烧写(不过烧过之后怎么就不见了DFU呢,这里出了啥问题!!!)。
安装STM32CubeProgrammer后目录里还有个STM32_Programmer_CLI。这个就可以烧写无线固件。为了方便操作,可以把烧写的估计拷贝到这个安装目录。
无线固件烧写:(说明,目前只是讨论固件版本1.0的,另一个版本不讨论,因为有网友Firmware Upgrade Service (FUS) 升级出问题)
1,硬件准备:
stm32wb55 USB dongleSW2拨动到远离USB口的那端。
stm32wb55 nucleo: CN11的5和7腿短接,JP1跳接USB MCU(其他不接 )。

2,上电,擦除 :STM32_Programmer_CLI.exe -c port=usb1 -fwdelete
过程:

结果:


3,烧写:STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade [Wireless_Coprocessor_Binary] [Install@] firstinstall=1
Wireless_Coprocessor_Binary是你要烧写的文件
Install@是烧写文件地址

过程(我这里是烧写的thread固件,一定要看清楚烧写哪个,特别是地址要对):

结果:

4,断电后恢复硬件设置到原来状态。
stm32wb55 USB dongleSW2拨动到靠近USB口的那端。
stm32wb55 nucleo: CN11的5和7腿去掉短接,JP1跳接最靠边的那个(其他不接 )如下图


5,这样就结束了,后面可以
   stm32wb55 nucleo用自带的STLINK加编程调试软件,
   或者
   stm32wb55 USB dongle烧写用STM32CubeProgrammer IDE界面,选择USB口的DFU
   烧写应用程序了。
此内容由EEWORLD论坛网友damiaa原创,如需转载或用于商业用途需征得作者同意并注明出处





</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

卡森 发表于 2019-5-22 22:57

本帖最后由 卡森 于 2019-5-22 22:59 编辑

您好楼主!之前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没有坏,是吧?也请明示!谢谢!(怕再变砖,弄怕了:titter:)

damiaa 发表于 2019-5-23 09:53

本帖最后由 damiaa 于 2019-5-23 09:57 编辑

卡森 发表于 2019-5-22 22:57
您好楼主!之前free和我在坛子里遇到了升级1.1版本协议栈时遇到了变砖的问题,你这里只升级1.0版本的协议栈 ...
不过烧过之后怎么就不见了DFU呢,这里出了啥问题
是的。我这里还没时间仔细研究。
当时是看不到能继续烧写的DFU了。

后面说的是开始的烧写。是第一次。这里都是烧写应用程序。


后面我将继续观察。有消息再汇报。:)

毕竟上吃螃蟹的,哪能保证手上的板子不变砖呢。哈哈。不过这个应用层其实问题还小。可以用SWD烧写。但无线固件就不好办。

卡森 发表于 2019-5-23 14:41

你好!你现在的dfu接口已经不能用了,是吗?如果是这样的话,fus固件就被破坏了,那就无法再更新其他协议栈了,这有点问题。如果不是这样,那就可以继续更新协议栈。

damiaa 发表于 2019-5-23 20:49

本帖最后由 damiaa 于 2019-5-24 09:19 编辑

卡森 发表于 2019-5-23 14:41
你好!你现在的dfu接口已经不能用了,是吗?如果是这样的话,fus固件就被破坏了,那就无法再更新其他协议栈 ...
没破坏。把SW2拨到远离USB口的那边就可以替换无线固件,我刚才看了还有DFU 。普通应用程序要拨过来。但不能用STM32CubeProgrammer IDE烧写了(第一次是可以烧的),当时好像有个像MBED一样接口的盘,直接把文件拖进去就可以,应该那样处理的。不过现在其实可以用STLINK连上SWD接口烧写。

卡森 发表于 2019-5-23 22:34

dfu只在拨到远离 usb的位置才有效,拨过来是应用程序接口,无法实现 dfu真正的功能,我曾试过在应用程序接口实现 dfu功能(通过mx制作一个工程来实现),但仍无法连接fus固件,也就无法恢复原来变砖的板子了。而 Stlink即使在指定位置烧入了 fus固件,也无法再恢复 dfu的功能,估计要经过指定通道经过验证才能烧写正确,很是无奈啊。

damiaa 发表于 2019-5-24 09:21

卡森 发表于 2019-5-23 22:34
dfu只在拨到远离 usb的位置才有效,拨过来是应用程序接口,无法实现 dfu真正的功能,我曾试过在应用程序接 ...
FUS估计破坏了那是没办法了。我的是避开了这个。虽然破坏了应用程序直接用USB烧写。但还可以用STLINK。

卡森 发表于 2019-5-24 09:32

你的 USBdongle板子不能用 usb烧写应用程序了吗?它要实现 SW口烧写,你要焊线的吧?请明示一下!:)

damiaa 发表于 2019-5-24 10:12

卡森 发表于 2019-5-24 09:32
你的 USBdongle板子不能用 usb烧写应用程序了吗?它要实现 SW口烧写,你要焊线的吧?请明示一下!

还不清楚。今天拿到公司电脑,有发现了FS设备。但驱动没装好。

damiaa 发表于 2019-5-24 10:26

两边针焊接了好了。周末试一下用STLINK烧写。

卡森 发表于 2019-5-24 10:56

damiaa 发表于 2019-5-24 10:12
还不清楚。今天拿到公司电脑,有发现了FS设备。但驱动没装好。

嗯,ST的驱动也有些问题。

卡森 发表于 2019-5-24 10:58

damiaa 发表于 2019-5-24 10:12
还不清楚。今天拿到公司电脑,有发现了FS设备。但驱动没装好。

你再试着更新另一个无线协议栈试试看,如果成功了,那说明 dfu没问题了。

damiaa 发表于 2019-5-30 16:45

stm32wb55 USB dongle SWD烧写应用程序没问题。试了:接好地和电源,NRST SWDIO SWCLK,随便用ST的一款烧写软件。

damiaa 发表于 2019-8-15 10:13

<p>貌似固件升级的问题解决了,最近看ST的论坛资料。</p>
页: [1]
查看完整版本: 【STM32WB55 测评】+无线固件更新