QCC304X/QCC514X DFU/OTA升级精讲

本文介绍了Earbud芯片QCC304X、QCC514X无线OTA(DFU)的前端和后端两种模式,详细说明了获取工程源码、安装工具、解锁调试、创建密钥、配置MAC地址、制作升级包等步骤,还阐述了使用GAIA Client进行升级的操作流程,强调升级时耳机不能放充电盒。

本例适用与芯片:QCC304X QCC514X,其它系列原理应该相似

说明:

Earbud芯片的无线OTA(DFU)有两种模式:前端模式和后端模式;

  • 前端模式:即耳机可以连听音乐边进行OTA,固件传输和校验过程不会影响耳机的正常使用,只有在上传过去的固件被生效或者写入指定flash位置时,耳机才会发生重启动作;
  • 后端模式:即耳机需要先进入DFU模式再进行OTA,据说这种模式出错的概率更低,但要求用户必须先执行进入DFU的操作,并且UI也必须提供这样的按钮定义;该种方式的步骤为:
    • 耳机取出充电盒与手机正常连接后,用GaiaClient连接到耳机;
    • 通过UI定义让耳机进入DFU模式,然后尽快把耳机放入充电盒(或使之处于充电盒中的状态,即InCase状态),这时从手机端来看音频蓝牙连接会断开,耳机本身也会发生Disconnect事件;不过此时并未真正与GaiaClient断开连接(此时笔者认为应该是BLE和手机保持着链接);
    • 放入充电盒后,尽快用GaiaClient上传固件,这后续的步骤就和前端模式下的操作一模一样了。详细步骤参考本文件后半部分。

 

  • 首先获得工程源码
  • 安装MDE工具及ADK,笔者安装的版本如下图。 一定要注意,ADK的版本不要安装太新的,因为太新的安装 包里的工具可能不完整,比如版本:ADK_Toolkit.WIN.1.1 Installer_1.1.2.40,里面就没有生成dfu的脚本文件,笔者就中过招。

  • 安装bluesuit,笔者安装的版本为BlueSuite.WIN.3.3 Installer_3.3.5.817
  • 解锁USB口调试,解锁办法为:
  • 创建一个文本文件,假设路径为D:\key.txt,其内容为: 00000000000000000000000000000000
  • 用管理员权限打开cmd, 然后切换到bluesuit的目录,执行如下指令,看到Success表示已经解锁成功;

 

  • 用MDE打开一工程,笔者以QCC3040为例; 工程打开后,首先创建密钥,办法为:
  • 点击MDE菜单中的ToolsàSetup DFU Security , 然后会出现两个对话框(如下图),一个是tk窗口,另一个为选择密钥文件存放的位置,我们直接点击OK按钮,采用默认位置,因为工程编译时会索引其产生的文件。

                自动创建的密钥相关文件有:dfu-private.key, dfu-public.key, private.pem, public.pem, rsa_pss_constants.c;

               

  • 配置好耳机的MAC地址,后重新Rebuild 整个工程(耗时会比较长);
  • 工程Rebuild之后,需要Deploy All (Build->Deploy All),把所有相关文件都烧录到左右两侧的芯片中;注意烧录另一侧时,需要修改蓝牙MAC地址最后一个字节,并且此时不需要全部重新编译,只需要Build -->BuildAll 即可,这样会快很多。
  • 如果只是需要制作DFU的升级包,可以不用部署;
  • 如果需要生成工厂使用的文件,就需要部署左右两侧的耳机,然后能过BlueSuit中的NvsApp或者使用nvscmd来从左右两侧的芯片中把所有固件都Dump出来,这两个Dump出来的xuv固件才可以被用来做为工厂生产的文件,而不是DeployAll后工程目录下的flash_image.xuv文件,注意这两类是不一样的。
  • 因为固件中的MAC地址是固定的,所以工厂生产时,烧录完两个耳机后,还需要修改MAC地址;
  • !!!!再次提醒,新的芯片必须烧录Dump出来的xuv文件,而不是Build出来的flash_image.xuv文件;

  • 同时用USB口连接耳机到电脑,并确保电脑已经识别出来,可以用MDE来判断或者从设备表示里看,两者判断方法如下图所示:

  • 编译完成后,点击菜单 ToolsàBuild DFU File来制作OTA升级包,其间会让你选择一些路径,采用默认路径。

 

  • 然后是选择加密文件,对话框注释中有说明,笔者也没查到哪里显示为6.1或6.0,所以就采用了默认全加密:

 

  • 然后是选择生成OTA升级包的文件,默认是全选的,这样生成的包会比较大,OTA时会占用时间比较长,因为通常情况下只是修改earbud.x2p文件,所以笔者只选了这一个来生成OTA文件,如下图,具体其它几个文件都什么意思,可以查看官方手册;

 

然后选择不加密:

 

 

  • 点击Proceed后就会生成ota文件,日志如下,会看到Success及bin文件的路径,该bin文件即为ota长级包;

 

然后把bin文件复制到手机上,用GAIA Client 来升级(注意不是GAIA Control);

特别注意:升级的时候耳机不能放入充电盒或充电状态,并确保电量充足,且无需进入dfu模式,可以边听歌边升级(按手册讲需要进入dfu模式,实测下来不需要这样).


