• 资料介绍
    • 问题描述
    • 问题分析
    • 结果验证
    • 问题拓展
    • 问题小结
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

LAT1362 利用STM32 TIMER触发ADC实现分组转换

03/22 14:25
147
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1362 利用STM32 TIMER触发ADC实现分组转换

631.18 KB

问题描述

有客户使用 STM32G4 系列芯片开发产品,用到其中一个 ADC 模块的多个通道,他希望使用 TIMER 来定时触发这几个通道的转换。不过他有两点疑惑。第一,他期望定时器触发这几个通道是每触发一次则只转换一个通道,这样依次触发转换,而不是触发一次就把几个通道都转换完结。他不知这样是否可行?第二,既然是 TIMER 每触发一次就转换一次,如果说某个通道正在转换时来了触发,这个触发事件是否会丢失?是否会导致最终转换的数据混乱。

问题分析

先说他的第一问题。多个通道进行转换,定时器每触发 1 次则转换 1 个通道,这是可以做到的。我们可以采用 ADC 模块的间断分组转换模式,我们可以指定每次启动 ADC 所需要转换的通道数。比方现在用到 6 个 ADC 通道需要做转换,我们可以指定每次触发启动时转换 2 个通道,这样 3 次触发后 6 个通道即告完成 1 轮转换。

结果验证

我们不妨使用 STM32G474 芯片做下相关验证,看看当 TIMER 触发事件的速率快到一定程度时是否会出现触发事件被无视、转换结果是否混乱。这里使用片内两个 ADC 专用通道,一个是测试𝑉𝐵𝐴𝑇信号的,另一个是测试内部𝑉𝑅𝐸𝐹𝐼𝑁𝑇信号的。这两个信号的转换结果相对稳定、数据相差有明显,便于观察。ADC 转换结果使用 DMA 进行传输。

问题拓展

既然谈到 ADC 的触发事件,我们也该知道基于外部事件对 ADC 进行触发时,其触发频率也是有限制的,这点在各个芯片的 ADC 特性参数那里都有介绍。我这里做部分截图过来,抛砖引玉。在具体应用时我们可以 针对性地阅读查看。

问题小结

本文着重针对客户的疑问作了相关解释,并做了相关验证确认。在涉及多通道 ADC 转换,同时又不期望一次触发就将整个序列转换完成时,考虑使用 ADC 的间断分组转换模式或许是个不错的方案。

资料预览

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!