一、 概述
在实际蓝牙键盘产品开发中,功耗是衡量产品的一个很重要的指标,本文将基于 NXP QN9080 IC 介绍如何进行蓝牙低功耗管理
二、 环境搭建
2.1 SDK 下载
本文基于 NXP QN9080 IC,SDK 可在 NXP 官网 https://mcuxpresso.nxp.com 下载
2.2 硬件
本文基于 QN9080 DK 板进行开发,DK 板如图 2.2 所示
图 2.2
2.3 开发软件
SDK 支持 IAR 、Keil 、 MCUXpreeso IDE 三种开发软件、本文以 IAR 为开发环境作为介绍
三、 低功耗的几种模式
QN9080 低功耗共有四种模式: Active 、 Sleep 、 Power down 0 、 Power down 1 ,图 3 是四种低功耗模式对应外设配置
图 3
四、 工程移植
在 QN908X 的 SDK 中,在 power_profiling 、 heart_rate_sensor 、temperature_collector 、 temperature_sensor 四个例程都有低功耗的处理,本文将在 hid_device 例程中添加低功耗的功能,在 SDK_2.2.0_QN908XCDK\boards\qn908xcdk\wireless_examples\bluetooth\hid_device 目录下的工程已经实现蓝牙鼠标的功能,我们可在此工程上添加低功耗功能
4.1 添加低功耗文件
在 hid_device 例程中没有添加低功耗处理文件,可在 SDK_2.2.0_QN908XCDK\middleware\wireless\framework_5.6.5\LowPower 路径上添加关于低功耗处理的 5 个文件,添加后如图 4.1 所示
图 4.1
4.2 添加宏定义
添加低功耗文件之后,我们需要将低功耗的宏使能,在 App_Preinclude.h 文件添加关于低功耗的 3 个宏定义,如图 4.2 所示
图 4.2
4.3 添加低功耗文件的相对路径
在 C/C++ Complier 添加关于低功耗文件所在的相对路径,如图 4.3 所示
图 4.3
4.4 添加头文件
在 board.c 文件中添加低功耗的头文件,如图 4.4 所示
图 4.4
4.5 添加函数定义
在 board.h 中添加相关函数的定义
图 4.5
4.6 设置唤醒源
设置开发板 SW1 为唤醒源,唤醒电平为低电平
图 4.6
4.7 进入睡眠
在断开事件中屏蔽重新广播函数,加入睡眠函数,这样在蓝牙断开连接后就会进入睡眠模式,如图 4.6 所示
图 4.6
五、 总结
本文对 NXP QN9080 IC 低功耗进行了介绍,并进行了简单的代码移植,在实际键盘及其它蓝牙产品开发中可进行添加实现低功耗的处理,关于蓝牙产品开发的更多资料可关注大联大世平编写的《基于 NXP QN9080 蓝牙键盘开发》、《基于 NXP QN9080 蓝牙OTA 移植》等文档介绍
六、 参考文献
【1】《 QN908x user manual 》
【2】《 QN908x Product data sheet 》
评论