取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Participant
Participant
1,249 次查看
注册日期: ‎03-27-2018

zynq 7000 Sleep模式没有效果

转到解答

Hi,

    我在Zynq 7000 020上想使能Sleep模式,降低功耗。

    片子上的两个ARM A9,我们只使用了Core 0,Core 1处于WFE态。在PS给PL配置完成后,希望PL工作,PS进入Sleep态。在PL任务完成后,希望通过GPIO给PS中断,结束Sleep态。

根据585手册上24.4.2上关于Enter Sleep Mode的描述,选择PS侧GPIO作为wake-up device。配置流程如下图所示:

sleep.PNG

   在代码中实现休眠模式后,测量休眠前后的系统功耗,发现系统功耗不仅没有降低,反而升高了0.2W。

     请问我的配置有什么问题吗?如何确定PS真正进入Sleep模式了?谢谢!

0 项奖励
1 个已接受解答

已接受的解答
Highlighted
Xilinx Employee
Xilinx Employee
1,142 次查看
注册日期: ‎04-15-2011

回复: zynq 7000 Sleep模式没有效果

转到解答
@andy_lvjing
slcr寄存器写入之前,你需要把slcr寄存器unlock。unlock的方法就是往地址0xF8000008写入0xDF0D。
类似的,你可以往0xF8000004写入 0x767B使能写保护。
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

在原帖中查看解决方案

10 条回复10
Highlighted
Xilinx Employee
Xilinx Employee
1,180 次查看
注册日期: ‎04-15-2011

回复: zynq 7000 Sleep模式没有效果

转到解答

@andy_lvjing 

我没有试过sleep模式,但我理解你power down了PLL,功耗应该会下降的。

你执行8~10步的时候,有把寄存器读回来,确认写入了吗?

你这0.2w的功耗,是整个芯片的功耗吗?如果不加载PL,单纯让PS进入sleep mode,功耗变化怎样?

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Highlighted
Participant
Participant
1,148 次查看
注册日期: ‎03-27-2018

回复: zynq 7000 Sleep模式没有效果

转到解答

@longley ,

       这个0.2W的增幅就是在PL没有运行的情况下,单纯PS运行时整个芯片的功耗。

       按照你说的,我把8~10步的写入的寄存器回读回来,发现确实没有写进去,但是从代码上看应该是写入了的啊,有什么原因会导致写入的没有生效呢?

sleep_log.PNGsleep_cod.PNG

    期待你的回复!

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
1,143 次查看
注册日期: ‎04-15-2011

回复: zynq 7000 Sleep模式没有效果

转到解答
@andy_lvjing
slcr寄存器写入之前,你需要把slcr寄存器unlock。unlock的方法就是往地址0xF8000008写入0xDF0D。
类似的,你可以往0xF8000004写入 0x767B使能写保护。
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

在原帖中查看解决方案

Highlighted
Participant
Participant
1,124 次查看
注册日期: ‎03-27-2018

回复: zynq 7000 Sleep模式没有效果

转到解答

@longley ,

       把slcr寄存器unlock后,sleep模式应该是进入了,功耗上减少了0.3W。

       但现在还有一个问题,就是无法从sleep模式退出了。设计是想通过GPIO中断来退出sleep模式,在进入sleep模式的第二步也对GPIO进行了配置,但是发现sleep模式后无法响应GPIO中断,所以也就无法退出sleep模式。

       sleep模式如何退出,需要哪些注意的地方呢?

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
1,115 次查看
注册日期: ‎08-26-2010

回复: zynq 7000 Sleep模式没有效果

转到解答

Hi @andy_lvjing

你看下面提到的包括GIC的设置,还有相关的时钟都有吗?

Capture.JPG

Thanks
Simon
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Participant
Participant
1,054 次查看
注册日期: ‎03-27-2018

回复: zynq 7000 Sleep模式没有效果

转到解答

@longley ,

      GIC的设置都设置过了,对比步骤1和步骤2没有问题。

      步骤3中提到的GPIO相关的时钟都有哪些?休眠的时候都是按照手册上相关的步骤,并没有关GPIO时钟的操作。

      所以,我理解,GPIO的时钟没有被关闭。

        

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
926 次查看
注册日期: ‎08-26-2010

回复: zynq 7000 Sleep模式没有效果

转到解答

Hi @andy_lvjing,

看看这个slcr.APER_CLK_CTRL[GPIO_CPU_1XCLKACT]的bit是0还是1?

Thanks
Simon
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Participant
Participant
907 次查看
注册日期: ‎03-27-2018

回复: zynq 7000 Sleep模式没有效果

转到解答

@simon , @longley ,

 

      APER_CLK_CTRL.PNG

读过这个寄存器,对应的22bit GPIO是1,应该是使能的。

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
838 次查看
注册日期: ‎04-15-2011

回复: zynq 7000 Sleep模式没有效果

转到解答
@andy_lvjing,
你的GPIO中断,如果在不休眠的时候,可以进入中断吗?
Exit sleep Mode的代码,你写在哪里?
你方便把你的代码文件发出来我看看吗?另外,你用的是Xilinx的开发板吗?
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Participant
Participant
813 次查看
注册日期: ‎03-27-2018

回复: zynq 7000 Sleep模式没有效果

转到解答

@longley  @simon ,

     非常感谢两位,已经可以退出了。

     是在配置wake-up模式的时候需要重新使能下IRQ中断。