关于c6748的休眠以及唤醒
1、在pmi_slp.c文件中提到关于能深休眠以及唤醒的部分代码,我将其中的代码移植到自己的项目中去,能休眠下去,但是唤醒不了?是需要怎么样的触发中断才能唤醒吗?
2、其中在pmi_slp.c中提到一块电源管理芯片tps65070是可以通过dsp的i2c来调节电压,我现在不使用这块芯片的前提下,在休眠时是需要手动给deepsleep管脚一个低电平,在唤醒时给deepsleep一个高电平吗?
Shine:
需要给一个低电平给deepsleep管脚进入休眠模式,给一个高电平唤醒。唤醒过程在下面的文档第199页上有描述。http://www.ti.com/lit/ug/spruh79a/spruh79a.pdf参考一下下面wiki网站上的代码。http://processors.wiki.ti.com/index.php/Power_Module_for_C6748_and_OMAP-L138#Sleep_Modes
user3726176:
回复 Shine:
您好,我想请教一些关于以下的问题
1、如果我将DEEPSLEEP管脚配置成RTC_ALARM模式,是不是需要外部给触发电平才能唤醒呢?我在我的代码中试了一下,好像不能主动将deepsleep管脚置低
2、如果不是深休眠,是浅休眠的话能不能通过串口唤醒呢?
Shine:
回复 user3726176:
1. 不需要外部给,rtc alarm发生后,会产生触发信号给RTC_ALARM管脚。你看一下在进入休眠模式前,rtc alarm是否设置正确。2. 如果不是深休眠,任意cpu interrupts都可以去唤醒。
user3726176:
回复 Shine:
1、请问有关于tms320c6748浅休眠的资料不?我在手册上没有找到
2、现在我的方案主要改成串口发送命令休眠和唤醒,如果没有浅休眠这方面的资料的话关闭部分时钟还是降低时钟频率呢?
Shine:
回复 user3726176:
浅睡眠资料见下面的第9章节。http://www.ti.com/lit/ug/sprufk5a/sprufk5a.pdf
user3726176:
回复 Shine:
1、我看了一下第9章的内容操作步骤如下
先向寄存器PDCCMD中的MEGPD位写1
保留一个作为唤醒的中断,关闭其它的中断
执行IDLE
这个操作最后一个操作步骤就一笔带过没有具体的细节,不是特别清楚,请问有这个细节一点的东西不?
2、这个浅休眠的功耗是不是如附图中的standby power呢?
Shine:
回复 user3726176:
1.指令集中有对IDLE的解释。IDLE Multicycle NOP With No Termination Until Interrupthttp://www.ti.com/lit/ug/sprufe8b/sprufe8b.pdf 2. 是standby power。
user3726176:
回复 Shine:
1、我看那个介绍里面说是需要多周期执行nop,直到中断退出,是不是我可以写成while(1){asm(" nop");}还是用汇编的命令ADDKPC, BNOP来编写呢?
Shine:
回复 user3726176:
没试过,一般直接用IDLE指令的。
user3726176:
回复 Shine:
直接写idle吗?