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

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

[复制链接]
STMCU-管管 发布时间:2025-7-23 15:08
1. 前言4 L6 n% m. m' ]( t5 F! ~& y, V1 |
在客户使用三 ADC 同步模式应用过程中,需要同时采样三路信号,本文就相关配置做必要说明。在使用 CubeMx V6.12 以前版本存在错误配置,也一并进行说明。
' B* z+ T! I# u3 ^) P& u9 I3 P
4 N: I- E! W2 F6 ^8 J

) E1 @. O% U# b' k; N! U4 z; q2. 用 CubeMx 对三 ADC 采样进行配置$ |+ a  S+ J; b$ ~' U9 b
2.1. 应用举例
+ x4 q9 }. L, W2 t- e假定我们需要使用到规则组和注入组的同步模式,分别对下面的通道进行三 ADC 配置,要求 ADC1,2,3 工作在同步 Triple 模式下。规则组会使用到 DMA 进行数据读取,注入组则直接使用 JDR 进行存储转换完成数据。
  d& \' T, W4 u& ?, A3 ^
12.png
图1. 示例 Tripper ADC 通道采集

9 U) F! a* `, `( f$ i
, i0 j$ a" P$ X$ W8 d) w2 V$ p
2.2. CubeMx 配置7 \6 B  h" o4 ~" L* m* u
在CubeMx中将三个ADC通道管脚进行配置,同时注意在ADC1的配置的ADCs_Common_Settings 选择 Triple combined 模式。" ]* G1 _2 |3 ?6 @9 e( h
15.png
图2. ADC 通道配置

1 G( K: J1 e/ V* f# B9 |4 f3 J: S4 w$ D; t
  [& T2 a, O# K1 R/ J0 u: }$ Y
触发源选择中,本例中选择 TIMER 触发 ADC,客户可根据实际需要进行触发配置。
- Z* b- p$ ?7 ~; d6 u! w8 x% W1 x5 i  Q
# G! Q; n7 [. ?: N  f+ E/ P& }" k. h
本例子中配置 TIM1 触发注入组 ADC,TIM2 触发规则组 ADC。0 K2 [* A! ^; E. x/ X5 W
16.png
图3. 规则组和注入组 ADC 触发源选择
17.png
18.png
图4. 规则组 DMA 配置
19.png
图5. 触发 TIMER 配置
$ \: K6 u) P$ |  {3 n( I' X! P. h

7 Y3 d' I& d6 `% C/ M  H3 o0 F4 a2.3. ADC 配置6 h9 @2 l0 Y2 F1 F9 H* [) K9 D
配置好工程后,CubeMx 生成代码,并在主函数中启动 TIMER 以及 ADC 采样。这边注意DMA 数组的大小需要是 9 的倍数,原因是三个 ADC 同步采样,而且是每个 ADC 一次触发都会有三个通道进行采样。本例子中用于测试,定义数组大小为 180,而且为了查看触发的频率,配置 Timer 输出 PWM 波形用于测试。5 C1 F- q& q& v* f6 a# P4 }
20.png
3. DMA 配合规则组 ADC 采样7 Z0 C6 x  z# w4 a. ]
这边需要说明的是 ADC 规则组 DMA 搬运后的数组所代表的通道数据。
4 \: a3 c$ i$ S3 X" T
21.png
图6. ADC 规则通道与对应的数组

/ K% Q' v. l" t4. CubeMx 的错误配置导致采样数据错误
3 N4 C1 ^8 G" O/ ]" E6 l4 m: N在触发过程中,如果通过修改定时器的初始计数值,模拟注入采样打断规则采样的场景,会发生 ADC2,ADC3 规则组采样错误的情况,数据会有 0x000 和 0xFFF 错误数据出现。该情况在客户实际使用中是灾难的问题。该情况下三个 ADC 的注入组采样是正常的,ADC1 的规则组采样正常,而 ADC2,ADC3 的规则组错误。, I2 Q7 I# ]6 L' a0 {; i
22.png
图7. 错误的采样数据
* X% g( u1 v6 ^2 j% ^8 t3 Y+ O
: ~7 O0 b3 C# X4 B: V6 r; L1 S
根源在于 CubeMx 的 ADC2 和 ADC3 的注入采样模式配置为自动注入模式,而且在当前版本是无法在三 ADC 模式进行修改的。当 JAUTO 位置位后,注入组转换会自动在规则组后面,会导致触发的冲突,从而导致规则组采样异常。
+ J9 E- [6 H, C' O" E! ~  ]
23.png
24.png
图8. CubeMx 配置错误

! X: I4 n/ w8 K
8 s8 Q, K# d6 E, r
因为目前 CubeMx V6.12 以前版本在界面上无法进行修改,如果客户使用到了三 ADC 采样模式,目前只能在客户代码中将这个 JAUTO 强制清零操作,清除后三 ADC 的规则注入组同步采样方式可以正常工作。
0 b. r) _$ _( v
25.png
图9. 对 JAUTO 位强制清零
% }( W4 _/ Q7 j$ `
- P/ J* j! m5 p5 D
5. 结论
3 U, q1 Q+ N( k  m2 M& F  W本文对三 ADC 采样基本配置做必要说明,而且针对 CubeMx 错误配置给出解决方案,在实际使用过程中方便客户充分使用三个 ADC 的注入组采集关键模拟数据,规则组则配合 DMA 去同步采集其他模拟量。
8 m' ~0 L- V* `( T6 M
* |$ Y# Y9 R' {8 p1 G7 W
赞 收藏 评论0 发布时间:2025-7-23 15:08

举报

0个回答

所属标签

相似技术帖

官网相关资源

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