登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
9月17日,Gitee Xtreme 极智AI重磅发布,来Gitee直播间一起探索AI时代的软件研发新模式
代码拉取完成,页面将自动刷新
开源项目
>
前沿技术
>
智能硬件
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
60
Star
205
Fork
103
珠海杰理科技
/
fw-AC63_BT_SDK
代码
Issues
94
Pull Requests
1
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
NOTE: ble功耗数据、如何降低功耗
待办的
#I60RRC
JL-jianye
成员
创建于
2022-11-11 18:39
# 一、简介   有很多小伙伴在开发案子的时候遇到了功耗降不下来,或者功耗不能满足客户的要求的问题,下面就讲怎么降功耗。下面以AC6321为例进行讲解。 # 二、环境准备 ### 1、名词介绍   在讲解之前先介绍几个关于杰理芯片的几个名词 + powerdown -->系统进低功耗 + poweroff(shutdown) -->软关机 + sniff -->蓝牙呼吸模式 #### poweroff    该模式功耗为2uA,基本所有的芯片都是这个功耗。该模式下RAM是会掉电的,芯片只能通过按键来唤醒,其实RTC闹钟也可以。 #### powerdown   AC632在此模式下在此模式下的功耗为18uA,不同的芯片该模式下的功耗是不一样的,该模式下RAM是不掉电的,也就是说蓝牙在该模式下还能保持连接。一般我们降功耗也是希望芯片能更长的时间处于power down的状态。该 状态下除了通过按键和RTC可以唤醒以为,还可以通过系统定时器中断来唤醒。 u16 sys_timer_add(void *priv, void (*func)(void *priv), u32 msec); u16 sys_timeout_add(void *priv, void (*func)(void *priv), u32 msec); #### sniff   指的是通过减少主设备发送数据的时隙数并相应减少从设备监听的时隙数,从而达到节省电源的目的。他更多讲的是蓝牙软件上面的一种策略,实际功耗有没有降下来还是要看硬件有没有进powerdown。 ### 2、硬件环境准备 1、可以正常烧写程序的板子 2、测电流工具,推荐用功耗盒子,他可以以图像的方式显示当前的功耗情况。下面小编也是通过功耗盒子来讲解的,用电流表不太好处理功耗问题,下次有空再写。  #### 公版功耗测试板子要求   降功耗的第一步就是要知道正常的功耗是什么样子,要不然心里是没有底的。   我是用demo板测试的上面只有芯片的最小系统,如果你是样机没有demo,那就去拆,把跟杰理芯片不相关的硬件都拆掉,只留下晶振、vbat、vddio脚的电容、如果支持DCDC的芯片,可以保留该部分电路。    小编测试的板子是长这个样子的。  ### 3、修改软件   小编用的SDK是《AC630N_bt_data_transfer_sdk_release_v2.1.0》,工程用的是透传、单从机的工程,为什么用这个工程呢,就是这个是ble最简单的工程。   #### (1)修改板级配置 在测功耗的时候串口可以开,但是测数据的时候串口线不要接,接了以后功耗会偏低  关掉AD按键,软件开了AD按键,如果硬件没有接的话会导致芯片不能进低功耗  软件使能低功耗模式,DCDC和LDO要根据硬件环境来配置,小编使用的是LDO的,DCDC会比LDO功耗要低  关掉电量检测和经典蓝牙  ### 3、可以把代码下载到demo板里面 ### 4、功耗盒子测量准备 下图是小编的功耗盒子连接方式,不同的功耗盒子的接线方式可能有区别。  下面是小编对应功耗盒子的上位机界面,如果第一次使用建议还是先“空载归零”一下,这样会比较准。建议在接板子之前最好还是用万用表量一下功耗盒子的输出,如果功耗盒子发神经输出偏高,烧坏了芯片,那测出来的数据也没有意义了。  # 三、芯片各阶段功耗分析 ### 1、芯片在低功耗下的分析   下载程序以后有打印<>和[]就表示有正常进低功耗了'<'和'>'是应用层的打印,'['和']'是库里面的打印,   用游标量最低点的功耗,大概在18-20uA,如果此时的功耗偏高,可以排查一下芯片外围电路、或者换板子试试。  ### 2、芯片在广播状态下的分析 近期的平均功耗为185uA,我们看到两个波峰的间隔是500ms(这个是广播的间隔)  ### 3、芯片在上电状态下的分析 正常上电开机的波形是这样的,全擦flash上电功耗要高一点,因为第一上电芯片会多了校准的流程。  ### 4、芯片在连接状态下的分析 下面是小编用iPhone11,测试的ble连接功耗。连接参数是interval:28;latency:10;timeout:600;(这个参数很重要,如果有小伙伴不懂这三个参数的意义可以看一下这个链接 https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I4MEA5 ),值得注意的公版的流程是主机在打开监听通道的时候,从机才会向主机请求自己的连接参数。   我们看到连接以后,两个波峰之间的时间大概是377ms,这个时间基本可以算出来的。低功耗周期 = interval*1.25*latency(单位:ms)。小编的低功耗周期=28*1.25*10=350(ms)跟两个波峰的间隔相差不大。  有时候我们会出现连续的两个波峰,原因是杰理看门狗周期的一半也会出低功耗。  # 四、杰理芯片进出低功耗的流程 杰理的芯片是无法直接控制芯片进出低功耗的,当芯片空闲的时候,就会自动进低功耗,当有系统定时器起中断时芯片就会主动出低功耗。  + 程序不能控制芯片主动进低功耗,但是程序可以控制芯片不要进低功耗。那么反过来如果我们的程序进不了低功耗就可以查一下REGISTER_LP_TARGET注册的函数是不是有地方没有返回1; ```c //代码任意地方添加此段代码,全局修改此变量,底层会自动获取判断 u8 can_enter_lp = 0; //置1 可进睡眠,置0 不可进睡眠 static u8 custom_idle_query(void) { if(can_enter_lp){ return 1; }else{ return 0; } } REGISTER_LP_TARGET(custom_lp_target) = { .name = "custom_lp", .is_idle = custom_idle_query, }; ``` # 五、怎么降低功耗 ### 开机阶段: 基本没得降 ### 广播阶段: 公版在这个阶段只存在两种自动唤醒,一种是广播周期,一种是看门狗周期的一般。想降低功耗只能改长广播周期或者改长看门狗的周期。但是广播周期改到2s以上手机就比较难搜到了。   ### 连接阶段: 因为蓝牙规定ble必须隔一段时间起来跟主机通信一下,来保证ble处于连接状态。这个一段时间就是由连接参数确定的,怎么设置连接参数可以看一下这个链接( https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I4MEA5 )同时这时候修改开门狗周期也是起作用的。 现在功能程序怎么降功耗就讲完了,是不是很简单。 # 六、公版程序的功耗正常、自己写的代码功耗偏高 很多小伙伴说我测公版的程序正常,但是自己写的程序功耗偏高 ### 1、芯片直接不进低功耗 + 1、REGISTER_LP_TARGET注册的函数有地方没有返回1 + 2、板级配置里面低功耗没有使能 + 3、自己写的代码耗时太长,导致芯片进不了低功耗,这个时候可以用示波器抓一下函数前后(函数前后翻转IO口)的执行时间。 + 4、其他(欢迎小伙伴的补充) ### 2、芯片有进低功耗(有打印'<' '>'), + 1、DP、DM脚做输出会高300uA + 2、IO口同时开上下拉电阻 + 3、其他 ### 3、芯片进出低功耗频率比较快 + 1、调用了很多的系统定时器(如果在意功耗就避免系统定时器的使用,可以使用硬件定时器) ```c /** * @brief usr_timer定时扫描增加接口 * * @param [in] priv 私有参数 * @param [in] func 定时扫描回调函数 * @param [in] msec 定时时间, 单位:毫秒 * @param [in] priority 优先级,范围:0/1 * * @return 定时器分配的id号 * * @note * 1、usr_timer的参数priority(优先级)为1,使用该类定时器,系统无法进入低功耗; * 2、usr_timer的参数priority(优先级)为0,使用该类定时器,系统低功耗会忽略该节拍,节拍不会丢失,但是定时周期会变; * 3、usr_timer属于异步接口, add的时候注册的扫描函数将在硬件定时器中时基到时候被调用; * 4、对应释放接口usr_timer_del。 */ u16 usr_timer_add(void *priv, void (*func)(void *priv), u32 msec, u8 priority); ``` ### 4、其他 # 七、杰理ble芯片功耗测试情况:   # 八、杰理ble芯片低功耗下功耗情况: 631 Series Brief -------------- 详细的芯片规格书(datasheet)和原理图,请参考[AC631规格书](./datasheet/AC631N规格书) |P/N|Core|RAM|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙协议|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6311A|32bit@120MHz|48~56KB|Yes(250mA)|256KB|LDO/DCDC|Sleep@30uA<br>Systemoff@1uA<br>TX 0dBm@8mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN32](./datasheet/AC631N规格书/AC6311A_Datasheet_20V1.1.pdf)| 636 Series Brief -------------- 详细的芯片规格书(datasheet)和原理图,请参考[AC636规格书](./datasheet/AC636N规格书) |P/N|Core|RAM|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙协议|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6363F|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN20](./datasheet/AC636N规格书/datasheet/AC6363F_Datasheet_V1.0.pdf)| |AC6366C|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleekp@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[LQFN32](./datasheet/AC636N规格书/datasheet/AC6366C_Datasheet_V1.0.pdf)| |AC6369C|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes| |AC6369F|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~3.6V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP16](./datasheet/AC636N规格书/datasheet/AC6369F_Datasheet_V1.0.pdf)| |AC6368A|32bit@192MHz|136KB|No|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~3.6V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC636N规格书/datasheet/AC6368A_Datasheet_V1.0.pdf)| |AC6368B|32bit@192MHz|136KB|No|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC636N规格书/datasheet/AC6368B_Datasheet_V1.0.pdf)| 635 Series Brief -------------- 详细的芯片规格书[datasheet](./datasheet/AC635N规格书/datasheet/AC635N_datasheet.pdf)和原理图,请参考[AC635规格书](./datasheet/AC635N规格书) |P/N|Core|RAM|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙协议|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6351D|32bit@240MHz|192KB|Yes(250mA)|256KB|LDO|Sleep@150uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[LQFN48](./datasheet/AC635N规格书/datasheet/AC6350D_Datasheet_V1.0.pdf)| |AC6354B|32bit@240MHz|192KB|Yes(250mA)|256KB|LDO|Sleep@150uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[LQFN52](./datasheet/AC635N规格书/datasheet/AC6354B_Datasheet_V1.0.pdf)| 632 Series Brief -------------- 详细的芯片规格书[datasheet](./datasheet/AC632N规格书/datasheet/AC632N_datasheet.pdf)和原理图,请参考[AC632规格书](./datasheet/AC632N规格书) |P/N|Core|RAM|I/O|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6321A|32bit@96MHz|64+8KB|25 GPIO|Yes(250mA)|256KB|LDO/DCDC|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN32](./datasheet/AC632N规格书/datasheet/AC6321A_Datasheet_V1.0.pdf)| |AC6323A|32bit@96MHz|64+8KB|13 GPIO|Yes(250mA)|256KB|LDO/DCDC|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN20](./datasheet/AC632N规格书/datasheet/AC6323A_Datasheet_V1.0.pdf)| |AC6328A|32bit@96MHz|64+8KB|3 GPIO|No|256KB|LDO|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~3.4V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC632N规格书/datasheet/AC6328A_Datasheet_V1.0.pdf)| |AC6328B|32bit@96MHz|64+8KB|2 GPIO|No|256KB|LDO|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC632N规格书/datasheet/AC6328B_Datasheet_V1.0.pdf)| |AC6329C|32bit@96MHz|64+8KB|8 GPIO|Yes(250mA)|256KB|LDO|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP16](./datasheet/AC632N规格书/datasheet/AC6329C_Datasheet_V1.0.pdf)| 638 Series Brief -------------- 详细的芯片规格书[datasheet](./datasheet/AC638N规格书/datasheet/AC638N_datasheet.pdf)和原理图,请参考[AC638规格书](./datasheet/AC638N规格书) |P/N|Core|RAM|I/O|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6381A|32bit@160MHz|176KB|24 GPIO|Yes(200mA)|256KB|LDO/DCDC|Sleep@100uA<br>Systemoff@1uA<br>TX 0dBm@8mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN32](./datasheet/AC638N规格书/datasheet/AC6381A_Datasheet_V1.0.pdf)| |AC6385A|32bit@120MHz|176KB|20 GPIO|Yes(200mA)|256KB|LDO/DCDC|Sleep@100uA<br>Systemoff@1uA<br>TX 0dBm@8mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QSOP24](./datasheet/AC638N规格书/datasheet/AC6385A_Datasheet_V1.0.pdf)| 参考链接:https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/tree/master/doc # (欢迎各位小伙伴的讨论,大家遇到的功耗问题欢迎在下方评论,小编会定时合到文章里面)
# 一、简介   有很多小伙伴在开发案子的时候遇到了功耗降不下来,或者功耗不能满足客户的要求的问题,下面就讲怎么降功耗。下面以AC6321为例进行讲解。 # 二、环境准备 ### 1、名词介绍   在讲解之前先介绍几个关于杰理芯片的几个名词 + powerdown -->系统进低功耗 + poweroff(shutdown) -->软关机 + sniff -->蓝牙呼吸模式 #### poweroff    该模式功耗为2uA,基本所有的芯片都是这个功耗。该模式下RAM是会掉电的,芯片只能通过按键来唤醒,其实RTC闹钟也可以。 #### powerdown   AC632在此模式下在此模式下的功耗为18uA,不同的芯片该模式下的功耗是不一样的,该模式下RAM是不掉电的,也就是说蓝牙在该模式下还能保持连接。一般我们降功耗也是希望芯片能更长的时间处于power down的状态。该 状态下除了通过按键和RTC可以唤醒以为,还可以通过系统定时器中断来唤醒。 u16 sys_timer_add(void *priv, void (*func)(void *priv), u32 msec); u16 sys_timeout_add(void *priv, void (*func)(void *priv), u32 msec); #### sniff   指的是通过减少主设备发送数据的时隙数并相应减少从设备监听的时隙数,从而达到节省电源的目的。他更多讲的是蓝牙软件上面的一种策略,实际功耗有没有降下来还是要看硬件有没有进powerdown。 ### 2、硬件环境准备 1、可以正常烧写程序的板子 2、测电流工具,推荐用功耗盒子,他可以以图像的方式显示当前的功耗情况。下面小编也是通过功耗盒子来讲解的,用电流表不太好处理功耗问题,下次有空再写。  #### 公版功耗测试板子要求   降功耗的第一步就是要知道正常的功耗是什么样子,要不然心里是没有底的。   我是用demo板测试的上面只有芯片的最小系统,如果你是样机没有demo,那就去拆,把跟杰理芯片不相关的硬件都拆掉,只留下晶振、vbat、vddio脚的电容、如果支持DCDC的芯片,可以保留该部分电路。    小编测试的板子是长这个样子的。  ### 3、修改软件   小编用的SDK是《AC630N_bt_data_transfer_sdk_release_v2.1.0》,工程用的是透传、单从机的工程,为什么用这个工程呢,就是这个是ble最简单的工程。   #### (1)修改板级配置 在测功耗的时候串口可以开,但是测数据的时候串口线不要接,接了以后功耗会偏低  关掉AD按键,软件开了AD按键,如果硬件没有接的话会导致芯片不能进低功耗  软件使能低功耗模式,DCDC和LDO要根据硬件环境来配置,小编使用的是LDO的,DCDC会比LDO功耗要低  关掉电量检测和经典蓝牙  ### 3、可以把代码下载到demo板里面 ### 4、功耗盒子测量准备 下图是小编的功耗盒子连接方式,不同的功耗盒子的接线方式可能有区别。  下面是小编对应功耗盒子的上位机界面,如果第一次使用建议还是先“空载归零”一下,这样会比较准。建议在接板子之前最好还是用万用表量一下功耗盒子的输出,如果功耗盒子发神经输出偏高,烧坏了芯片,那测出来的数据也没有意义了。  # 三、芯片各阶段功耗分析 ### 1、芯片在低功耗下的分析   下载程序以后有打印<>和[]就表示有正常进低功耗了'<'和'>'是应用层的打印,'['和']'是库里面的打印,   用游标量最低点的功耗,大概在18-20uA,如果此时的功耗偏高,可以排查一下芯片外围电路、或者换板子试试。  ### 2、芯片在广播状态下的分析 近期的平均功耗为185uA,我们看到两个波峰的间隔是500ms(这个是广播的间隔)  ### 3、芯片在上电状态下的分析 正常上电开机的波形是这样的,全擦flash上电功耗要高一点,因为第一上电芯片会多了校准的流程。  ### 4、芯片在连接状态下的分析 下面是小编用iPhone11,测试的ble连接功耗。连接参数是interval:28;latency:10;timeout:600;(这个参数很重要,如果有小伙伴不懂这三个参数的意义可以看一下这个链接 https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I4MEA5 ),值得注意的公版的流程是主机在打开监听通道的时候,从机才会向主机请求自己的连接参数。   我们看到连接以后,两个波峰之间的时间大概是377ms,这个时间基本可以算出来的。低功耗周期 = interval*1.25*latency(单位:ms)。小编的低功耗周期=28*1.25*10=350(ms)跟两个波峰的间隔相差不大。  有时候我们会出现连续的两个波峰,原因是杰理看门狗周期的一半也会出低功耗。  # 四、杰理芯片进出低功耗的流程 杰理的芯片是无法直接控制芯片进出低功耗的,当芯片空闲的时候,就会自动进低功耗,当有系统定时器起中断时芯片就会主动出低功耗。  + 程序不能控制芯片主动进低功耗,但是程序可以控制芯片不要进低功耗。那么反过来如果我们的程序进不了低功耗就可以查一下REGISTER_LP_TARGET注册的函数是不是有地方没有返回1; ```c //代码任意地方添加此段代码,全局修改此变量,底层会自动获取判断 u8 can_enter_lp = 0; //置1 可进睡眠,置0 不可进睡眠 static u8 custom_idle_query(void) { if(can_enter_lp){ return 1; }else{ return 0; } } REGISTER_LP_TARGET(custom_lp_target) = { .name = "custom_lp", .is_idle = custom_idle_query, }; ``` # 五、怎么降低功耗 ### 开机阶段: 基本没得降 ### 广播阶段: 公版在这个阶段只存在两种自动唤醒,一种是广播周期,一种是看门狗周期的一般。想降低功耗只能改长广播周期或者改长看门狗的周期。但是广播周期改到2s以上手机就比较难搜到了。   ### 连接阶段: 因为蓝牙规定ble必须隔一段时间起来跟主机通信一下,来保证ble处于连接状态。这个一段时间就是由连接参数确定的,怎么设置连接参数可以看一下这个链接( https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I4MEA5 )同时这时候修改开门狗周期也是起作用的。 现在功能程序怎么降功耗就讲完了,是不是很简单。 # 六、公版程序的功耗正常、自己写的代码功耗偏高 很多小伙伴说我测公版的程序正常,但是自己写的程序功耗偏高 ### 1、芯片直接不进低功耗 + 1、REGISTER_LP_TARGET注册的函数有地方没有返回1 + 2、板级配置里面低功耗没有使能 + 3、自己写的代码耗时太长,导致芯片进不了低功耗,这个时候可以用示波器抓一下函数前后(函数前后翻转IO口)的执行时间。 + 4、其他(欢迎小伙伴的补充) ### 2、芯片有进低功耗(有打印'<' '>'), + 1、DP、DM脚做输出会高300uA + 2、IO口同时开上下拉电阻 + 3、其他 ### 3、芯片进出低功耗频率比较快 + 1、调用了很多的系统定时器(如果在意功耗就避免系统定时器的使用,可以使用硬件定时器) ```c /** * @brief usr_timer定时扫描增加接口 * * @param [in] priv 私有参数 * @param [in] func 定时扫描回调函数 * @param [in] msec 定时时间, 单位:毫秒 * @param [in] priority 优先级,范围:0/1 * * @return 定时器分配的id号 * * @note * 1、usr_timer的参数priority(优先级)为1,使用该类定时器,系统无法进入低功耗; * 2、usr_timer的参数priority(优先级)为0,使用该类定时器,系统低功耗会忽略该节拍,节拍不会丢失,但是定时周期会变; * 3、usr_timer属于异步接口, add的时候注册的扫描函数将在硬件定时器中时基到时候被调用; * 4、对应释放接口usr_timer_del。 */ u16 usr_timer_add(void *priv, void (*func)(void *priv), u32 msec, u8 priority); ``` ### 4、其他 # 七、杰理ble芯片功耗测试情况:   # 八、杰理ble芯片低功耗下功耗情况: 631 Series Brief -------------- 详细的芯片规格书(datasheet)和原理图,请参考[AC631规格书](./datasheet/AC631N规格书) |P/N|Core|RAM|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙协议|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6311A|32bit@120MHz|48~56KB|Yes(250mA)|256KB|LDO/DCDC|Sleep@30uA<br>Systemoff@1uA<br>TX 0dBm@8mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN32](./datasheet/AC631N规格书/AC6311A_Datasheet_20V1.1.pdf)| 636 Series Brief -------------- 详细的芯片规格书(datasheet)和原理图,请参考[AC636规格书](./datasheet/AC636N规格书) |P/N|Core|RAM|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙协议|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6363F|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN20](./datasheet/AC636N规格书/datasheet/AC6363F_Datasheet_V1.0.pdf)| |AC6366C|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleekp@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[LQFN32](./datasheet/AC636N规格书/datasheet/AC6366C_Datasheet_V1.0.pdf)| |AC6369C|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes| |AC6369F|32bit@192MHz|136KB|Yes(250mA)|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~3.6V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP16](./datasheet/AC636N规格书/datasheet/AC6369F_Datasheet_V1.0.pdf)| |AC6368A|32bit@192MHz|136KB|No|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~3.6V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC636N规格书/datasheet/AC6368A_Datasheet_V1.0.pdf)| |AC6368B|32bit@192MHz|136KB|No|256KB|LDO|Sleep@80uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC636N规格书/datasheet/AC6368B_Datasheet_V1.0.pdf)| 635 Series Brief -------------- 详细的芯片规格书[datasheet](./datasheet/AC635N规格书/datasheet/AC635N_datasheet.pdf)和原理图,请参考[AC635规格书](./datasheet/AC635N规格书) |P/N|Core|RAM|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙协议|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6351D|32bit@240MHz|192KB|Yes(250mA)|256KB|LDO|Sleep@150uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[LQFN48](./datasheet/AC635N规格书/datasheet/AC6350D_Datasheet_V1.0.pdf)| |AC6354B|32bit@240MHz|192KB|Yes(250mA)|256KB|LDO|Sleep@150uA<br>Systemoff@1uA<br>TX 0dBm@6.8mA<br>RX@|2.2~5.5V|Min:-40°C<br>Max:85°C|Classic:SDP/RFCOMM/SPP <br> LE:ATT/SM/HOGP/Mesh|SmartReady v5.1|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[LQFN52](./datasheet/AC635N规格书/datasheet/AC6354B_Datasheet_V1.0.pdf)| 632 Series Brief -------------- 详细的芯片规格书[datasheet](./datasheet/AC632N规格书/datasheet/AC632N_datasheet.pdf)和原理图,请参考[AC632规格书](./datasheet/AC632N规格书) |P/N|Core|RAM|I/O|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6321A|32bit@96MHz|64+8KB|25 GPIO|Yes(250mA)|256KB|LDO/DCDC|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN32](./datasheet/AC632N规格书/datasheet/AC6321A_Datasheet_V1.0.pdf)| |AC6323A|32bit@96MHz|64+8KB|13 GPIO|Yes(250mA)|256KB|LDO/DCDC|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN20](./datasheet/AC632N规格书/datasheet/AC6323A_Datasheet_V1.0.pdf)| |AC6328A|32bit@96MHz|64+8KB|3 GPIO|No|256KB|LDO|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~3.4V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC632N规格书/datasheet/AC6328A_Datasheet_V1.0.pdf)| |AC6328B|32bit@96MHz|64+8KB|2 GPIO|No|256KB|LDO|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP8](./datasheet/AC632N规格书/datasheet/AC6328B_Datasheet_V1.0.pdf)| |AC6329C|32bit@96MHz|64+8KB|8 GPIO|Yes(250mA)|256KB|LDO|Sleep@18uA<br>Systemoff@2uA<br>TX 0dBm@5mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[SOP16](./datasheet/AC632N规格书/datasheet/AC6329C_Datasheet_V1.0.pdf)| 638 Series Brief -------------- 详细的芯片规格书[datasheet](./datasheet/AC638N规格书/datasheet/AC638N_datasheet.pdf)和原理图,请参考[AC638规格书](./datasheet/AC638N规格书) |P/N|Core|RAM|I/O|内置充电|Flash|电源|功耗|工作电压|工作温度|蓝牙版本|蓝牙速率|应用场景|OTA|Package| |:-------:|:--------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| |AC6381A|32bit@160MHz|176KB|24 GPIO|Yes(200mA)|256KB|LDO/DCDC|Sleep@100uA<br>Systemoff@1uA<br>TX 0dBm@8mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QFN32](./datasheet/AC638N规格书/datasheet/AC6381A_Datasheet_V1.0.pdf)| |AC6385A|32bit@120MHz|176KB|20 GPIO|Yes(200mA)|256KB|LDO/DCDC|Sleep@100uA<br>Systemoff@1uA<br>TX 0dBm@8mA<br>RX@|1.8~5.5V|Min:-40°C<br>Max:85°C|SmartReady v5.0|1MbpsPHY <br> 2MbpsPHY <br> CodedPHY |蓝牙防丢/<br>Beacon/<br>蓝牙HID/<br>蓝牙透传<br>|Yes|[QSOP24](./datasheet/AC638N规格书/datasheet/AC6385A_Datasheet_V1.0.pdf)| 参考链接:https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/tree/master/doc # (欢迎各位小伙伴的讨论,大家遇到的功耗问题欢迎在下方评论,小编会定时合到文章里面)
评论 (
5
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
蓝牙BLE
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (2)
标签 (18)
master
feature/issue_attach
ac63_patch_release_20250224
ac63_bt_sdk_release_v2.4.0
ac63_bt_sdk_release_v2.3.0
ac63_bt_sdk_release_v2.2.1
ac63_bt_sdk_release_v2.1.0
ac63_bt_sdk_release_v2.0.0
ac63_bt_sdk_release_v1.0.0
ac63_bt_sdk_release_v0.9.2
ac63_bt_sdk_release_v0.9.1
ac63_bt_sdk_release_v0.9.0
ac63_bt_sdk_release_v0.8.0
ac63_bt_sdk_release_v0.7.1
ac63_bt_sdk_release_v0.7.0
ac63_bt_sdk_release_v0.6.0
ac63_bt_sdk_release_v0.5.0
ac63_bt_sdk_release_v0.4.0
ac63_bt_sdk_release_v0.3.0
ac63_bt_sdk_release_v0.2.0
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
C
1
https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK.git
git@gitee.com:Jieli-Tech/fw-AC63_BT_SDK.git
Jieli-Tech
fw-AC63_BT_SDK
fw-AC63_BT_SDK
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册