HS6621低功耗调试(HS6621CG)
文章目录
- HS6621CG低功耗调试
- 一、低功耗的模式选择、区别、运行顺序
- 1.低功耗模式选择
- 2.区别与运行流程(这里主要介绍快速休眠的运行流程)
- 二、进入低功耗
- 1.需要进入低功耗
- 2.通过sysdump()函数的串口打印信息进行调试
HS6621CG低功耗调试
低功耗蓝牙产品HS6621 ,本人项目中实际调试结果在5-7个uA左右
- 低功耗外设控制标志位
一、低功耗的模式选择、区别、运行顺序
1.低功耗模式选择
static void ble_stack_config(void)
{// Disable WDTwdt_enable(0);// Enable DCDCpmu_dcdc_enable(true);// Power down xtal32k in deep sleep modepmu_32k_enable_in_deep_sleep(true);// Select 32k clock for stack//pmu_xtal32k_change_param(15, 1);pmu_select_32k(PMU_32K_SEL_RC);// xtal32m parampmu_xtal32m_change_param(15);// ultra sleep mode enable //低功耗模式选择co_power_fast_sleep_mode_enable(true); //快速休眠//co_power_ultra_sleep_mode_enable(true); //深度休眠// Enable sleep, SWD will be closed.co_power_sleep_enable(true);
}
2.区别与运行流程(这里主要介绍快速休眠的运行流程)
1.进入低功耗唤醒后的启动方式不同|-->快速休眠唤醒后执行 power_sleep_event_handler();再去执行唤醒对应的函数,能够快速进行唤醒后的工作,执行对应的中断响应|-->深度睡眠唤醒后,相当于重启芯片,会去重新从 mian() 主函数开始重新配置全片2.运行顺序|-->进入低功耗后会进入 power_sleep_event_handler();进入 POWER_SLEEP_ENTRY|-->唤醒过程1. 进入 power_sleep_event_handler() 中的 POWER_SLEEP_LEAVE_TOP_HALF,这里可以进行一些需要的功能恢复,如UART串口2. 进入 power_sleep_event_handler() 中的 POWER_SLEEP_LEAVE_BOTTOM_HALF3. 如果是按键唤醒,又是双沿中断按键的话,程序先进入 wakeup_gpio_handler(); 再进入 gpio_handler();static void power_sleep_event_handler(co_power_sleep_state_t sleep_state, co_power_status_t power_status)
{switch(sleep_state) {case POWER_SLEEP_ENTRY:log_debug("s\n");break;case POWER_SLEEP_LEAVE_TOP_HALF:peripheral_restore(); //用于唤醒后的一些基础服务恢复,但是不建议在里面进行过多的操作//log_debug("m\n");break;case POWER_SLEEP_LEAVE_BOTTOM_HALF:log_debug("l\n");break;}
}
二、进入低功耗
- 芯片进入低功耗需要 IO 与配置状态保持一致,IO2、3、9在低功耗项目中最好不要使用,避免出现漏电
1.需要进入低功耗
调用以下函数进入低功耗
//按键进入低功耗
static void gpio_handler(uint32_t pin_mask)
{if(pin_mask & BIT_MASK(PIN_LOWPOWER)){pmu_lowpower_allow(PMU_LP_USER); //允许低功耗sysdump(); //打印系统状态,IO状态/** 这里进行一些IO状态的改变,需要符合配置的 IO 状态*/}
}
2.通过sysdump()函数的串口打印信息进行调试
观察芯片状态,当输出信息中的当前状态与要求状态显示一致时,表示成功进入低功耗模式
///例程进入低功耗模式
[PMU] prevent_status=00000000
[PMU] wakeup_pin=01000400(cur_level=01000400 sleep_level=01000400)
[PMU] pull_up=01000C50(cur_level=01000C50) pull_down=0000000C(cur_level=00000000) all_cur_level=0140FCF2
[PMU] clocking: CPU(32MHz) SRAM(FF) RTC(WDT) SF0 SF1 UART0 GPIO ANA///HS6621CG工程未进入低功耗模式
//V1.1
[PMU] prevent_status=00000001 //PMU_LP_TIM0阻止,对应的位置就在第一部分介绍的标志位
[PMU] wakeup_pin=00081C00(cur_level=00081C00 sleep_level=00081C00)
[PMU] pull_up=363FFE17(cur_level=363FFE13) pull_down=00800140(cur_level=00000000) all_cur_level=377FFEB3
[PMU] clocking: CPU(32MHz) SRAM(FF) RTC(WDT) SF0 SF1 TIMER0 UART0 UART1 GPIO
[LL] ADV interval=25ms txpwr=0dBm phy1=1Mbps phy2=1Mbps //[LL]属于广播开启//V1.2(上拉引脚有问题 )
[PMU] prevent_status=00000000
[PMU] wakeup_pin=00081C00(cur_level=00081C00 sleep_level=00081C00)
[PMU] pull_up=363FFE17(cur_level=363FFE13) pull_down=00800140(cur_level=00000000) all_cur_level=377FFEB3
[PMU] clocking: CPU(32MHz) SRAM(FF) RTC(WDT) SF0 SF1 TIMER0 UART0 UART1 GPIO
[LL] ADV interval=25ms txpwr=0dBm phy1=1Mbps phy2=1Mbps //[LL]属于广播开启//V1.3(未进入低功耗,低功耗回调函数未调用)
[PMU] prevent_status=00000000
[PMU] wakeup_pin=00081C00(cur_level=00081C00 sleep_level=00081C00)
[PMU] pull_up=363FFE13(cur_level=363FFE13) pull_down=00800144(cur_level=00000000) all_cur_level=377FFEB3
[PMU] clocking: CPU(32MHz) SRAM(FF) RTC(WDT) SF0 SF1 TIMER0 UART0 UART1 GPIO
[LL] ADV interval=25ms txpwr=0dBm phy1=1Mbps phy2=1Mbps //[LL]属于广播开启//V1.4
[PMU] prevent_status=00000000
[PMU] wakeup_pin=00081C40(cur_level=00081C00 sleep_level=00081C40) //Wake_Up_Pin 一直处于唤醒电平
[PMU] pull_up=363FFE13(cur_level=363FFE13) pull_down=00800144(cur_level=00000000) all_cur_level=377FFE93
[PMU] clocking: CPU(32MHz) SRAM(FF) RTC(WDT) SF0 SF1 TIMER0 UART0 UART1 GPIO ANA/* 解决分析 */
1.关闭广播
2.项目中用到的定时器Timer0要关闭
3.唤醒引脚配置为高电平唤醒时,IO引脚要配置为内部下拉,可以通过系统信息打印获取当前IO口状态
HS6621低功耗调试(HS6621CG)相关推荐
- HS6621CG低功耗调试开发资料
HS6621CG低功耗调试 低功耗蓝牙产品HS6621 ,实际调试结果在5-7个uA左右低功耗外设控制标志位
- STM32与LoRa低功耗调试总结
前言:物联网的大部分设备都是电池供电的,设备本身低功耗对设备使用寿命至关重要,今天就以实际调试经验,聊一聊stm32的低功耗调试. 1.stm32在运行状态下的功耗 上图截图自stm32l15x手册, ...
- STM8L低功耗调试总结
STM8L低功耗调试 资料准备 功耗数据目标 实现低功耗 资料准备 在调试STM单片机相关功能时,习惯性的进入到STM官方论坛进行资料下载.调试STM8功耗也不例外,找到STM8L的应用笔记,选择最热 ...
- PIC单片机低功耗调试心得
PIC单片机低功耗调试心得 因项目需求,需要长时间低功耗,在调试PIC16LF18系列单片机时,发现其低功耗设置的关键地方与STM32和STM8还是有很大区别的,特别整理出来记录如下 : 1.PIC单 ...
- 昂瑞威 HS6621 低功耗蓝牙芯片烧录调试
文章目录 HS6621C 系列 SDK 使用说明 一. 安装官方 SDK 二.JLINK 烧录过程: HS6621C 系列 SDK 使用说明 需要先安装Keil V5 一. 安装官方 SDK 双击'B ...
- 华大单片机HC32L072KATA低功耗调试笔记
硬件工程师做的测试自制最小系统,系统 供电3V 测试目标: 使用原厂的例程,修改GPIO配置后的代码 按键进入深度睡眠状态, 再次按键,唤醒,点亮LED灯2秒. 测试过程: 测试第一次发现,深度睡眠后 ...
- lis3dh低功耗调试笔记
最近在调试整机的低功耗,发现在单片机进入低功耗后,整体功耗在400多uA, 不带加速度计(我用的是SPI模式)的硬件版本低功耗为100uA. 两个硬件版本除了加速度计的区别,其他硬件电路都相同: 于是 ...
- stm32f103 低功耗调试笔记 低功耗模式下一直有个800多uA的电流
最新在做一个低功耗项目 ,用到stm32f103芯片,用到的stop模式和standby模式. 因 stop 只比 standby 模式多1-3uA,最终选用了 stop 模式.下面是官方文档中对几种 ...
- omap3530 linux串口驱动,omap3530(Cortex-A8)硬件平台软件调试笔记
内容简介:描述调试过程中所遇问题及其解决办法和过程,可作为新手的FAQ使用. 1. Issue: 不能从SD卡启动. Fixed: 自己疏忽造成,手册已经提到要先用"HP Disk Stor ...
最新文章
- springboot +element-axios跨域请求
- 二叉排序树(二叉搜索树,二叉查找树)
- crontab命令使用文档.txt
- javaweb学习总结(十)——HttpServletRequest对象(一)
- Fedora下网络配置及相关命令
- Windows进程与线程学习笔记(二)—— 线程结构体
- 【学术相关】考研初试成绩出来了,然后呢...选导师!
- Qt Creator指定构建设置
- 官方系统镜像烧写(windows下使用OTG)
- thinkphp5多级控制器是什么?怎么使用?
- 哈佛终身教授刘军:生活在一个统计学的时代
- Node.js 应用故障排查手册 —— 综合性 GC 问题和优化
- CentOS 7 安装EOS 并启动钱包
- Android申请相机权限
- linux允许8000端口,Linux中如何开启8080端口供外界访问 和开启允许对外访问的端口8000...
- 久违了,我的baby!
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目...
- 计算机睡眠打印机不可用设置,win7系统下打印机属性显示不可用如何解决
- php 美化js文件,js实现文件上传表单域美化特效_javascript技巧
- 信息无障碍 - 改造指南
热门文章
- 普中51-单核-A2单片机
- 横线从文字中间穿过的CSS效果属性和html标签
- 关于activitygroup过时,用frament替换操作
- html5云朵效果,纯CSS3打造逼真的多层云彩动画特效
- shader 反射 水面_【Unity Shader】模拟水面包含折射与反射与波浪动画
- 怎么打破直销的28定律
- HTML+CSS+JS大作业——汽车销售网站模板(7页) html网页设计期末大作业_网页设计平时作业模板下载
- conda国内源-持续更新
- jQuery插件之ajaxFileUpload上传文件或图片
- freebsd双线代理服务器架设