6265|16

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教关于PXA270唤醒源的设置 [复制链接]

专家好:
   我的PDA前两天在公司测试部门发现,按键进入深度休眠后,不能马上按键唤醒,只有等5~6秒(大约值)后才能马上唤醒

我的按键休眠是设置的GPIO0,唤醒源也是GPIO0

具体的设置如下:                pSlpParams->PWER  = 0x01u; // PMGR_PWER_DFLT;  // Wake for RTC alarm or GPIO0
                        pSlpParams->PRER  =   1u;// PMGR_PRER_DFLT;   上升沿唤醒
                        pSlpParams->PFER  =   1u;// PMGR_PFER_DFLT;   下降沿
                        pSlpParams->PKWR  =   0u; // PMGR_PKWR_DFLT;   高电平唤醒
                             (由于硬件人员设计的按键后GPIO0读到是低电平所以不能用这个寄存器设置唤醒)

我看打印信息,当按键休眠后0~5秒(大约)内其实已经休眠了,在OEMPowerOff中打印的信息已经显示了。

但是这段时间内(0~5S内)(即按键深度休眠后马上按键唤醒)按唤醒键没有任何反应

我想问的是这样是不是正确的,或者是PXA270的特性就是这样

还是我哪设置的不对

最新回复

1、请问唤醒的地方在哪里啊??   感觉只是设置一下唤醒源,至于怎么唤醒应该是CPU内部中断检测到唤醒源的状态自己做的唤醒工作   这个过程是可见的吗?? 唤醒后CPU从0地址开始运行,整个过程可以跟踪 2、通过这个寄存器PKWR设置唤醒源是不是比通过下降沿更准确些? 没看懂你的问题,设唤醒源还哪来的准确不准确的 3、就是上面的问题:唤醒前是否还需要做一个消抖 唤醒没有办法做消抖的处理吧   详情 回复 发表于 2009-2-23 09:18
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
OEMPowerOff中打印的信息不代表已经进入休眠。最好用示波器量量信号看看。
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
270CPU进入休眠的一个重要标志就是PWR_EN信号变为低,不过一般情况下跑到OEMPOWEROFF后会马上进入SLEEP状态,除非有主动的延时
1、一个是你的设置改为下降沿唤醒就可以,而且建议只用下降沿唤醒,软件上把上升沿唤醒去掉,硬件设计上最好不用上升沿唤醒,不然会产生漏电的问题
2、至于为什么0-5秒内没有反应,一个是让硬件去测量GPIO0的信号,看在这时间段内按下后有没有正常的下降沿产生
再一个检查是不是CPU已经起来了,但回来的过程比较长,那可能是驱动的问题

正常的情况是只要CPU进入了Sleep模式,有唤醒的信号应该是马上被唤醒,不会有多少时间的等待的
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
在进入OEMPOWEROFF后,打印信息之后,进入SLEEP状态前真的有段延时:
         NKDbgPrintfW(TEXT("OEMPowerOff\r\n"));
       
        msWait(2000);
       
        XllpPmEnterSleep (pPmgrSleepParams);

不知道这是不是必须的。

另外您说的“那可能是驱动的问题 ”请问这个“驱动”是只什么驱动呢

我以为唤醒只是CPU内部的一个自己定义的中断,只要我们设置了GPIO0为唤醒源,那么其他我不用管,只要当GPIO0满足唤醒条件,就会唤醒SLEEP状态。

 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
唤醒?如何实现2440 重启的呢?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 wangxin_801115 的回复:
在进入OEMPOWEROFF后,打印信息之后,进入SLEEP状态前真的有段延时:
NKDbgPrintfW(TEXT("OEMPowerOff\r\n"));

msWait(2000);

XllpPmEnterSleep (pPmgrSleepParams);

不知道这是不是必须的。

另外您说的“那可能是驱动的问题 ”请问这个“驱动”是只什么驱动呢

我以为唤醒只是CPU内部的一个自己定义的中断,只要我们设置了GPIO0为唤醒源,那么其他我不用管,只要当GPIO0满足唤醒条件,就会唤醒SLEEP状态。




这个延时不是必须的吧,lz把它拿掉试试就知道了。


另外,唤醒慢的问题建议lz把驱动中所有的XXX_powerUp()函数中打上trace跟踪一下,很有可能是驱动唤醒的时候在这个函数中阻塞了。唤醒cpu不仅仅是设置一个gpio唤醒源这么简单,这是一个系统工程,设计的问题很多,lz要好好研究一下。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 
解决了
就是:msWait(2000);
我把它设置成msWait(1); 居然会出现类似键盘抖动现象
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 wangxin_801115 的回复:
解决了
就是:msWait(2000);
我把它设置成msWait(1); 居然会出现类似键盘抖动现象



键盘抖动现象??是什么现象??
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
Power键的防抖应该在驱动里面去做,按下收到中断后过100ms再判断一下键是否处于按下状态,如果是再让系统进休眠状态
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
让硬件滤掉抖动。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

11
 
类似键盘抖动就是
当我设置成

长按休眠键 进入休眠状态 有时候键盘弹起CPU就被唤醒了

传进500毫秒就可以了
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

12
 
那个等待2秒,不是为了去抖动,而是为了显示信息能正确输出,不然串口信息还没正确输出完,cpu就休眠了,信息就不全了。去掉不会影响系统状态。

270的“深度休眠”是看PWR_EN和SYS_EN的,都为低才算是进入了。不过你们将深度睡眠的唤醒路径也改了吗?

判断是否进入的最好方法是看这两个信号,以及整机电流。同样,判断是否唤醒的也是看这两个信号和整机电流。而不能看串口信息或者屏是否亮。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

13
 
键盘去抖不应该在这里做,而是在接收到按键的下降沿开始的时候就做。只有确认了不是抖动,才会接着进入系统睡眠流程。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
shuiyan大侠:
“不过你们将深度睡眠的唤醒路径也改了吗? ”请问这句话怎么理解??

“键盘去抖不应该在这里做,而是在接收到按键的下降沿开始的时候就做。只有确认了不是抖动,才会接着进入系统睡眠流程。”

哦,是这样啊,可能是我们的键盘没做消抖,因为现在只要是msWait(1)就会出现我说的现象
那么睡眠后,唤醒前是否还需要做一个消抖??
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

15
 
还想问一下:
1、请问唤醒的地方在哪里啊??

   感觉只是设置一下唤醒源,至于怎么唤醒应该是CPU内部中断检测到唤醒源的状态自己做的唤醒工作

   这个过程是可见的吗??

2、通过这个寄存器PKWR设置唤醒源是不是比通过下降沿更准确些?

3、就是上面的问题:唤醒前是否还需要做一个消抖

4、“不过你们将深度睡眠的唤醒路径也改了吗? ”请问这句话怎么理解??

谢谢啦!!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

16
 
解决了
就是:msWait(2000);
我把它设置成msWait(1); 居然会出现类似键盘抖动现象

_____________串口信息输出要10ms以上,你弄成1ms会有问题了
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

17
 
1、请问唤醒的地方在哪里啊??

  感觉只是设置一下唤醒源,至于怎么唤醒应该是CPU内部中断检测到唤醒源的状态自己做的唤醒工作

  这个过程是可见的吗??

唤醒后CPU从0地址开始运行,整个过程可以跟踪


2、通过这个寄存器PKWR设置唤醒源是不是比通过下降沿更准确些?
没看懂你的问题,设唤醒源还哪来的准确不准确的


3、就是上面的问题:唤醒前是否还需要做一个消抖
唤醒没有办法做消抖的处理吧

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表
  缈昏瘧锛