TIwilliam hill官网
直播中

孙缅禧

7年用户 255经验值
私信 关注
[问答]

F28M35x关于ADC的问题

请教朋友们个关于ADC模块采样的问题,如果对ADC的1个通道连续采样1000个点,将采集的数据以DMA的方式存放到内存中,当采样1000个点结束后对这些数据再进行傅里叶变换,将处理后的数据再送到M3核,不知能否实现,请朋友们指点一下,谢谢!

回帖(4)

冯敬宇

2018-10-24 15:51:24
hongyue,
我认为可以,而且你的思路已经很清晰了,只要一步一步操作就可以了。在ADC中断寄存器中设置一个counter,然后计数到1000的时候,启动DMA,然后DMA结束后触发中断,在DMA中断中使用FFT算法,结果再通过IPC通道送到M3内核中。
Eric
                                                                         - ERIC
举报

孙缅禧

2018-10-24 15:59:09
引用: guigui_7044 发表于 2018-10-24 17:51
hongyue,
我认为可以,而且你的思路已经很清晰了,只要一步一步操作就可以了。在ADC中断寄存器中设置一个counter,然后计数到1000的时候,启动DMA,然后DMA结束后触发中断,在DMA中断中使用FFT算法,结果再通过IPC通道送到M3内核中。
Eric

Eric,
我现在有点疑惑了,是不是每采样一个点然后进行转换存到结果寄存器中都需要启动DMA将结果寄存器中的数据放到内存中呢?如果前一个转换结果没有被读取那采样第二个点转换的结果会覆盖掉之前的数据。但是如果每采样一个点就启动DMA将数据放到内存那就需要不断的触发启动DMA......有点乱,请Eric指点迷津。
举报

冯敬宇

2018-10-24 16:10:46
引用: 分修一班人 发表于 2018-10-24 17:58
Eric,
我现在有点疑惑了,是不是每采样一个点然后进行转换存到结果寄存器中都需要启动DMA将结果寄存器中的数据放到内存中呢?如果前一个转换结果没有被读取那采样第二个点转换的结果会覆盖掉之前的数据。但是如果每采样一个点就启动DMA将数据放到内存那就需要不断的触发启动DMA......有点乱,请Eric指点迷津。 ...

hongyue,
我看你的描述,你只打算用一个通道采集一个数据,然后ADC采样完之后的ADCINT1信号可以触发DMA来读取这个ADC结果寄存器,我认为这可行。你也不用担心DMA不断启停的问题,不影响CPU工作。我认为DMA只搬一个数据的话,速度应该快过ADC采样,所以应该不会出现采样结果还没读取就被覆盖的情况。换一个角度讲,即使被覆盖了,也只能证明ADC的采样速度太快了,丢一两个数据我认为不会影响分析结果。
Eric
                                                                         - ERIC
举报

孙缅禧

2018-10-24 16:28:54
引用: guigui_7044 发表于 2018-10-24 18:10
hongyue,
我看你的描述,你只打算用一个通道采集一个数据,然后ADC采样完之后的ADCINT1信号可以触发DMA来读取这个ADC结果寄存器,我认为这可行。你也不用担心DMA不断启停的问题,不影响CPU工作。我认为DMA只搬一个数据的话,速度应该快过ADC采样,所以应该不会出现采样结果还没读取就被覆盖的情况。换一个角度讲,即使被覆 ...

谢谢Eric!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分