Infineon-PSoC4/6低功耗模式简介(一)

1、模式汇总
        PSoC 具有 5 种工作功耗模式。按照功耗优化程度和功能的顺序,这些模式分别为:活动、睡眠、深度睡眠、休眠和停止模式。表 1 显示的是每种功耗模式下的典型电流和唤醒时间。

表 1. 功耗模式规范


  ※ 注意:表1 所显示的数值是典型值。而对于特定条件下的值,请参考器件系列数据手册。

 不同低功耗模式的差别主要表示在 CPU 和外设的可用性、唤醒和复位源、功耗模式的切换行为以及功耗优化程度等方面。表 2 显示的是 PSoC 的资源以及它们在不同功耗模式下的可用性。


表 2. 资源在 PSoC 功耗模式下的可用性

                     ① 保持:外设的配置和状态得到保持。器件进入活动模式时,外设继续运行。
                     ② 冻结:系统中所有 GPIO 的配置、模式和状态都被锁定。无法修改 GPIO 的状态,直到器件再次进入活动模式,并且引脚被解锁为止。
                     ③ 一些器件支持被称为“深度睡眠”的低功耗模式。
                     ④ 进入深度睡眠模式前通过调用组件的_Sleep()函数和通过退出深度睡眠模式后调用_WakeUP()函数来保持基于 UDB 的所有组件的状态。
                     ⑤ 当 PSoC器件处于休眠状态时,它会通过复位事件来重新初始化所有组件。


2、低功耗模式的详细信息
         
PSoC 的四种低功耗模式
            ◆ 活动模式是正常的工作模式。在这种模式下,所有外设都可用,CPU 处于活动状态。
            ◆ 在睡眠模式下,除 CPU 外,所有外设均可用。
            ◆ 在深度睡眠模式下,将禁用 CPU、大多数外设和 MHz 时钟。
            ◆ 在休眠模式下,将禁用所有时钟,但仍保持逻辑状态。
            ◆ 在停止模式下,将暂停 CPU、时钟以及所有外设的运行,但仍会保持或冻结 GPIO 的各种状态。

       2.1睡眠模式
            在睡眠模式下,PSoC 的 ARM® Cortex®-M0/M0+ CPU 不执行指令,会等待中断发生。SRAM 得到保持,但是 CPU 不能对它进行读取或写入操作。通过 DMA,可以访问支持 DMA 的部分。另外,其他外设和时钟都会继续运行。


       2.1.1 睡眠模式的唤醒源
            可使用器件内的任何中断源将器件从睡眠模式唤醒。所有外设均可保持活动状态,并生成中断。

       2.1.2 睡眠模式的转换
            通过调用 API 函数 CySysPmSleep(),可以进入睡眠模式。通过该函数,可以将器件配置为睡眠状态。不需要调用其他 API。当触发某个中断时,器件将退出睡眠模式。退出睡眠模式后,PSoC 再次进入活动模式。睡眠唤醒源的配置只需使能它们的中断即可。

       2.1.3 睡眠模式使用情况
            当 ADC、CapSense®、数字通信等外设或其他资源需要保持活动状态,但不要求 CPU 活动时,应该使用睡眠模式。这样可以降低 ADC 转换和数字通信传输操作等事件中所消耗的电流。

       2.2 深度睡眠模式
            在深度睡眠模式下,高频率时钟和需要高频率时钟的外设都被禁用。高频时钟包括:内部主振荡器(IMO)、外部晶体振荡器(ECO),以及锁相环(PLL)。请注意,ECO 和 PLL 不适用于所有 PSoC 器件。内部低速度振荡器(ILO)时钟仍保持活动状态,并能为看门狗定时器(可用作睡眠定时器来将系统从深度睡眠模式唤醒)提供时钟脉冲。一些 PSoC 器件还带有监视晶振(WCO),该晶振可在深度睡眠模式下工作。I2C 模块可以继续作为从设备工作,以监控 I2C 总线,从而允许在 I2C 地址匹配时唤醒器件。

       2.2.1 深度睡眠模式唤醒源
            I2C 地址匹配、看门狗定时器、GPIO 中断、CTB/CTBm 比较器中断以及低功耗比较器中断均能将器件从深度睡眠唤醒。看门狗定时器模块包含了可被单独配置以生成中断、复位或两者的多个定时器。这样 WDT 便能够作为睡眠定时器使用。

       2.2.2 深度睡眠模式的转换
            通过调用 CySysPmDeepSleep() API 函数,可以进入深度睡眠模式。通过该函数,可将器件配置为深度睡眠模式。如果您不想关闭可在深度睡眠模式下工作的组件,从而节省功耗和/或保持其当前状态的话,那么便不需要调用其他任何  API 函数。在该情况下,从深度睡眠模式唤醒后,调用 CySysPmDeepSleep()和_WakeUp()前,要使用组件的指定 API _Sleep()来保持组件的当前状态。唤醒后,在进入深度睡眠模式和调用_Start()函数前,可根据您的应用加快调用_Stop()函数。
            当触发中断时,器件将退出深度睡眠模式。退出深度睡眠模式后, PSoC 4 将再次进入活动模式。睡眠唤醒源的配置只需要使能它们的中断即可。

       2.2.3 深 度睡 眠模式 的使用 情况
            如果不需要使用 PSoC 的高性能模拟和数字外设,但仍需要通过看门狗定时器或 I2C 地址匹配事件来定期唤醒器件,那么应采用深度睡眠模式。通过常规唤醒间隔,可以定期使用处于活动模式的外设,例如:使用 ADC 来读取数据或扫描 CapSense 按键输入。

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

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

评论