ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
外设配置为使硬件 SYSCTL 请求异步有效以实现一个快速时钟源,即使器件在 STOP 或 STANDBY 模式下运行也是如此。这种机制适用于 MCLK/ULPCLK 树通常源自 LFCLK(32kHz 时)或 SYSOSC 的应用,但临时需要更快的时钟来快速处理外设事件(例如,计时器 IRQ 或 GPIO IRQ)或外设活动(例如串行通信或 ADC 转换)。
异步快速时钟请求对于器件以 STANDBY1 模式运行的情况也很有用。在 STANDBY1 下(STOPCLKSTBY 被置位),对除少数 TIMGx 之外的所有外设禁用 ULPCLK 和 LFCLK,并将 TIMGx 保留为唯一时钟外设。为了将器件从总线时钟 (ULPCLK) 被禁用的状态下唤醒,TIMGx 中断请求会强制异步快速时钟请求将器件唤醒至 RUN 模式。如果其他外设支持检测异步事件(例如 GPIO、比较器和串行接口),它们也可以将器件从该状态唤醒。
异步快速时钟请求在请求时段内临时为外设提供总线时钟 (MCLK/ULPCLK),该时钟源自 SYSOSC。MFCLK 如被允许使用,则在异步请求期间也会被启用。
配置后,SYSCTL 将通过以下方式响应外设快速时钟请求:
上述配置应用后,将保持一段时间,即异步请求保持有效的持续时间加上删除请求后额外的 1µs 左右。如果 CPU 在请求期间未更改配置,系统将返回到快速时钟请求之前存在的配置。
如果满足以下条件之一,则会忽略异步快速时钟请求,且不会对器件配置产生影响:
TIMGx、GPIO、比较器(如果存在)、SPI、I2C、UART 和 ADC 外设均支持生成异步快速时钟请求。表 2-11 中提供了这些外设的用途、请求源和配置要求。
| 外设 | 用途 | 请求源 | 配置 |
|---|---|---|---|
| RTC(如果存在) | 从 RTC 事件中快速唤醒 CPU | RTC IRQ 至 CPU | 当器件处于 STANDBY1 模式时,RTC IRQ 事件始终会生成异步快速时钟请求;由于主 ULPCLK 被禁用以降低功耗,因此唤醒器件时需要此功能。RTC 还可以通过清零 RTC CLKCFG 寄存器中的 BLOCKASYNC 位配置为在任何工作模式下生成异步快速时钟请求;这将提供极低延迟的 RTC 事件响应。 |
| TIMGx | 从 TIMGx 事件中快速唤醒 CPU | TIMGx、 IRQ 至 CPU | 当器件处于 STANDBY1 模式并且在 TIMG 寄存器中设置相应的 IMASK 中断时,来自 TIMGx 的 IRQ 事件会生成异步快速时钟请求。这是唤醒器件所必需的,因为 ULPCLK 被禁用以降低功耗。 |
| GPIO | 从 GPIO 事件中快速唤醒 CPU | GPIO 活动 | GPIO 通过 GPIO 配置寄存器生成异步快速时钟请求。这非常适合需要将 GPIO 从 STANDBY 模式唤醒的应用,因为快速时钟请求会导致 GPIO 数字干扰滤波器以 SYSOSC 基频运行。除了将 GPIO 寄存器配置为请求快速时钟,SYSOSCCFG 寄存器中的 BLOCKASYNCALL 位必须清零才能允许请求传播。 |
| 比较器(如果存在) | 从比较器事件中快速唤醒 | 比较器事件 | 比较器事件会生成异步快速时钟请求,以提供延迟极低的比较器事件响应。必须禁用相应比较器 CLKCFG 寄存器中的 BLOCKASYNC 位。 |
| SPI | 暂时使用快速时钟生成位时钟 | SPI 活动 | 当相应 SPI 外设的 CLKCFG 寄存器中的 BLOCKASYNC 位清零时,SPI 活动会生成异步快速时钟请求。 |
| I2C | 暂时使用快速时钟生成位时钟 | I2C 活动 | 当相应 I2C 外设的 CLKCFG 寄存器中的 BLOCKASYNC 位清零时,I2C 活动会生成异步快速时钟请求。 |
| UART | 暂时使用快速时钟来生成波特率 | UART 活动 | 当相应 UART 外设的 CLKCFG 寄存器中的 BLOCKASYNC 位清零时,UART 活动会生成异步快速时钟请求。 |
| ADC | 在低功耗模式下临时运行 SYSOSC 以支持计时器触发的 ADC 运行 | ADC | 如果在禁用 SYSOSC 时触发 ADC 转换,则会生成异步快速时钟请求以启用 SYSOSC(需要 SYSOSC 才能实现正确的 ADC 运行)。 |
除了外设事件和活动快速时钟请求触发器之外,SYSCTL 还可以配置为在向 CPU 发出任何 IRQ 请求时生成异步快速时钟请求。当系统以 LFCLK 速率 (32kHz) 运行时,这将提供极低延迟的中断处理,因为 IRQ 请求将以 SYSOSC 速率与 LFCLK 速率 (32kHz) 通过唤醒逻辑进行传播。当在 SYSCTL 中的 SYSOSCCFG 寄存器内设置 FASTCPUEVENT 位时,向 CPU 发出的任何中断请求也会生成快速时钟请求。
下图中提供了使快速时钟请求有效的逻辑。