Infineon-PSoC 4/6低功耗模式之休眠、停止模式(二)

1.休眠模式
        在休眠模式下,PSoC 内的所有时钟和同步外设都被禁用。引脚和低功耗比较器可以保持活动状态,并且SRAM和UDB寄存器的状态也得到保持。 注意:PSoC模拟协处理器器件系列不支持休眠模式。

1.1 休眠模式的唤醒源
        引脚和低功耗比较器中断可以将器件从休眠模式唤醒。每次退出休眠模式都会引起器件复位,但仍保持SRAM和某些寄存器的状态,从而可以检测唤醒复位的原因。虽然保持SRAM,但默认复位会将所有变量初始化为其用户定义初始化状态或零。为了避免某个变量在从休眠模式唤醒后被重新初始化,请使用该变量定义中的“CY_NOINIT”属性。该属性仅适用于全局或静态变量。想要确保某个变量不被初始化,您代码应确定该复位是否由从休眠模式唤醒事件导致。复位完成并返回活动模式后,您可以调用CySysPmGetResetReason() API函数来确定复位是由休眠模式唤醒导致的,还是由任何其他原因引起的。下面的代码说明了如何定义一个未初始化的变量以及确定该复位是否由休眠唤醒导致。

1.2 休眠模式转换
        通过调用CyPmHibernate() API函数,可以进入休眠模式。通过该函数,可以将器件配置为休眠模式。不需要调用其他任何API,这是因为退出休眠模式造成复位事件时,包含时钟的所有组件都被断电并被重新初始化。只有低功耗比较器仍能保持活动状态,用于引起从休眠模式唤醒现象。
        当触发某个引脚或低功耗比较器中断时,器件将退出休眠模式。退出休眠模式后,PSoC将复位。复位完成并返回活动模式后,您可以调用 CySysPmGetResetReason() API函数来检测休眠唤醒复位的原因。使用组件API可以检测指定引脚或比较器中断,因为这些寄存器的状态均被保持。
        虽然不必要,但是在进入休眠模式前,您可通过调用CySysPmfreezeIo() API函数来选择锁定所有IO单元(GPIO)。在引脚可以再次转换状态前,器件从休眠模式被唤醒后,应调用CySysPmUnfreezeIo() API函数。使用这些函数能够确保在复位过程中和复位后不会发生意外的GPIO转换。

1.3 休眠模式的使用情况
        不需要定期唤醒,但器件消耗的电流小于1 μA时,应该使用休眠模式。该模式也可以用于对模拟或数字信号转换的唤醒,这种情况下所消耗的电流最小。请注意,在器件从休眠模式唤醒前,如果您的代码被组织成一个状态机,并且CPU可以开始从先前已知的状态中执行代码,那么可以有效地使用休眠模式。您必须使用状态变量定义中的CY_NOINIT属性,以确保状态变量从休眠状态唤醒后不会被重新初始化。通过调用CySysPmGetResetReason() API函数,可检测休眠唤醒复位(如以上章节所述),从而确保器件是由休眠模式唤醒导致复位的。


2.停止模式
        PSoC 供电引脚未被断电时,停止模式下所消耗的电流最小。所有外设都被禁用,并且不会保持SRAM和寄存器的状态。器件引脚可能处于“冻结”状态并保持它们的驱动模式和逻辑状态。专用唤醒引脚(P0[7])用于将器件从停止模式唤醒。 注意:PSoC模拟协处理器器件系列不支持停止模式。

2.1 停止模式的唤醒源
      专用唤醒引脚P0[7]是停止模式下唯一可用的唤醒源。通过调用CySysPmSetWakeupPolarity() API函数,可以将它的输入唤醒极性设置为上升沿或下降沿。

2.2 停止模式转换
      通过调用CyPmStop() API函数,可以进入停止模式。通过该函数,可以将器件配置为停止模式(包括冻结I/O状态)。如果您使用了专用的唤醒引脚,则再次进入停止模式前通过调用CySysPmSetWakeupPolarity() API函数来设置它的输入唤醒极性。
      当触发专用唤醒引脚和复位信号处于低电平或循环供电时,将退出停止模式。退出停止模式时,PSoC将复位。复位完成并返回活动模式后,通过调用 CySysPmGetResetReason() API函数,可以确定该停止模式是通过切换唤醒引脚还是循环供电而退出。唤醒(引脚)复位后,GPIO状态还会保持冻结状态,并在更改引脚状态前,必须通过CySysPmUnfreezeIo() API函数解除GPIO的冻结状态。由于CySysPmStop()函数已经确保冻结了IO单元,因此进入停止模式前无需调用CySysPmUnfreezeIo() API 函数。

2.3 停止模式的使用情况
      需要最小的功耗和功能时,可以使用停止模式。在主机控制器或用户输入(如按键触摸)可以触发专用唤醒引脚,并且电源拓扑结构不允许断开器件电源的应用场合中,该模式非常有用。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论