eric2013 发表于 2017-11-11 00:35:32

二代示波器制作中,关于ADC问题的记录,同时开启三个ADC独立DMA最高采样,并且开启

之前为V5板子设计第一代示波器的时候就遇到了很多问题,这次依然是,这个帖子用于专门记录当前遇到问题的解决办法。
====================================
测试开发板,STM32-V6,主频168MHz
测试一:
条件---开启ADC1,ADC2和ADC3及其配套的DMA,采样定时器触发,未开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。
现象---这种情况下,3个ADC可以正常工作。
测试二:
条件---开启ADC1,ADC2和ADC3及其配套的DMA,采样定时器触发。仅使用ADC1,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。
现象---ADC1在最高采样率2.8Msps的情况下,工作几秒钟,停止工作。
测试三:
条件---开启ADC1,ADC2和ADC3及其配套的DMA,采样定时器触发。仅使用ADC2,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。
现象---ADC2在最高采样率2.8Msps的情况下,停止工作。
测试四:
条件---开启ADC1,ADC2和ADC3及其配套的DMA,采样定时器触发。仅使用ADC3,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。现象---ADC2在最高采样率2.8Msps的情况下,正常工作。
测试五:
条件---开启ADC1,ADC2和ADC3及其配套的DMA,采样定时器触发。同时使用ADC3,ADC2和ADC1,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。现象---每个ADC都是在最高采样率2.8Msps,刚开始ADC1还工作,过会ADC1停止工作,ADC2一直没有工作,ADC3一直在工作。


测试方法,直接调试状态看ADC1,2,3的三个大缓冲即可,看数据缓冲的数据是否在变化
ADC1


ADC2


ADC3




总结:
对于STM32F429来说,如果三个ADC配合自己的DMA采用最高采样率2.8Msps * 3,且采用的定时器触发,在未使用emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)时,可以正常工作,使用了的话,将会出现ADC1和ADC2不工作的情况。


可能的根本原因是定时器触发太快,F429总线矩阵在这种情况下已经无法正常工作。

eric2013 发表于 2017-11-11 18:02:41

显示现象就会变成下面这样

hpdell 发表于 2017-11-11 20:21:22

测试的很详细啊

ccc1122 发表于 2017-11-14 14:19:01

LPC4370自带80MHZ的采集速度的AD,用它来做个示波器

eric2013 发表于 2017-11-14 14:27:56

回 ccc1122 的帖子

ccc1122:LPC4370  自带80MHZ的采集速度的AD,用它来做个示波器
 (2017-11-14 14:19) images/back.gif

后面三代示波器准备弄个高速的,准备上i.MX RT。4路100Msps的ADC组成快速交替采样,实现400Msps。

梅江松子 发表于 2023-12-26 08:46:00

eric2013 发表于 2017-11-14 14:27
后面三代示波器准备弄个高速的,准备上i.MX RT。4路100Msps的ADC组成快速交替采样,实现400Msps。

I.MX RT 自带有这么高的ADC模块吗,还是说通过外挂的ADC模块实现

eric2013 发表于 2023-12-27 08:47:16

梅江松子 发表于 2023-12-26 08:46
I.MX RT 自带有这么高的ADC模块吗,还是说通过外挂的ADC模块实现

那个时候RT还没有发布,发布后发现想多了。
页: [1]
查看完整版本: 二代示波器制作中,关于ADC问题的记录,同时开启三个ADC独立DMA最高采样,并且开启