OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11033|回复: 7

求教如何实现nrf51822睡眠模式的软件应用?

[复制链接]

3

主题

11

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-12-29
在线时间
0 小时
发表于 2014-12-29 17:22:02 | 显示全部楼层 |阅读模式
5金钱
例程里边有两个库函数(sd_app_evt_wait();SVCALL(SD_POWER_SYSTEM_OFF, uint32_t, sd_power_system_off());)说是可以使芯片进入睡眠模式,外设如GPIO信号可以唤醒。函数我调用成功但是实际测试函数1会跑死程序,函数2直接跳过,并没有睡眠,小弟实在没办法,特来求教?哪位哥们实现过滴,请交流一下。不甚感激。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-12-29 23:48:13 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-12-29
在线时间
0 小时
 楼主| 发表于 2014-12-30 09:32:53 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>回复【2楼】正点原子:
<br>---------------------------------
<br>芯片原文,说是系统刚在关机模式下是最省电的睡眠,可以被GPIO的detect信号唤醒,原文如下:
<br>System&nbsp;OFF&nbsp;is&nbsp;the&nbsp;deepest&nbsp;power&nbsp;saving&nbsp;mode&nbsp;the&nbsp;system&nbsp;can&nbsp;enter.&nbsp;In&nbsp;this&nbsp;mode,&nbsp;the&nbsp;system’s&nbsp;core
<br>functionality&nbsp;is&nbsp;powered&nbsp;down&nbsp;and&nbsp;all&nbsp;ongoing&nbsp;tasks&nbsp;are&nbsp;terminated.&nbsp;The&nbsp;only&nbsp;mechanism&nbsp;that&nbsp;is&nbsp;functional
<br>and&nbsp;responsive&nbsp;in&nbsp;this&nbsp;mode&nbsp;is&nbsp;the&nbsp;reset&nbsp;mechanism.
<br>One&nbsp;or&nbsp;more&nbsp;blocks&nbsp;of&nbsp;the&nbsp;RAM&nbsp;can&nbsp;be&nbsp;retained&nbsp;in&nbsp;System&nbsp;OFF&nbsp;mode&nbsp;depending&nbsp;on&nbsp;the&nbsp;settings&nbsp;in&nbsp;the
<br>RAMON&nbsp;register.
<br>The&nbsp;system&nbsp;can&nbsp;be&nbsp;woken&nbsp;up&nbsp;from&nbsp;system&nbsp;OFF&nbsp;mode&nbsp;either&nbsp;from&nbsp;the&nbsp;DETECT&nbsp;signal&nbsp;generated&nbsp;by&nbsp;the&nbsp;GPIO
<br>peripheral,&nbsp;or&nbsp;from&nbsp;a&nbsp;reset.&nbsp;When&nbsp;the&nbsp;system&nbsp;wakes&nbsp;up&nbsp;from&nbsp;OFF&nbsp;mode,&nbsp;a&nbsp;system&nbsp;reset&nbsp;is&nbsp;performed.
<br>库函数SVCALL(SD_POWER_SYSTEM_OFF,&nbsp;uint32_t,&nbsp;sd_power_system_off());的函数说明是@brief&nbsputs&nbsp;the&nbsp;chip&nbsp;in&nbsp;System&nbsp;OFF&nbsp;mode.&nbsp;我用这个函数点灯基本确定CPU是睡下去了,但是GPIO中断没有唤醒起来。芯片GPIO有这样的话,如下:
<br>11.1.2&nbsp;System&nbsp;OFF&nbsp;mode
<br>System&nbsp;OFF&nbsp;is&nbsp;the&nbsp;deepest&nbsp;power&nbsp;saving&nbsp;mode&nbsp;the&nbsp;system&nbsp;can&nbsp;enter.&nbsp;In&nbsp;this&nbsp;mode,&nbsp;the&nbsp;system’s&nbsp;core
<br>functionality&nbsp;is&nbsp;powered&nbsp;down&nbsp;and&nbsp;all&nbsp;ongoing&nbsp;tasks&nbsp;are&nbsp;terminated.&nbsp;The&nbsp;only&nbsp;mechanism&nbsp;that&nbsp;is&nbsp;functional
<br>and&nbsp;responsive&nbsp;in&nbsp;this&nbsp;mode&nbsp;is&nbsp;the&nbsp;reset&nbsp;mechanism.
<br>One&nbsp;or&nbsp;more&nbsp;blocks&nbsp;of&nbsp;the&nbsp;RAM&nbsp;can&nbsp;be&nbsp;retained&nbsp;in&nbsp;System&nbsp;OFF&nbsp;mode&nbsp;depending&nbsp;on&nbsp;the&nbsp;settings&nbsp;in&nbsp;the
<br>RAMON&nbsp;register.
<br>The&nbsp;system&nbsp;can&nbsp;be&nbsp;woken&nbsp;up&nbsp;from&nbsp;system&nbsp;OFF&nbsp;mode&nbsp;either&nbsp;from&nbsp;the&nbsp;DETECT&nbsp;signal&nbsp;generated&nbsp;by&nbsp;the&nbsp;GPIO
<br>peripheral,&nbsp;or&nbsp;from&nbsp;a&nbsp;reset.&nbsp;When&nbsp;the&nbsp;system&nbsp;wakes&nbsp;up&nbsp;from&nbsp;OFF&nbsp;mode,&nbsp;a&nbsp;system&nbsp;reset&nbsp;is&nbsp;performed.
<br>我个人觉得,detect信号就是一个高低电平,GPIO原文也说这个DETECT信号可以将CPU从睡眠模式唤醒,但是实际却还是没有唤醒。希望有搞这一块的帮一起看看。谢谢哈
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-12-29
在线时间
0 小时
 楼主| 发表于 2014-12-30 09:40:08 | 显示全部楼层
