5.深度睡眠的配置

按照下面的步骤配置DA14531设备到深度睡眠模式。

  1. 从以下方式打开Proximity Reporter项目:...项目/ target_apps / ble_examples / prox_reporter / keil_5
  2. 打开文件user_proxr.h在user_app文件夹下。
  3. 定义CFG_APP_GOTO_DEEP_SLEEP选择广告完成后设备进入的睡眠模式。
#定义CFG_APP_GOTO_DEEP_SLEEP
  1. 通过以下步骤选择触发机制从深度睡眠模式中唤醒,
#f定义(cfg_app_goto_deep_sleep)/ ****************************************************************************************睡眠模式唤醒-向上睡眠配置选择触发机制唤醒向上睡眠-CFG_DEEP_SLEEP_WAKEUP_POR-唤醒向上运动别针-CFG_DEEP_SLEEP_WAKEUP_GPIO-唤醒向上唤醒控制器-CFG_DEEP_SLEEP_WAKEUP_RTC-唤醒向上清债信托公司计时器只要DA14531-CFG_DEEP_SLEEP_WAKEUP_TIMER1-唤醒向上Timer1只要DA14531笔记一个硬件重置或者权力周期将要总是唤醒向上系统睡眠****************************************************************************************/# undef CFG_DEEP_SLEEP_WAKEUP_POR#define cfg_deep_sleep_wakeup_gpio.
  1. 在同一文件中,配置要保留的保留RAM内存。要关闭任何RAM块,请使用PD_SYS_DOWN_RAM_OFF和PD_SYS_DOWN_RAM_ON保留。当禁用所有RAM块,代码应该在Flash或OTP。禁用RAM块将降低睡眠电流,但它将增加叫醒所需的能量。
/ ****************************************************************************************睡眠模式配置****************************************************************************************/#定义CFG_DEEP_SLEEP_RAM1 PD_SYS_DOWN_RAM_OFF#定义CFG_DEEP_SLEEP_RAM2 PD_SYS_DOWN_RAM_OFF#定义CFG_DEEP_SLEEP_RAM3 PD_SYS_DOWN_RAM_OFF#定义CFG_DEEP_SLEEP_PAD_LATCH_EN假
  1. 在文件中user_proxr.c通过选择cfg_deep_sleep_wakeup_gpio,选择gpio port_pin以通过在文件中执行此操作,从深睡眠中唤醒设备,
#如果定义(CFG_DEEP_SLEEP_WAKEUP_GPIO)wkupct_enable_irqwkupct_pin_select.GPIO_BUTTON_PORTGPIO_BUTTON_PIN),//选择别针WKUPCT_PIN_POLARITYGPIO_BUTTON_PORTGPIO_BUTTON_PINWKUPCT_PIN_POLARITY_LOW),//极性1//1事件0);//消除抖动时间0# endif
  1. 在里面user_periph_setup.h.,配置GPIO_BUTTON_PORT和GPIO_BUTTON_PIN,就像我们配置P0_5以从深度睡眠中唤醒设备一样,
/****************************************************************************************// *按钮配置*//****************************************************************************************/#如果定义(__DA14531__)#定义GPIO_BUTTON_PORT GPIO_PORT_0#定义GPIO_BUTTON_PIN GPIO_PIN_5#别的
  1. 要使用Power on Reset (POR)唤醒,定义CFG_DEEP_SLEEP_WAKEUP_POR并取消唤醒机制的其余部分。使用主板上的SW1/Reset按钮唤醒设备。
#定义CFG_DEEP_SLEEP_WAKEUP_POR
  1. 要使用RTC (Real Time Clock)计时器唤醒,定义CFG_DEEP_SLEEP_WAKEUP_RTC并取消唤醒机制的其余部分。
#如果定义(__DA14531__)#定义CFG_DEEP_SLEEP_WAKEUP_RTC# undef CFG_DEEP_SLEEP_WAKEUP_TIMER1# endif

通过定义这个,RTC被配置为在10秒后产生一个中断。这会将设备从深度睡眠模式中唤醒。中断时间可以通过修改alarm_time来修改。证交会在函数configure_rtc_wakeupuser_proxr.c如下所示,

alarm_time证券交易委员会+ =10
  1. 要使用Timer1唤醒,请定义CFG_DEEP_SLEEP_WAKEUP_TIMER1并拒绝唤醒机制的其余机制。
#如果定义(__DA14531__)# undef CFG_DEEP_SLEEP_WAKEUP_RTC#定义CFG_DEEP_SLEEP_WAKEUP_TIMER1# endif
  1. 保存并编译(F7)该项目
  2. 打开我们的SmartSnippets工具箱并单击Power Profiler(可从我们的门户获得雷竞技电竞平台Dialog Semiconductor支持门户),观察BLE事件和深度睡眠。

5.1.测量深度睡眠电流

为了通过数字万用表测量深度睡眠电流,在邻近记者项目下增加广告间隔user_config.h。遵循以下步骤:

  1. 打开文件user_config.h它位于User_Config文件夹下。

2.通过将.adv_scenario配置为DEF_ADV_WITH_TIMEOUT,并将超时值修改为3s,来更改缺省处理程序配置,例如,.advertise_period = MS_TO_TIMERUNITS(18000),如下所示。代码:

/ *****************************************************************************************默认的处理程序配置适用于只要@app_default_handlersc*****************************************************************************************/静态常量结构体default_handlers_configuration.user_default_hnd_conf//配置做广告操作使用通过默认的处理程序//可能的价值//-DEF_ADV_FOREVER//-DEF_ADV_WITH_TIMEOUTadv_scenarioDEF_ADV_FOREVER//广告永远//配置做广告情况下DEF_ADV_WITH_TIMEOUT//测量计时器单位使用ms_to_timerunits.转换//毫秒小姐计时器单位advertise_periodms_to_timerunits.3000),//3.年代//配置安全开始操作默认的处理程序//如果安全启用CFG_APP_SECURITY//可能的价值//-DEF_SEC_REQ_NEVER//-DEF_SEC_REQ_ON_CONNECTsecurity_request_scenarioDEF_SEC_REQ_NEVER};

这将将广告周期配置为3 s之后设备将进入深度睡眠模式。该设备可以通过编程唤醒的触发机制从深度睡眠模式中唤醒,如上一节所述。

  1. 保存并编译项目
  2. 按照步骤这里在第12章OTP程序员或第13章SPI Flash程序员编程的设备要么在Flash或OTP,然后从那里引导。
  1. 使用数字万用表,将万用表的正极连接到主板的J9[4],负极连接到主板的J9[3],如下图所示。
_images / extsleep.png

图9深度睡眠能力测量

  1. 观察仪表显示的深度睡眠电流值。下面提到了典型的数字,其中IBAT_LOW值用于Boost模式,而IBAT_HIGH值用于Buck模式。
_images / deepsleepdata.png.

图10深度睡眠的能量数字在buck和boost模式

  1. 要更改为Boost模式,请使用子板上的开关并将其放到L.在主板上,将跳线放在J4 [1-2]上,如睡眠模式概述章节所示。
  2. 重复1到6的步骤