ST意法半导体
直播中

刘桂英

8年用户 1281经验值
私信 关注
[问答]

请问STM32G431内部运放1和2输出连接的ADC为什么不是OPAMP?

请问下大家,STM32G431 芯片UVW三相的电流检测,配置使用内部运放PGA,看到G431-ESCdemo板对应motor workbench配置,为什么UV相的运放输出分别是ADC1 3通道和ADC2 3通道,而W相输出是ADC1 12通道和OPAMP3通道呢?不应该U和V相也有OPAMP1和OPAMP2通道吗?三个运放应该是一模一样的,使用内部PGA运放情况下不应该只能配置为OPAMP1,OPAMP2,OPAMP3吗?为啥还会有adc1 通道3之类的说法呢?我是用G431-ESC官方的demo板,发现通过motor workbench和cubemx配置的运放三个是不一样的,获取adc值时候,运放1和2输出连接的是adc,3运放连接的是opamp,请问下这样是基于什么考虑?

回帖(1)

张健

2025-5-20 18:14:40

在STM32G431中,内部运放(OPAMP)与ADC的映射关系是由芯片设计决定的,可能与用户预期不同。以下是关键点解析:




1. OPAMP与ADC的固定路由关系


STM32G431的每个OPAMP输出固定连接到特定ADC通道,而非通过通用“OPAMP通道”选择。例如:



  • OPAMP1输出默认路由到ADC1_IN3(ADC1通道3)。

  • OPAMP2输出默认路由到ADC2_IN3(ADC2通道3)。

  • OPAMP3输出默认路由到ADC1_IN12(ADC1通道12)。


这种设计意味着:



  • U相(OPAMP1)必须通过ADC1_IN3采样。

  • V相(OPAMP2)必须通过ADC2_IN3采样。

  • W相(OPAMP3)只能通过ADC1_IN12采样。




2. 为何W相涉及OPAMP3通道?



  • ADC1_IN12是OPAMP3的专用输出通道,但在某些配置工具(如CubeMX或Motor Workbench)中,可能同时显示OPAMP3的标识,以表明信号来源。这可能是工具对内部路由的冗余提示,实际ADC配置只需关注通道号(如ADC1_IN12)。




3. 为何U/V相未显示OPAMP通道?



  • 工具可能仅显示ADC通道号,但背后隐式关联了OPAMP实例:

    • ADC1_IN3 → OPAMP1的输出。

    • ADC2_IN3 → OPAMP2的输出。

    • ADC1_IN12 → OPAMP3的输出。


  • 用户无需主动选择OPAMP通道,只需配置对应ADC通道,即可读取运放输出。




4. Motor Workbench配置的合理性



  • ADC实例选择:U/V相分别使用ADC1和ADC2,可能是为了并行采样(提高实时性),而W相因资源限制只能复用ADC1。

  • 通道分配:遵循芯片固定的OPAMP-ADC路由,工具自动匹配ADC通道,无需用户干预。




5. 验证方法



  • 查阅数据手册:确认OPAMP与ADC的映射关系(如RM0440文档中的“OPAMP Connection to ADC”章节)。

  • 检查CubeMX配置:在OPAMP配置界面,查看“Output Connection to ADC”选项,确认其自动绑定到指定ADC通道。




6. 解决方案



  • 直接使用指定ADC通道:无需纠结OPAMP通道标识,按手册配置:

    • U相 → ADC1_IN3。

    • V相 → ADC2_IN3。

    • W相 → ADC1_IN12。


  • 代码实现:在ADC初始化时,分别启用这三个通道,并确保OPAMP处于PGA模式。




总结


STM32G431的OPAMP输出与ADC通道的绑定是硬件固定的,用户只需按手册配置对应ADC通道即可。工具中的“OPAMP3通道”提示可能是冗余信息,实际采样仅依赖ADC通道号。此设计虽导致三个相位的ADC实例不统一,但符合芯片资源分配逻辑。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分