文章目录

  • 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)相关推荐

  1. HS6621CG低功耗调试开发资料

    ​HS6621CG低功耗调试 低功耗蓝牙产品HS6621 ,实际调试结果在5-7个uA左右低功耗外设控制标志位

  2. STM32与LoRa低功耗调试总结

    前言:物联网的大部分设备都是电池供电的,设备本身低功耗对设备使用寿命至关重要,今天就以实际调试经验,聊一聊stm32的低功耗调试. 1.stm32在运行状态下的功耗 上图截图自stm32l15x手册, ...

  3. STM8L低功耗调试总结

    STM8L低功耗调试 资料准备 功耗数据目标 实现低功耗 资料准备 在调试STM单片机相关功能时,习惯性的进入到STM官方论坛进行资料下载.调试STM8功耗也不例外,找到STM8L的应用笔记,选择最热 ...

  4. PIC单片机低功耗调试心得

    PIC单片机低功耗调试心得 因项目需求,需要长时间低功耗,在调试PIC16LF18系列单片机时,发现其低功耗设置的关键地方与STM32和STM8还是有很大区别的,特别整理出来记录如下 : 1.PIC单 ...

  5. 昂瑞威 HS6621 低功耗蓝牙芯片烧录调试

    文章目录 HS6621C 系列 SDK 使用说明 一. 安装官方 SDK 二.JLINK 烧录过程: HS6621C 系列 SDK 使用说明 需要先安装Keil V5 一. 安装官方 SDK 双击'B ...

  6. 华大单片机HC32L072KATA低功耗调试笔记

    硬件工程师做的测试自制最小系统,系统 供电3V 测试目标: 使用原厂的例程,修改GPIO配置后的代码 按键进入深度睡眠状态, 再次按键,唤醒,点亮LED灯2秒. 测试过程: 测试第一次发现,深度睡眠后 ...

  7. lis3dh低功耗调试笔记

    最近在调试整机的低功耗,发现在单片机进入低功耗后,整体功耗在400多uA, 不带加速度计(我用的是SPI模式)的硬件版本低功耗为100uA. 两个硬件版本除了加速度计的区别,其他硬件电路都相同: 于是 ...

  8. stm32f103 低功耗调试笔记 低功耗模式下一直有个800多uA的电流

    最新在做一个低功耗项目 ,用到stm32f103芯片,用到的stop模式和standby模式. 因 stop 只比 standby 模式多1-3uA,最终选用了 stop 模式.下面是官方文档中对几种 ...

  9. omap3530 linux串口驱动,omap3530(Cortex-A8)硬件平台软件调试笔记

    内容简介:描述调试过程中所遇问题及其解决办法和过程,可作为新手的FAQ使用. 1. Issue: 不能从SD卡启动. Fixed: 自己疏忽造成,手册已经提到要先用"HP Disk Stor ...

最新文章

  1. springboot +element-axios跨域请求
  2. 二叉排序树(二叉搜索树,二叉查找树)
  3. crontab命令使用文档.txt
  4. javaweb学习总结(十)——HttpServletRequest对象(一)
  5. Fedora下网络配置及相关命令
  6. Windows进程与线程学习笔记(二)—— 线程结构体
  7. 【学术相关】考研初试成绩出来了,然后呢...选导师!
  8. Qt Creator指定构建设置
  9. 官方系统镜像烧写(windows下使用OTG)
  10. thinkphp5多级控制器是什么?怎么使用?
  11. 哈佛终身教授刘军:生活在一个统计学的时代
  12. Node.js 应用故障排查手册 —— 综合性 GC 问题和优化
  13. CentOS 7 安装EOS 并启动钱包
  14. Android申请相机权限
  15. linux允许8000端口,Linux中如何开启8080端口供外界访问 和开启允许对外访问的端口8000...
  16. 久违了,我的baby!
  17. Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目...
  18. 计算机睡眠打印机不可用设置,win7系统下打印机属性显示不可用如何解决
  19. php 美化js文件,js实现文件上传表单域美化特效_javascript技巧
  20. 信息无障碍 - 改造指南

热门文章

  1. 普中51-单核-A2单片机
  2. 横线从文字中间穿过的CSS效果属性和html标签
  3. 关于activitygroup过时,用frament替换操作
  4. html5云朵效果,纯CSS3打造逼真的多层云彩动画特效
  5. shader 反射 水面_【Unity Shader】模拟水面包含折射与反射与波浪动画
  6. 怎么打破直销的28定律
  7. HTML+CSS+JS大作业——汽车销售网站模板(7页) html网页设计期末大作业_网页设计平时作业模板下载
  8. conda国内源-持续更新
  9. jQuery插件之ajaxFileUpload上传文件或图片
  10. freebsd双线代理服务器架设