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

经验分享 | 三个 ADC 同步模式配置以及 CubeMx 错误配置的解决方法

[复制链接]
STMCU-管管 发布时间:2025-7-23 15:08
1. 前言
在客户使用三 ADC 同步模式应用过程中,需要同时采样三路信号,本文就相关配置做必要说明。在使用 CubeMx V6.12 以前版本存在错误配置,也一并进行说明。


2. 用 CubeMx 对三 ADC 采样进行配置
2.1. 应用举例
假定我们需要使用到规则组和注入组的同步模式,分别对下面的通道进行三 ADC 配置,要求 ADC1,2,3 工作在同步 Triple 模式下。规则组会使用到 DMA 进行数据读取,注入组则直接使用 JDR 进行存储转换完成数据。
12.png
图1. 示例 Tripper ADC 通道采集


2.2. CubeMx 配置
在CubeMx中将三个ADC通道管脚进行配置,同时注意在ADC1的配置的ADCs_Common_Settings 选择 Triple combined 模式。
15.png
图2. ADC 通道配置


触发源选择中,本例中选择 TIMER 触发 ADC,客户可根据实际需要进行触发配置。


本例子中配置 TIM1 触发注入组 ADC,TIM2 触发规则组 ADC。
16.png
图3. 规则组和注入组 ADC 触发源选择
17.png
18.png
图4. 规则组 DMA 配置
19.png
图5. 触发 TIMER 配置


2.3. ADC 配置
配置好工程后,CubeMx 生成代码,并在主函数中启动 TIMER 以及 ADC 采样。这边注意DMA 数组的大小需要是 9 的倍数,原因是三个 ADC 同步采样,而且是每个 ADC 一次触发都会有三个通道进行采样。本例子中用于测试,定义数组大小为 180,而且为了查看触发的频率,配置 Timer 输出 PWM 波形用于测试。
20.png
3. DMA 配合规则组 ADC 采样
这边需要说明的是 ADC 规则组 DMA 搬运后的数组所代表的通道数据。
21.png
图6. ADC 规则通道与对应的数组

4. CubeMx 的错误配置导致采样数据错误
在触发过程中,如果通过修改定时器的初始计数值,模拟注入采样打断规则采样的场景,会发生 ADC2,ADC3 规则组采样错误的情况,数据会有 0x000 和 0xFFF 错误数据出现。该情况在客户实际使用中是灾难的问题。该情况下三个 ADC 的注入组采样是正常的,ADC1 的规则组采样正常,而 ADC2,ADC3 的规则组错误。
22.png
图7. 错误的采样数据


根源在于 CubeMx 的 ADC2 和 ADC3 的注入采样模式配置为自动注入模式,而且在当前版本是无法在三 ADC 模式进行修改的。当 JAUTO 位置位后,注入组转换会自动在规则组后面,会导致触发的冲突,从而导致规则组采样异常。
23.png
24.png
图8. CubeMx 配置错误


因为目前 CubeMx V6.12 以前版本在界面上无法进行修改,如果客户使用到了三 ADC 采样模式,目前只能在客户代码中将这个 JAUTO 强制清零操作,清除后三 ADC 的规则注入组同步采样方式可以正常工作。
25.png
图9. 对 JAUTO 位强制清零


5. 结论
本文对三 ADC 采样基本配置做必要说明,而且针对 CubeMx 错误配置给出解决方案,在实际使用过程中方便客户充分使用三个 ADC 的注入组采集关键模拟数据,规则组则配合 DMA 去同步采集其他模拟量。

收藏 评论0 发布时间:2025-7-23 15:08

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版