晕,关于上面GPIO DETECT的说明贴错了,更正如下:<br />
Pins can be individually configured, through the pin sense mechanism, to detect either a high level or a low<br />
level on their input. When the correct level is detected, the sense mechanism raises the DETECT signal line,<br />
which can then be read by other peripherals in the system, see Figure 15. This mechanism is functional in<br />
both ON and OFF mode.<br />
The input buffer of a GPIO pin can be disconnected from the pin to enable power savings when the pin is<br />
not used as an input, see Figure 15. Inputs must be connected in order to get a valid input value in the IN<br />
register and for the sense mechanism to get access to the pin.<br />
Other peripherals in the system can attach themselves to GPIO pins and override their output value and<br />
configuration, or read their analog or digital input value, see Figure 15.<br />
Selected PINs also support analog input signals, see ANAIN in Figure 15 on page 55. Pins that support analog<br />
input signals vary between devices, see the product specification for your device for more details.<br />
Pin direction can be configured both in the DIR register as well as through the individual PIN_CNF[n]<br />
registers. A change in one register will automatically be reflected in the other register.<br />
回复

使用道具 举报

4

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2014-3-10
在线时间
28 小时
发表于 2015-1-29 16:11:51 | 显示全部楼层
回复【3楼】bc_xunlian:
<br>---------------------------------
<br>sd_app_evt_wait();怎么会跑死呢,最后死在哪呢?_power_system_off();这个怎么跳过呢?执行这个相当于关机了。
菜鸟也会成为老鸟
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-12-29
在线时间
0 小时
 楼主| 发表于 2015-2-3 11:09:18 | 显示全部楼层
回复【5楼】xuyuhaoa:
<br>---------------------------------
<br>这个我当时理解错误了。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-5-11
在线时间
0 小时
发表于 2015-5-11 17:58:25 | 显示全部楼层
请问这个例程哪里有
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-5-11
在线时间
0 小时
发表于 2015-5-13 15:43:19 | 显示全部楼层
你好,请问你的低功耗可以了吗
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 13:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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