你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H747 D2域的问题

[复制链接]
sistao 提问时间:2025-12-25 19:27 / 已解决

对H747的D1、D2、D3域的划分比较疑惑。

第一个问题:D1、D2、D3域分别包含哪些外设?在手册中没有交代,不知道怎么划分。

第二个问题:如果想设置D2域进入STOP模式,是不是必须从M4内核调用HAL_PWREx_EnterStopMode();,而不是从M7内核调用。(从测试现象来看,该函数必须放在M4内核才能进STOP)。

麻烦大佬们指点一下,感谢!

赞 收藏 评论2 发布时间:2025-12-25 19:27

举报

2个回答
fafa1 最优答案 回答时间:2025-12-26 09:11:23

一、D1/D2/D3 域的外设“地图” (只要记住“总线矩阵”就能自己推出任何外设归属,手册里不再单独列表)

  1. D1 域(64-bit AXI 6×7 矩阵) 主控口:Cortex-M7、LTDC、DMA2D、MDMA、SDMMC1、AXIM、D2→D1 AHB 桥 从设备口:Flash-A/B、AXI-SRAM、FMC、QSPI、AHB3(再分出 APB3) ⇒ 所以挂在 AHB3/APB3 上的外设全部归 D1: GPIOA~K、CRC、RCC(全局部分)、HSEM、BDMA 等。
  2. D2 域(32-bit AHB 10×9 矩阵) 主控口:D1→D2 AHB 桥、AHBP、DMA1/2、ETH-MAC、USB-HS1/2、SDMMC2 从设备口:SRAM1/2/3、AHB1、AHB2、APB1、APB2、D2→D1/D3 桥 ⇒ 所以挂在 AHB1/2、APB1/2 上的外设全部归 D2: 定时器类(TIM1~8,12~17)、USART1~3,6/8/10、SPI1~3、I2C1~4、CAN1/2、ADC1/2、DAC1/2、OTG-HS、ETH 等。
  3. D3 域(32-bit AHB 3×2 矩阵) 主控口:D1→D3 桥、D2→D3 桥、BDMA 从设备口:SRAM4、AHB4(再分出 APB4)、Backup-SRAM ⇒ 挂在 AHB4/APB4 上的外设归 D3: RTC、LPUART1、I2C4(第二接口)、SPI4/5/6、ADC3、COMP、OPAMP、VREF、LPTIM1/2/3/4/5、DTS、PWR(D3 部分)等。

一句话记忆: “看外设挂在哪条总线——AHB3/APB3 属 D1,AHB1/2/APB1/2 属 D2,AHB4/APB4 属 D3”。


二、D2 进入 Stop 模式到底由谁发起?

  1. 寄存器层面 决定 D2 域掉电的是 PWR->CR1 中的 SVOS 级和 LPDS 位,以及 PWR->CPUCR 中的 PDDS_D2 位。 这些寄存器物理上位于 D3 域(PWR 大部分寄存器归属 D3),因此任何总线主机(M7 或 M4)只要还能访问 D3 域,就可以写它们 。
  2. 库函数层面 HAL 提供了两套封装:
    • HAL_PWREx_EnterSTOPMode(PWR_REGULATOR_STOP, PWR_STOPENTRY_WFI) // 旧版,仅设置 D1 域
    • HAL_PWREx_EnterSTOPMode(PWR_REGULATOR_STOP, PWR_STOPENTRY_WFI, PWR_D2_DOMAIN) // H7 双核新增,可指定 D1/D2/D3 在 stm32h7xx_hal_pwr_ex.h 里可以看到原型。 因此从 M7 也可以直接让 D2 进 Stop ,只要调用带域参数的扩展版即可。
  3. 实际约束
    • 如果 D1 仍处于 DRun,而 D2 进 DStop,M4 会被强制进入 CStop,M7 继续跑;
    • 若 D1 也进了 DStop,则整个 AXI 矩阵停钟,M7 必然也停在 CStop。 所以“由谁发起”只是代码跑在哪个核的问题,没有硬性规定必须从 M4 发起 。 官方例程(Projects/STM32H747I-DISCO/Examples/PWR/PWR_STOP)里就演示了“M7 发起,把 D2 一起拉进 Stop”的做法。

结论速览

  1. 外设归属看总线——AHB3/APB3=D1,AHB1/2/APB1/2=D2,AHB4/APB4=D3。
  2. 让 D2 进 Stop 只需写 D3 域的 PWR 寄存器;M7 或 M4 都能写,推荐用 HAL_PWREx_EnterSTOPMode(..., PWR_D2_DOMAIN),不必非得从 M4 发起。
butterflyspring 回答时间:2025-12-26 11:37:27
1. 在参考手册上可以看到架构表或内部互联的表格,可以区分各个外设的域

2. 手册上没看到是必须的,只是进入stop 的模式或条件多一点,在库函数里也分M7 和 M4的例程,可以参考一下。

STM32H747 DSTOP DEMO.PNG STM32H747 M4 S-BUS.PNG STM32H747 INTERCONNECT.PNG

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版