样时代 发表于 2019-9-20 10:49:39

H7双重ADC+DMA,配置MPU,数据对齐后,DMA读取数据仍存在问题

分享一个双重ADC+DMA采样的代码,整体工作都正常,但存在一个问题,好久了也一直没找到原因,求指点:'(

1.首先配置了MPU



2.开启MPU


3.配置ADC与DMA部分













4.开启中断


5.中断回调


6.keil配置




以上就是程序部分,主要目的是采用双重ADC+DMA搬运,,每采样十次后进入DMA中断处理一次。基本工作正常,只有一个问题。





以上问题一直没有解决,也没有在网上查到答案。
MPU和数据对齐都做了,不知道问题在哪。
还有之前做独立ADC的时候也是差不多的情况,只有前16组数据能正常刷新,超出16组后都只能刷新一次。
有人知道问题出在哪里吗?谢谢

eric2013 发表于 2019-9-20 11:04:45

1、双重ADC不适合用定时器触发,双重的时间间隔配置后是固定的,而你的定时器触发是可调的,无法等分时间差。,所以我们应用中基本不使用默认支持的双重或者三重(H7不支持三重)

一般的做法是独立配置ADC1和ADC3,然后使用同一个定时器的不同通道来触发即可,可以方便的实现同步采样或者交叉快速采样,这样的时间间隔才可以等分。

2、另外你用的D3域的SRAM,你却没有配置它的MPU属性,这个要配置的,要不处于上电默认状态。

3、其它的参考我们的例子,先实现下单ADC的溜溜。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980&extra=page%3D1


样时代 发表于 2019-9-20 11:15:41

eric2013 发表于 2019-9-20 11:04
1、双重ADC不适合用定时器触发,双重的时间间隔配置后是固定的,而你的定时器触发是可调的,无法等分时间差 ...

谢谢指点!双重ADC不适合作定时器触发真是今天才知道:'(,那我有方向了,感谢

eric2013 发表于 2019-9-20 14:49:40

样时代 发表于 2019-9-20 11:15
谢谢指点!双重ADC不适合作定时器触发真是今天才知道,那我有方向了,感谢

我们的一代和二代示波器都是这个方案

风过不留痕 发表于 2024-2-26 14:41:47

eric2013 发表于 2019-9-20 11:04
1、双重ADC不适合用定时器触发,双重的时间间隔配置后是固定的,而你的定时器触发是可调的,无法等分时间差 ...

您好,请教一下:
1.双重adc的时候,定时器不是触发adc master进行采集的吗?定时器触发可调是啥意思,定时器分频好以后不就是按指定频率去触发采集吗?
2.如果是adc1和3同时对一个通道采样,这样结果会不会相互影响?(待会我测一下看看)

eric2013 发表于 2024-2-26 15:57:12

风过不留痕 发表于 2024-2-26 14:41
您好,请教一下:
1.双重adc的时候,定时器不是触发adc master进行采集的吗?定时器触发可调是啥意思, ...

以双ADC快速交替采样为例,采用双ADC模式后,它们之间的采样间隔是固定的。没法和定时器触发速度匹配。

风过不留痕 发表于 2024-2-26 18:14:21

eric2013 发表于 2024-2-26 15:57
以双ADC快速交替采样为例,采用双ADC模式后,它们之间的采样间隔是固定的。没法和定时器触发速度匹配。
...

双快速交替采样的模式&双重adc,可以使用软件触发的方式采集吗?只触发一次,然后采满所需数据个数

eric2013 发表于 2024-2-27 08:01:44

风过不留痕 发表于 2024-2-26 18:14
双快速交替采样的模式&双重adc,可以使用软件触发的方式采集吗?只触发一次,然后采满所需数据个数

可以的,设置DMA为Normal模式。

风过不留痕 发表于 2024-2-27 10:45:42

eric2013 发表于 2024-2-27 08:01
可以的,设置DMA为Normal模式。

请教一下,高速adc采样还有啥性价比高的方案吗?
我之前设想的是双重adc交叉采集可以到9m的采样率(12bit,36mhz,h743,4.5m*2),如果定时器触发出来的数据不稳定的话,只能上外设了

eric2013 发表于 2024-2-28 01:05:09

风过不留痕 发表于 2024-2-27 10:45
请教一下,高速adc采样还有啥性价比高的方案吗?
我之前设想的是双重adc交叉采集可以到9m的采样率(12bi ...
使用1个定时器的两个CC通道,分别触发两个ADC做快速交替采样即可。

https://img.anfulai.cn/dz/attachment/forum/202004/17/015821njlz46ssohfuufsj.png

风过不留痕 发表于 2024-2-28 15:57:29

eric2013 发表于 2024-2-28 01:05
使用1个定时器的两个CC通道,分别触发两个ADC做快速交替采样即可。

两个adc同时去采集同一个通道,不是会冲突吗?

风过不留痕 发表于 2024-2-28 18:52:58

风过不留痕 发表于 2024-2-28 15:57
两个adc同时去采集同一个通道,不是会冲突吗?

我现在配置成双重adc模式,软件触发采集,adc采样速率只有1m左右,已经配置成12bit+36mhz的时钟

eric2013 发表于 2024-2-29 08:20:50

风过不留痕 发表于 2024-2-28 15:57
两个adc同时去采集同一个通道,不是会冲突吗?

不冲突。我们早期V5开发板的1代示波器就是这么搞的,用了同一个定时器的三个CC通道触发ADC1,ADC2和ADC3,引脚使用ADC123三路都可以复用的引脚。
页: [1]
查看完整版本: H7双重ADC+DMA,配置MPU,数据对齐后,DMA读取数据仍存在问题