NXP QN9020 BLE协议栈学习笔记
阅读原文时间:2021年04月20日阅读:1

1.需要的硬件及软件工具:
硬件工具:
1) QN9020 Mini DK board
2)USB dongle
软件工具:
1)BLE协议栈(QBlue-1.3.9)
2)KEIL/ IAR开发软件
BLE协议栈安装目录下文件夹说明:
BinFiles_B2-----所有例程的可执行bin文件;
Documents-----有关QN9020 SDK开发及帮助文档;
Projects-----BLE协议栈源代码和具体例程以及各种通信接口驱动代码,支持IAR和KEIL工程;
Tools-----各种应用程序软件开发工具。
2.芯片及flash结构:
QN9020是ARM Crotex-M0内核的单片机,最高工作频率是32Mhz,支持BLE4.1,QN9020 flash大小为128K, 96Kb ROM,64Kb RAM。flash分为 4 个区域,分别为NVDS 区、 bootloader 区、APP区和 NVDS 备份区。如下:

![这里写图片描述] (https://img-blog.csdn.net/20161205220459841)
3.协议栈软件结构:
Qn9020 BLE 协议栈分为 LL、 L2CAP、 SMP、 ATT、 GATT、 GAP、 Profiles 及 APP八个层。每一层又分成很多子层,每层都是独立的状态机来管理任务。
4.低功耗
QN9020 有四种电源模式: active 、 idle 、Sleep和Deep sleep四种模式。在active 和 idle中,可单独关闭外设时钟,以降低功耗。Sleep 模式一般工作在连接或者广播事件中。Deep sleep模式下,关闭了32k 时钟源,此时BLE不工作。通过这四种电源模式来设置工作模式及进入低功耗方式。
QN902x低功耗的两种睡眠模式:睡眠Sleep和深睡眠Deep sleep。随便打开一个协议栈例程进入main函数while(1)里面enter_sleep函数,可以发现执行后等待中断指令,单片机停止运行,进入睡眠模式,并立即停止时钟。要设置进入睡眠模式,单片机开启睡眠定时器,使能32 kHz时钟。如果进入深度睡眠模式,必须等待外部中断唤醒。当外部中断或睡眠定时器超时时,唤醒中断控制器(WIC)使能系统时钟。

5.睡眠模式下设置睡眠持续时间:

 set_max_sleep_duration(QN_BLE_MAX_SLEEP_DUR); //设置睡眠时间

#if (defined(CFG_BLE_MAX_SLEEP_DUR))
    #define QN_BLE_MAX_SLEEP_DUR    CFG_BLE_MAX_SLEEP_DUR
#else
    #define QN_BLE_MAX_SLEEP_DUR    0x320 // 625us * 0x320 = 0.5s
#endif

/// BLE MAX sleep duration
#define CFG_BLE_MAX_SLEEP_DUR   0x3e80  // 625us * 0x3e80 = 10s

单位为625us,参数最大可设置为209715199,对应的最大睡眠时间大概是36小时16分钟。
6.修改广播时间间隔:

/// Minimum to maximum advertisement interval in any discoverable
/// or connectable mode when user initiated: TGAP(adv_fast_interval1)
/// recommended value: 30 to 60 ms; N * 0.625
#define GAP_ADV_FAST_INTV1                                  0x00F0 //150ms

/// Minimum to maximum advertisement interval in any discoverable
/// or connectable mode when user initiated: TGAP(adv_fast_interval2)
/// recommended value: 100 to 150 ms; N * 0.625
#define GAP_ADV_FAST_INTV2                                  0x00F0 //150ms

更多技术文章浏览请关注:

百家号:
https://author.baidu.com/home?context=%7B%22app_id%22%3A%221646108714303504%22%7D&wfr=bjh

头条号:
https://www.toutiao.com/c/user/8115738721/#mid=1646025109246987

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章