OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 9304|回复: 18

nRF51822低功耗CPU睡眠软件应用

[复制链接]

  离线 

3

主题

11

帖子

0

精华

新手上路

Rank: 1

积分
43
金钱
43
注册时间
2014-12-29
在线时间
0 小时
发表于 2015-1-9 10:55:52 | 显示全部楼层 |阅读模式
正点原子公众号
下面是本人调试通过的nRF51822低功耗睡眠的软件应用,当执行NRF_POWER->SYSTEMOFF = 1;CPU将停止运行,保留外设参数,本人实测睡眠模式下电路电流消耗10微安,当被GPIO的DETECT信号唤醒后,复位,软件从main函数开始执行。whilie(1)下CPU消耗18毫安电流。不废话了,上实例代码,若有不明,欢迎加企鹅2749746043讨论。

/*****************************************************/
#include <stdbool.h>
#include <stdint.h>
#include "nrf.h"
#include "nrf_gpio.h"
#include "boards.h"

#define KeyPressFlag 0

int main(void)
{
    
    nrf_gpio_cfg_input(key_0, NRF_GPIO_PIN_NOPULL);// 配置按键BUTTON_0为输入
    
    // 配置BUTTON_1管脚为DETECT信号输出,该句很重要,是CPU被GPIO唤醒的必要条件
    nrf_gpio_cfg_sense_input(key_1, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW); 
 
    nrf_gpio_range_cfg_output(LED_START, LED_STOP);//配置LED指示灯管脚为输出

    nrf_gpio_pin_set(LED_0); //点亮LED灯

    // 睡眠保留RAM的参数
    NRF_POWER->RAMON = POWER_RAMON_ONRAM0_RAM0On   << POWER_RAMON_ONRAM0_Pos
                     | POWER_RAMON_ONRAM1_RAM1On   << POWER_RAMON_ONRAM1_Pos
                     | POWER_RAMON_OFFRAM0_RAM0Off << POWER_RAMON_OFFRAM0_Pos
                     | POWER_RAMON_OFFRAM1_RAM1Off << POWER_RAMON_OFFRAM1_Pos;
    
    while(1)
    {     
        // 如果BUTTON0 被按下,则熄灭LED灯让CPU进入睡眠
        if(nrf_gpio_pin_read(key_0) == KeyPressFlag)
        {
            nrf_gpio_pin_clear(LED_0);

            //CPU进入睡眠模式,若有GPIO的DETECT信号唤,则CPU被唤醒而后复位从main函数开始执行。
            NRF_POWER->SYSTEMOFF = 1;
        }
    }
}
回复

使用道具 举报

  离线 

485

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
120530
金钱
120530
注册时间
2010-12-1
在线时间
965 小时
发表于 2015-1-9 23:37:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

  离线 

50

主题

352

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1221
金钱
1221
注册时间
2012-8-28
在线时间
11 小时
发表于 2015-1-11 14:22:18 | 显示全部楼层
写的不错。楼主有试过和nrf24l01应答通讯没?
QQ750273008有好的资料记得发给我哦。。。
回复 支持 反对

使用道具 举报

  离线 

3

主题

11

帖子

0

精华

新手上路

Rank: 1

积分
43
金钱
43
注册时间
2014-12-29
在线时间
0 小时
 楼主| 发表于 2015-1-13 11:14:19 | 显示全部楼层
没有呢,感觉这种通信在产品开发上没啥实际有效的意义吧。
回复 支持 反对

使用道具 举报

  离线 

4

主题

7

帖子

0

精华

新手上路

Rank: 1

积分
45
金钱
45
注册时间
2013-2-17
在线时间
3 小时
发表于 2015-1-17 16:09:34 | 显示全部楼层
请问系统的电源供电是什么方案?
回复 支持 反对

使用道具 举报

  离线 

3

主题

11

帖子

0

精华

新手上路

Rank: 1

积分
43
金钱
43
注册时间
2014-12-29
在线时间
0 小时
 楼主| 发表于 2015-1-19 17:44:49 | 显示全部楼层
我是用1.5V干电池升压供电,片子是TI的TPS61097,电源转换效率95%,静态电流5uA,关断电流5nA。
回复 支持 反对

使用道具 举报

  离线 

13

主题

489

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2012-8-4
在线时间
222 小时
发表于 2015-1-19 18:02:58 | 显示全部楼层
回复【6楼】bc_xunlian:
---------------------------------
用3V的电池 外型也大不了多小,干嘛用1.5V的?
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复 支持 反对

使用道具 举报

  离线 

3

主题

11

帖子

0

精华

新手上路

Rank: 1

积分
43
金钱
43
注册时间
2014-12-29
在线时间
0 小时
 楼主| 发表于 2015-1-21 10:12:48 | 显示全部楼层
