ZHCABX9A november 2022 – march 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1305 , MSPM0L1306 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346
MSPM0 和 STM32G0 都根据器件的可用外设来注册和映射中断和异常矢量。表 3-10 中包含每个器件系列的中断矢量的总结和比较。中断或异常的优先级值越低,优先级就越高。对于其中的一些矢量,优先级是用户可选的,而对于其他矢量,优先级是固定的。
在 MSPM0 和 STM32G0 中,NMI、复位和硬故障处理程序等异常被赋予负优先级值,以指示它们始终比外设中断具有更高的优先级。对于具有可选中断优先级的外设,两个器件系列均提供多达 4 个可编程优先级。
NVIC 编号 | STM32G0 | MSPM0x | ||
---|---|---|---|---|
中断/异常 | 优先级 | 中断/异常 | 优先级 | |
- | 复位 | 固定:-3 | 复位 | 固定:-3 |
- | NMI 处理程序 | 固定:-2 | NMI 处理程序 | 固定:-2 |
- | 硬故障处理程序 | 固定:-1 | 硬故障处理程序 | 固定:-1 |
- | SVCall 处理程序 | 可选 | SVCall 处理程序 | 可选 |
- | PendSV | 可选 | PendSV | 可选 |
- | SysTick | 可选 | SysTick | 可选 |
0 | 窗口看门狗中断 | 可选 | INT_GROUP0:WWDT0、DEBUGSS、FLASHCTL、WUC FSUBx 和 SYSCTL | 可选 |
1 | 电源电压检测器中断 | 可选 | INT_GROUP1:GPIO0 和 COMP0 | 可选 |
2 | RTC 和时间戳 | 可选 | 计时器 G1 (TIMG1) | 可选 |
3 | 闪存全局中断 | 可选 | UART3(1) | 可选 |
4 | RCC 全局中断 | 可选 | ADC0 | 可选 |
5 | EXTI0 和 EXTI1 中断 | 可选 | ADC1(1) | 可选 |
6 | EXTI2 和 EXTI3 中断 | 可选 | CANFD0(1) | 可选 |
7 | EXTI4-EXTI15 中断 | 可选 | DAC0(1) | 可选 |
8 | UCPD1/UCPD2/USB | 可选 | 保留 | 可选 |
9 | DMA1 通道 1 | 可选 | SPI0 | 可选 |
10 | DMA1 通道 2 和 3 | 可选 | SPI1(1) | 可选 |
11 | DMA1 通道 4-6 和 DMA2 通道 1-5 | 可选 | 保留 | 可选 |
12 | ADC 和比较器 | 可选 | 保留 | 可选 |
13 | 计时器1 (TIM1)、中断、更新、触发和换向 | 可选 | UART1 | 可选 |
14 | TIM1 捕捉比较 | 可选 | UART2(1) | 可选 |
15 | TIM2 全局中断 | 可选 | UART0 | 可选 |
16 | TIM3 和 TIM4 全局中断 | 可选 | TIMG0 | 可选 |
17 | TIM6、LPTIM1 和 DAC 中断 | 可选 | TIMG10(1) | 可选 |
18 | TIM6 和 LPTIM2 全局中断 | 可选 | TIMA0(1) | 可选 |
19 | TIM14 全局中断 | 可选 | TIMA1 | 可选 |
20 | TIM15 全局中断 | 可选 | TIMA2(2) | 可选 |
21 | TIM16 和 FDCAN0 全局中断 | 可选 | TIMH0(1) | 可选 |
22 | TIM17 和 FDCAN1 全局中断 | 可选 | 保留 | 可选 |
23 | 12C1 全局中断 | 可选 | 保留 | 可选 |
24 | I2C2 和 I2C3 全局中断 | 可选 | I2C0 | 可选 |
25 | SPI1 全局中断 | 可选 | I2C1 | 可选 |
26 | SPI2 和 SPI3 全局中断 | 可选 | 保留 | 可选 |
27 | USART1 全局中断 | 可选 | 保留 | 可选 |
28 | USART2 和 LPUART2 全局中断 | 可选 | AES(1) | 可选 |
29 | USART 3-6 和 LPUART1 全局中断 | 可选 | 保留 | 可选 |
30 | CEC 全局中断 | 可选 | RTC(1) | 可选 |
31 | AES 和 RNG 全局中断 | 可选 | DMA | 可选 |
MSPM0 器件包含一个专用事件管理器外设,它扩展了 NVIC 的概念,允许将来自外设的数字事件作为中断传输到 CPU,作为触发器传输到 DMA,或传输到另一个外设以触发硬件操作。事件管理器还可以与电源管理和时钟单元 (PMCU) 进行握手,以确保存在必要的时钟和电源域,从而执行触发事件操作。
在 MSPM0 事件管理器中,生成事件的外设称为发布者,而基于发布者执行操作的外设、DMA 或 CPU 称为订阅者。可用发布者和订阅者的潜在组合非常灵活,可以在移植软件时使用,以替代以前由中断矢量和 CPU 处理的功能,从而完全绕过 CPU。例如,I2C 转 UART 桥接器可能先前在接收到 I2C 停止时触发了 UART 传输,使用 ISR 设置标志,或直接加载 UART TX 缓冲区。利用 MSPM0 事件处理程序,I2C 事务完成事件可以触发 DMA 直接加载 UART TX 缓冲区,因此无需 CPU 采取任何操作。
有关如何使用 MSPM0 中的事件处理程序的更多详细信息,请参阅 MSPM0G 技术参考手册或 MSPM0L 技术参考手册的“事件”部分。
不要与 MSPM0 事件处理程序混淆,STM32G0 系列器件实现了扩展中断和事件控制器 (EXTI),它允许通过来自 IO 或外设的可配置事件将系统从停止模式唤醒。使用 IO 唤醒功能(请参阅 MSPM0 技术参考手册的 IOMUX 部分)和 GPIO FastWake(请参阅 MSPM0 技术参考手册的 GPIO 部分),可以在 MSPM0 中最好地复制 STM32G0 EXTI 的唤醒功能。如果唤醒是针对单个操作,则事件处理程序外设能够为外设操作发生请求必要的 PMCU 资源,并在之后返回适用的低功耗模式。