【安富莱二代示波器教程】第6章 示波器设计—双通道ADC驱动

 

第6章        示波器设计—双通道ADC驱动

本章节为大家讲解示波器的ADC驱动,采用STM32自带ADC实现。关于STM32F429的ADC,可以说处处有地雷,不小心就踩上了,如果简单的使用,不会发现,复杂使用就很容易踩到了。

6.1    3个ADC的快速交替采样

6.2    双通道ADC采样

6.3    拓展阅读

6.4     总结

 

 

6.1  3个ADC的快速交替采样

起初二代示波器是打算像一代示波器那样,准备做成3ADC(ADC1,ADC2和ADC3)快速交替采样,后期才改成双通道。这里将3ADC的各种奇葩问题也给大家做个说明,防止大家踩坑。

3个ADC快速交替采样的两个可选的方案及其存在的问题。

6.1.1      方案一

依然采用一代示波器那种方式,3个ADC都独立配置自己的DMA通道和相应的定时器进行触发。经过详细的测试发现,在最高采样率2.8Msps * 3 = 8.4Msps的情况下,F429的总线矩阵已经处理不过来了,导致的现象就是3个ADC中有两个已经停止工作。

下面的测试都是在我们STM32-V6开发板上面进行的,主频168MHz。

测试方法

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

ADC1:

 

ADC2:

 

ADC3:

 

(1)测试一

条件:

开启ADC1,ADC2和ADC3及其配套的DMA,采用定时器触发,未开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。

现象:

这种情况下,3个ADC可以正常工作。

(2)测试二

条件:

开启ADC1,ADC2和ADC3及其配套的DMA,采用定时器触发。仅使用ADC1,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。

现象:

ADC1在最高采样率2.8Msps的情况下,工作几秒钟,停止工作。

(3)测试三

条件:

开启ADC1,ADC2和ADC3及其配套的DMA,采用定时器触发。仅使用ADC2,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。

现象:

ADC2在最高采样率2.8Msps的情况下,停止工作。

(4)测试四

条件:

开启ADC1,ADC2和ADC3及其配套的DMA,采用定时器触发。仅使用ADC3,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。

现象:

ADC3在最高采样率2.8Msps的情况下,正常工作。

(5)测试五

条件:

开启ADC1,ADC2和ADC3及其配套的DMA,采用定时器触发。同时使用ADC3,ADC2和ADC1,开启emWin(要用到LTDC,DMA2D和FMC外接的SDRAM)。

现象:

每个ADC都是在最高采样率2.8Msps,刚开始ADC1还工作,过会ADC1停止工作,ADC2一直没有工作,ADC3一直在工作。

测试现象

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信