请选择 进入手机版 | 继续访问电脑版
查看: 824|回复: 0

从QN902xD/Y迁移到QN902xE/Y

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32001
    最后登录
    2024-4-9
    发表于 2019-7-17 09:16:41 | 显示全部楼层 |阅读模式
    一、QN902x介绍


    QN902x是NXP推出的超低功耗、高性能和高集成度的Bluetooth LE v4.2系列芯片。适用于体育/健身、人机接口设备、和APP支持的智能配件等蓝牙智能应用。该产品专为近距离无线通讯电子产品而设计,可在纽扣电池等小容量电池的驱动下运行。


    QN902x是Arm Crotex-M0内核的单片机,最高工作频率是32MHz。并且拥有丰富的资源,下图1中列举了这个系列芯片的资源。


    这个系列包括三款产品,资源基本相同。区别如下:


         QN9020是紧凑型6mm x 6mm HVQFN48封装


         QN9021是5mm x 5mm HVQFN32封装


         QN9022是5mm x 5mm HVQFN40封装。QN9022不带128K Flash。
    1.png
    图1  QN902x系列芯片资源
    二、QN902x芯片版本及背景


    QN902x分为D/Y和E/Y两个系列版本,其中D/Y系列包含QN9020D/Y、QN9021D/Y和QN9022D/Y;E/Y系列只有QN9020E/Y和QN9021E/Y。


    QN902x系列芯片Bluetooth LE协议栈软件,以及Bootloader程序都是存在ROM里的,SDK函数及用户应用程序保存在Flash里。芯片上电复位之后,Bootloader将保存在Flash里的程序拷贝到RAM里运行。最初QN902x只有D/Y一个系列产品。


    芯片量产之后,ROM里程序随之固定。后期SDK维护过程中增加的新功能和错误更新,部分程序我们会以库的形式放在SDK里,并随着用户的应用程序一并编译下载到Flash里使用。


    随着新功能和错误更新的增加,RAM空间越来越受限,尤其是Bluetooth LE4.2增加了安全连接功能之后,留给用户可用的RAM就非常小了。


    基于以上原因,NXP重新更新并发布了QN902xE/Y系列产品,将SDK维护过程中新增功能和错误更新放到ROM里,从而节省出大约6KB的RAM和Flash给用户,并更新了Bootloader,增加了快速启动(Fast boot)功能。


    SDK从1.3.8版本开始支持QN902x E/Y系列。


    这里需要强调的是的D/Y和E/Y两个系列产品的管脚是完全兼容的,用户不需要修改电路板,只需要更新SDK并修改少量代码,即可完成从QN902x D/Y迁移到QN902x E/Y。


    采用D/Y版产品稳定量产的用户,即便暂时没有功能更新的需求,也可以阅读此文,了解一下E/Y版芯片相较于D/Y版有哪些更新,评估一下芯片迁移的技术难度,为将来芯片版本迁移提前做好心里准备。


    三、快速启动介绍


    QN902x系列产品的Bootloader支持ISP固件下载功能。


    系统上电之后,进入Bootloader,程序会首先进入ISP,等待ISP握手指令。如果200ms之内,系统收到ISP握手指令,系统会进入ISP流程,否则进入boot启动。这里需要注意200ms的等待时间,在QN902xD/Y系列里面是必不可少的。


    由于这个等待时间,针对一些需要快速启动的特殊应用,就无法满足了。比如A4WP无线充电协议要求系统在上电之后,在100ms以内必须广播数据出来。


    针对这一情况,我们在QN902xE/Y Bootloader里增加了Fast boot功能,在满足一定条件下Bootloader会跳过ISP等待,直接boot启动。下面来介绍如何启用Fast boot功能。



    1,首先在ISP下载时,需要打开Fast boot功能。
    2.png
    2,程序下载完之后,重新上电复位,Bootloader会根据GPIO P2.6的电平状态进入不同的模式:


    GPIO P2.6拉高(默认状态),系统跳过ISP,直接boot启动。


    GPIO P2.6拉低,系统进入ISP模式,并等待200ms。


    软件工程配置


    1,在usr_config.h中修改芯片硬件版本相关宏定义


    a.CFG_QN9020_B2 对应芯片版本为QN902x D/Y



    b.CFG_QN9020_B4 对应芯片版本为QN902x E/Y
    3.png
    2,切换工程里的库文件



    在Keil IDE工程里,lib文件夹里我们预留了以下几个库,可以根据芯片硬件版本和应用需求去使能相应的库文件。
    4.png
    举例说明:如果用户使用QN902x E/Y,Bluetooth LE 4.2,且需要OTA功能,那么需要使能qn_ota_b4.lib、qn_9020b4_lib_peripheral.lib,关闭其他lib文件。


    使能/关闭某个lib的操作步骤如下:



    a.右键点击lib文件,选择option选项
    5.png
    b.使能或关闭lib文件
    6.png
    3,bin文件大小对比



    基于SDK1.4.0 qpps demo project在各个配置下编译工程,对比之后即可发现相同的应用下,B4比B2大约节省了6KB的空间。
    7.png
    注意:Keil IDE编译优化等级为level3(-O3)。


    我们来分析一下上面表格数据,选用qn9020b2_lib_peripheral_ v42.lib编译结果,系统总共占用了大约42KB的空间(33008+1932+492+6768),剩余可用的空间为10KB左右,十分有限。因此,用户如果需要Bluetooth LE v4.2的话,强烈建议选用E/Y系列。




    四、总结


    通过以上介绍,相信读者已经基本理清了QN902x D/Y和QN902x E/Y的关系。


    我们鼓励大家踊跃地从D/Y系列迁移到E/Y系列。


    建议新用户直接选择QN902x E/Y系列更合适,没有历史版本负担,且可获取更多可用的存储资源和快速启动(Fast boot)功能,更具性价比。


    对于一直在用D/Y系列量产的老用户,也建议升级至E/Y系列。不用修改电路设计,仅需简单修改软件工程配置,编译后发布新固件即可,为将来功能扩展留足“备用地”。




    作者:甄朋飞    文章出处:恩智浦MCU加油站



    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-19 01:29 , Processed in 0.104854 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表