nRF52832开发记录----低功耗休眠

本文介绍Nordicnrf52832的两种电源管理模式:SystemOFF和SystemON。SystemOFF模式下,设备进入深度休眠状态,仅通过特定信号唤醒;SystemON模式下,可在保持部分外设运行的同时关闭CPU,通过中断唤醒。

Nordic nrf52832的电源管理有两种模式: System OFF 、System ON

System OFF

在此处模式下会进入深度休眠状态,cpu和外设将全部关闭,将功耗降至最低.

休眠

功耗会非常低:只有零点几微安
将所有使用的外设关闭后调用sd_power_system_off()将进入System OFF状态
在没有协议栈时调用 NRF_POWER->SYSTEMOFF = 0x1; 进入System OFF状态

唤醒

System OFF模式只能被IO口唤醒

    1. The DETECT signal, optionally generated by the GPIO peripheral
    1. The ANADETECT signal, optionally generated by the LPCOMP module
    1. The SENSE signal, optionally generated by the NFC module to “wake-on-field”
    1. A reset

System ON

芯片上电后默认是System ON 模式
此模式下可以关闭CPU而让外设继续保持工作

休眠

在此模式下,系统电流只有1.2uA左右
有协议栈时,调用 sd_power_system_off() 进入此System ON状态
无协议栈时,调用:

__WFE();
// Clear the internal event register.
__SEV();
__WFE();

唤醒

在此模式下可以被任何中断唤醒

以下是生成NRF52832低功耗休眠中断唤醒代码的步骤: 1. 首先,在Nordic官方网站下载并安装nRF5 SDK(软件开发工具包)。该SDK包括了Nordic的低功耗无线芯片系列(包括NRF52832)的驱动程序、例程和文档等。 2. 在nRF5 SDK中选择合适的例程(如ble_app_uart)进行修改。可以使用Nordic提供的nRF Connect工具将该例程烧录到NRF52832芯片上进行测试。 3. 在代码中加入低功耗休眠中断唤醒相关的代码,如下所示: ```c // 初始化GPIO中断 nrf_gpio_cfg_input(GPIO_PIN, NRF_GPIO_PIN_PULLUP); nrf_gpio_cfg_sense_input(GPIO_PIN, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW); // 初始化中断 NVIC_ClearPendingIRQ(GPIOTE_IRQn); NVIC_SetPriority(GPIOTE_IRQn, 0); NVIC_EnableIRQ(GPIOTE_IRQn); // 进入低功耗休眠模式 __WFE(); __SEV(); __WFE(); ``` 其中,GPIO_PIN为需要监听的GPIO引脚号,GPIOTE_IRQn为GPIO中断向量号。 4. 在中断处理函数中加入唤醒代码,如下所示: ```c void GPIOTE_IRQHandler(void) { if (nrf_gpiote_event_is_set(NRF_GPIOTE_EVENTS_IN_0)) { nrf_gpiote_event_clear(NRF_GPIOTE_EVENTS_IN_0); // 唤醒代码 } } ``` 其中,NRF_GPIOTE_EVENTS_IN_0为GPIO中断事件号。 5. 在main函数中调用低功耗休眠函数,如下所示: ```c while (true) { // 进入低功耗休眠模式 __WFE(); __SEV(); __WFE(); } ``` 至此,NRF52832低功耗休眠中断唤醒代码的生成完成。需要注意的是,在实际应用中,需要根据具体的需求进行修改和优化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值