下面是GAIA Client一步步操作步骤:

 

  • >确定升级包已经在手机上;

  • >手机和耳机进入配对并连接,然后打开GAIA Client会看到耳机,若没有可以通过重新打开APP或者下拉刷新;

 

  • >点击该设备,进入下面界面,显示耳机及app的信息;

 

  • >点击下面的Settings按钮,进入设备操作菜单,如下图:

 

  • >点击Software updates按钮进入ota文件选择界面,如下图:

 

  • >点击SELECT UPGRADE FILE按钮来选择刚才的bin升级包,然后进入上传OTA文件界面,如下图:

 

  • >上传完毕后,会进入固件校验界面,如下图,耐心等待,因为持续时间会有点长;

 

  • >校验完成后,会弹出确认窗口,我们直接点击CONFIM即可

 

  • >然后如果你在听音乐,会发现其中一个耳机没声音了,并随后发生了重启,

 

  • >然后会再次出现一个安装升级包的确认窗口,这是因为升级包已经放在了指定位置,需要用户来确认是否生效,此步为最后一次放弃生级的机会,若确定长级点confirm即可,否则点abort来放弃升级;
  • 升级完成后,会出现升级完成界面,如下图,至此两个耳机均以升级完毕。

 

 

 

注意:整个升级过程耳机都不能放入充电盒,并且用户可以连听歌边升级

QCC3031是一款入门级可程式设计蓝牙音讯SoC,专为优化的蓝牙音箱而设计。基于极低功耗架构,支援高通aptX:trade_mark:和aptX HD音讯、并可开启TWS功能将左右声道输出到两个QCC3031蓝牙音箱再配合高通独有可控制开启外部2.4 GHz TRANSMIT/RECEIVE射频芯片将输出功率加大、支援最高到1.8A的充电电流设计,更可以让音乐享受不受间断和距离的打扰。 QCC3031采用QFN封装,旨在为客户提供有助于缩短开发时间和成本的解决方案。除了高品质的Analogue Audio 输出界面之外,另可程式化的Digital audio 丰富音源输出,输入方面除了无线蓝牙之外,有线输入支援USB音源拨放,还可以设定成wire in的方式让你聆听音乐的方式不再受到限制。 现在将透过硬体设计的规范、测试和软体的设定来帮助你如何快速设计高通QCC3031 Class 1 TWS蓝牙音箱。 硬体设计 在硬体线路设计方面,除了QCC3031基本线路之外,我们另外考虑外部线路,此次设计不用QCC3031原来的Analogue Audio 输出界面,而是另外设计Digital I2S界面,并留出控制外部2.4 GHz TRANSMIT/RECEIVE射频芯片开启脚位来达到无线输出大功率的设计。三个按键足以应付一般开关机,配对,大小声等基本功能,当然还可以触发TWS功能,开启、切换EQ等进阶功能应用。三个LED的设计也可以让你在使用蓝牙音箱时能时时刻刻知道现在蓝牙音箱的状态。 电路布局方面,QCC3031外包装为QFN80 pins设计,周边零件都可围绕QCC3031来做摆放,不需双面元件摆放来设计。 除了RF和Crystal下方不能有任何连接线经过之外,在传输线的四周和带通滤波器下方也尽量钻孔连接下方的大地层。 此外还需特别注意1.8V 和1.1V SMPS buck 线路,保持SMPS周边零件靠QCC3031 摆放除了可以避免PCB板的杂散电感而造成的电压杂讯,并可以限制EMI的产生。 当然其馀的滤波和稳压电容也是靠近QCC3031脚位摆放。 软体设定 在软体方面,高通除了Mutlicore Development Environment(MDE)开发环境之外,还有ADK Configuration tool 可以用来做按键触发和I2S,TWS功能设定、LED显示、音源输出设定,然后再搭配QCAT来调整cVc和Music EQ效果。 关于I2S输出设定,首先要在Project 内 Enable wire 的功能Properties/Project : ENABLE_WIRED 然后在fw_cfg_filesystem\common\subsys3_config1.htf 设定I2S的脚位。 # Select PIOs for I2S interface 0 and 1: SCK, WS, MCLK, SD_OUT, SD_IN. PcmPioConfig = [ 10 11 ff 12 13 ] Build All和Deploy All之后还要再进入ADK Configuration tool去做Channel Allocation的设定。这边须注意如果要看到I2S的选项一定要在前一步骤Enable-Wired之后才会出现。 我们在ADK Configuration tool 工具内Configuration Set > Audio > Output > Channel Allocation底下将Endpoint Hardware Type改成 I2S。 如果要开启TWS音箱的功能,也要在Properties/Project : enable_peer_device 选择ENABLE_PEER_TWS_PEER_AVRCP。 启动ADK configuration tool 关闭ShareMe的设定,Configuration Set > Peer Device Support > ShareMe 在Configuration Set > Peer Device Support > True Wireless Stereo设定TWS和Audio Source的来源。 以上完成软体的所有设定之后Write Device 接着就可以Disconnect form Device。 当HSP/HFP或A2DP 连接完成后,就可以看到I2S的输出,再搭配Stereo I2S Audio Amplifier即可以推动大瓦数的喇叭。 QCC3031本身提供aptX Classic + aptX-HD Decoders高音质较少损耗的无线音乐品质,除了喇叭单体和音箱结构设计来调整音质之外,另外可借由QACT(Qualcomm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值