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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版