1.5V的电池比较普及嘛。。。用户使用的时候,即便是在小卖部都可以买得到呀,一句话,方便。
回复 支持 反对

使用道具 举报

  离线 

13

主题

489

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2012-8-4
在线时间
222 小时
发表于 2015-1-21 10:38:02 | 显示全部楼层
容量差不多的,ag和cr大小也差不多了
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复 支持 反对

使用道具 举报

  离线 

13

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2013-11-18
在线时间
0 小时
发表于 2015-3-26 17:28:26 | 显示全部楼层
楼主,我用了上面你的配置,但是功耗却是4mA...
回复 支持 反对

使用道具 举报

  离线 

13

主题

489

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2012-8-4
在线时间
222 小时
发表于 2015-3-26 18:44:54 | 显示全部楼层
回复【10楼】fan123:
---------------------------------
你单位写错了吧 4ua吧
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手上路

Rank: 1

积分
21
金钱
21
注册时间
2015-5-6
在线时间
0 小时
发表于 2015-5-6 11:09:36 | 显示全部楼层
回复【11楼】muniao:
---------------------------------回复【10楼】fan123:
---------------------------------
请问功耗却是4mA...是怎么测量出来的?
回复 支持 反对

使用道具 举报

  离线 

0

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-6-25
在线时间
0 小时
发表于 2015-6-25 17:20:35 | 显示全部楼层
代理NORDIC蓝牙4.0芯片NRF51822
联系人:刘工
QQ:1330504646
手机:13714153746
NRF51822是一款为超低功耗无线应用(ULP wirelesss applications)打造的多协议单芯片解决方案。
它整合了Nordic一流的无线传送器,同时支持Bluetooth(R) low energy 和专用的2.4GHz协议栈。
基本情况是:
2.4GHZ多协议无线射频
32位ARM Cortex M0 处理器
128位AES硬件加密处理器
256kB flash / 16kB RAM
可编程外设接口PPI
全功能数字接口: SPI / I2C / UART
10位ADC
可编程的输出功率: +4dBm to -20dBm
应用开发和协议堆栈完全独立
与NRF24L系列完全兼容
与NRF51xxx系列管脚兼容
全局独立电源管理
工作电压范围(1.8 V ~ 3.6 V)
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
23
金钱
23
注册时间
2015-7-20
在线时间
0 小时
发表于 2015-7-20 13:53:33 | 显示全部楼层
回复【11楼】muniao:
---------------------------------
sd_power_system_off()之后,除了外部IO(含重新上电)唤醒外,可以由单片机自己定期唤醒么?
回复 支持 反对

使用道具 举报

  离线 

0

主题

2

帖子

0

精华

新手上路

Rank: 1

积分
22
金钱
22
注册时间
2015-9-21
在线时间
0 小时
发表于 2015-9-23 21:44:34 | 显示全部楼层
楼主有没有用软件唤醒过啊
回复 支持 反对

使用道具 举报

  离线 

12

主题

118

帖子

0

精华

高级会员

Rank: 4

积分
566
金钱
566
注册时间
2013-8-27
在线时间
195 小时
发表于 2017-4-14 13:15:26 | 显示全部楼层
fan123 发表于 2015-3-26 17:28
楼主,我用了上面你的配置,但是功耗却是4mA...

我也测出nrf51822的省电睡眠模式的功耗是4mA,请你后来解决了了吗?
回复 支持 反对

使用道具 举报

  离线 

34

主题

1198

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1529
金钱
1529
注册时间
2012-6-15
在线时间
10 小时
发表于 2017-6-19 10:23:04 | 显示全部楼层
潜龙探渊 发表于 2017-4-14 13:15
我也测出nrf51822的省电睡眠模式的功耗是4mA,请你后来解决了了吗?

4mA  的话 估计你是JTAG没拔下来

我现在有个问题, 按键按下去休眠了, 可是抬起来又唤醒了。 我延时之后再休眠,它就直接重启了。 这个难道不是边沿触发唤醒而是电平高低?
回复 支持 反对

使用道具 举报

  离线 

34

主题

1198

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1529
金钱
1529
注册时间
2012-6-15
在线时间
10 小时
发表于 2017-6-19 10:23:10 | 显示全部楼层
我现在有个问题, 按键按下去休眠了, 可是抬起来又唤醒了。 我延时之后再休眠,它就直接重启了。 这个难道不是边沿触发唤醒而是电平高低?
回复 支持 反对

使用道具 举报

  离线 

7

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2015-11-26
在线时间
27 小时
发表于 2017-12-22 22:52:10 | 显示全部楼层
不知道还有没有人看到,请问这个设置唤醒后ARM不丢失是怎么实现的还需要配置什么?我用楼主的代码实现了唤醒,但是ARM还是丢失的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-1-22 08:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */