|
1. 前言 在客户使用三 ADC 同步模式应用过程中,需要同时采样三路信号,本文就相关配置做必要说明。在使用 CubeMx V6.12 以前版本存在错误配置,也一并进行说明。& f" M4 z# M9 g" o 9 g0 N3 U7 f0 [ l$ G9 r. z7 b 2. 用 CubeMx 对三 ADC 采样进行配置6 b E8 w. W- P* z2 i; m% j 2.1. 应用举例0 W3 E6 n0 r* ]) q" r# t% E4 e 假定我们需要使用到规则组和注入组的同步模式,分别对下面的通道进行三 ADC 配置,要求 ADC1,2,3 工作在同步 Triple 模式下。规则组会使用到 DMA 进行数据读取,注入组则直接使用 JDR 进行存储转换完成数据。
图1. 示例 Tripper ADC 通道采集 " [- |1 I3 z+ D" q% ] 2.2. CubeMx 配置 在CubeMx中将三个ADC通道管脚进行配置,同时注意在ADC1的配置的ADCs_Common_Settings 选择 Triple combined 模式。
图2. ADC 通道配置 触发源选择中,本例中选择 TIMER 触发 ADC,客户可根据实际需要进行触发配置。+ T# Y. l: z. r4 e7 U. E/ R ) t* [9 q+ ~ O) b3 }; I 本例子中配置 TIM1 触发注入组 ADC,TIM2 触发规则组 ADC。
图3. 规则组和注入组 ADC 触发源选择
图4. 规则组 DMA 配置
图5. 触发 TIMER 配置 `$ r! R8 q1 |2 s: V6 J- K4 L8 l+ j+ ]1 S" ?& c1 P 2.3. ADC 配置7 B& ~% w9 i5 `5 w% i# }4 h8 V/ S$ U 配置好工程后,CubeMx 生成代码,并在主函数中启动 TIMER 以及 ADC 采样。这边注意DMA 数组的大小需要是 9 的倍数,原因是三个 ADC 同步采样,而且是每个 ADC 一次触发都会有三个通道进行采样。本例子中用于测试,定义数组大小为 180,而且为了查看触发的频率,配置 Timer 输出 PWM 波形用于测试。; H' t8 ?( @/ j
这边需要说明的是 ADC 规则组 DMA 搬运后的数组所代表的通道数据。6 g! u# Z. M/ l, ]
图6. ADC 规则通道与对应的数组 4. CubeMx 的错误配置导致采样数据错误0 m2 `" G4 |9 s) a; ^ 在触发过程中,如果通过修改定时器的初始计数值,模拟注入采样打断规则采样的场景,会发生 ADC2,ADC3 规则组采样错误的情况,数据会有 0x000 和 0xFFF 错误数据出现。该情况在客户实际使用中是灾难的问题。该情况下三个 ADC 的注入组采样是正常的,ADC1 的规则组采样正常,而 ADC2,ADC3 的规则组错误。
图7. 错误的采样数据 - b' w7 K9 w7 j$ S 根源在于 CubeMx 的 ADC2 和 ADC3 的注入采样模式配置为自动注入模式,而且在当前版本是无法在三 ADC 模式进行修改的。当 JAUTO 位置位后,注入组转换会自动在规则组后面,会导致触发的冲突,从而导致规则组采样异常。- v2 N! m$ i& R- H* }) }9 r
图8. CubeMx 配置错误 因为目前 CubeMx V6.12 以前版本在界面上无法进行修改,如果客户使用到了三 ADC 采样模式,目前只能在客户代码中将这个 JAUTO 强制清零操作,清除后三 ADC 的规则注入组同步采样方式可以正常工作。
图9. 对 JAUTO 位强制清零 5 j6 X1 S" b5 S# U 5. 结论 本文对三 ADC 采样基本配置做必要说明,而且针对 CubeMx 错误配置给出解决方案,在实际使用过程中方便客户充分使用三个 ADC 的注入组采集关键模拟数据,规则组则配合 DMA 去同步采集其他模拟量。! O8 @1 C1 f7 Z. d , j0 H& S2 s2 C |
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】介绍、环境搭建、工程测试
经验分享 | 基于STM32G4芯片TIM+SPI+DMA应用示例
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
如何将STM32CubeMX生成的CMake工程导入STM32CubeIDE
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
STM32CubeCLT 1.22.0新版本发布
《STM32CubeMX2 实战课程》学习笔记+安装
微信公众号
手机版