基于 NXP QN9080 蓝牙低功耗实现

一、        概述

在实际蓝牙键盘产品开发中,功耗是衡量产品的一个很重要的指标,本文将基于 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 》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论