System Mode Controller

System Mode Controller

系统模式控制器 (SMC) 控制系统的低功耗的进入和退出序列。


它可以在所有低功耗模式下运行。

ARM CPU 有三种主要运行模式

  • Run
  • Sleep
  • Deep Sleep

WFI 指令用于调用 Sleep 和 Deep Sleep 模式。

FC7300 拥有个 CM7 核心,MCU 低功耗模式取决于所有核心运行模式

当所有核心进入Deep Sleep 模式时,根据 SMC 寄存器的设置进入 STOP 或者 STANBY 模式(可以配置 CPU1 或者 CPU2 为不释放,并实现和 Deep Sleep 同样的功能)。

当至少一个核心没有进入 Deep Sleep 模式时,MCU 会进入 core-related 低功耗模式(CPU1CPU2 不应配置为不释放)。

下表显示了 Flagchip MCU 电源模式与 ARM CPU 模式之间的转换。



SMC 为用户提供多种电源选项。

FC7300 系列支持 2 个电源域 (Power Domains PD),包括 RUN 域 (PD1) 和 AON 或 STANDBY 域 (PD0)。
  • 只有位于 PD0 段的引脚才能在 Standby 模式下继续工作。
  • PD1 引脚段将被隔离并变回之前的状态。
复位后,用户需要重新配置引脚相关功能。

STANDBY 模式可通过对 PD1 域进行电源门控来最大程度地降低 SoC 功耗。

STOP 模式可在保持所有电源开启的情况下大幅降低功耗。

根据用户应用的需求,有多种低功耗模式可供选择,允许 某些逻辑电路 和/或 内存 的 
  • 状态保留
  • 部分断电
  • 完全断电

所有操作模式下均保持 I/O 状态。

使用多个寄存器来配置设备的各种操作模式。

下表描述了设备的可用的电源模式。




功能描述


电源模式转换


下表定义了各种状态转换的触发器。


注意:进入 StopStandby 模式之前,

需要与 HSM(硬件安全模块 Hardware Security Module)子系统进行停止请求和握手确认,

即将 
  • SCM_SUBSYS_PCC.STOP_REQ 设置为 1'b1,
并等待 
  • SCM_SUBSYS_STATUS.STOP_ACK 变为 1'b1。

之所以进行这样的操作,是因为如果 HSM(硬件安全模块 Hardware Security Module)正在执行一些关键任务,而这时芯片被强制进入 StopStandby 模式,可能会引发一些未知问题。

低功耗进入/退出序列


Stop 模式进入序列


CPU 执行 WFI 指令后,将进入 Stop 模式。执行该指令后,将发生以下序列:

  1. CPU 时钟立即关闭(gated off)。
  2. 向所有非 CPU 总线主机发出进入停止模式的请求。
  3. 当所有主机已确认它们准备好进入停止模式后,将向所有总线从机发出进入停止模式的请求。
  4. 在所有从机确认它们已准备好进入停止模式后,系统和总线时钟将被关闭。

Stop 模式退出序列

退出 STOP 模式可通过复位或中断事件来启动。

然后执行以下序列以将系统恢复到运行模式:
  1. 所有主机和从机的 系统和总线 时钟均被启用。
  2. CPU 时钟被启用,并且 CPU 开始处理 触发退出停止模式的 复位中断

Standby 模式进入序列

CPU 执行 WFI 指令后,将进入 Standby 模式。执行该指令后,将发生以下序列:
  1. 核心、系统和总线时钟均被关闭。
  2. PD0 的隔离域已被启用。
  3. 可选择禁用 FIRC/SIRC,并触发 PMC(Power Management Controller 电源管理控制器)低功耗握手。
  4. PMC 关闭开关,关闭 PD1 LDO 以禁用 V11,并可选择禁用 V25。

Standby 模式退出序列

退出 Standby 模式可通过复位或中断事件来启动。然后执行以下序列以将系统恢复到运行模式:
  1. 通过中断/复位事件检测到唤醒。
  2. 等待 
    • PMC FPM(Full Performance Mode 完全性能模式)准备就绪
    • FIRC(Fast Internal Reference Clock 快速内部参考时钟)启用就绪,
          并启用 FIRC(Fast Internal Reference Clock 快速内部参考时钟)/SIRC(Slow Internal Reference Clock 慢速内部参考时钟)时钟源。
      3. 重置 PD1 域的断言。
      4. 释放 PD0 域的隔离。
      5. 取消断言 PD1 域。

寄存器描述

SMC 基地址 : 4004_5000h


SMC_PMCTRL (Power Mode Control Register 电源模式控制寄存器)

PMCTRL 寄存器控制 Stop 或 Standby 模式的进入。

此寄存器在 POR 时复位,并由触发 POR 的复位类型复位。

Offset : ch



SMC_STANDBY_CFG (Standby Mode Configuration Register Standby 模式配置寄存器)

STANDBY_CFG 寄存器允许用户控制在
  • 由 OPTION 字段选择的 Standby 模式下
调整功耗。

此寄存器在 POR(Power-on Reset 上电复位)时复位,并由触发 POR 的复位类型复位。

Offset : 10h




评论

此博客中的热门博文

ISO 14229-1-2020

AUTOSAR_SWS_CANDriver

Linux Driver Char Device 笔记

AUTOSAR_SWS_PWMDriver

AUTOSAR_SWS_PortDriver

AUTOSAR_SWS_ECUStateManager

EB - MCAL - MCU

AUTOSAR_SWS_ICUDriver

EB - MCAL - PWM