打印
[ARM入门]

STM32F407

[复制链接]
4738|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一笔带过00|  楼主 | 2017-8-21 09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD芯片外挂,采集四个通道的时域数据,最高采样频率为192k,用DMA传输进入内存后,触发中断,数据简单处理,然后通过网口传输给电脑设备显示,这一部分是时时采集的,另外除采集工作外,我还需进行一些简单的控制流程。请问我用这款STM32F407芯片能否达到我的要求

相关帖子

沙发
feelhyq| | 2017-8-21 09:19 | 只看该作者
必须可以

使用特权

评论回复
板凳
feelhyq| | 2017-8-21 09:21 | 只看该作者
本帖最后由 feelhyq 于 2017-8-21 09:22 编辑

407带MAC,外接一个PHY芯片就可以了,不过建议407选择用25M的晶振,这样可以通过PA8(MCO)管脚输出25M的频率供PHY芯片使用,PHY不需要额外的晶振了,降成本。

使用特权

评论回复
地板
一笔带过00|  楼主 | 2017-8-21 09:29 | 只看该作者
我的数据是需要四个通道时时采集的,数据是进入中断处理,我在想采样频率要192k,会不会对我的控制流程造成很明显的卡顿现象。

使用特权

评论回复
5
一笔带过00|  楼主 | 2017-8-21 09:53 | 只看该作者
feelhyq 发表于 2017-8-21 09:21
407带MAC,外接一个PHY芯片就可以了,不过建议407选择用25M的晶振,这样可以通过PA8(MCO)管脚输出25M的频率 ...

对于这个我还是有两个疑问,第一:四个通道的数据,虽然用DMA快速传输,在中断中进行数据处理,但是如果我每一个通道的一帧数据是16384个点,会不会对我的控制流程产生明显的卡顿现象,不流畅?  第二:这个指标还有没有上升空间,也就是说采样频率还可不可以更高一点(ps: 我整个方案里必须要保证数据采集不能断,所以实际上,我采集数据和控制流程是两条线分开运行的)

使用特权

评论回复
6
feelhyq| | 2017-8-21 10:09 | 只看该作者
一笔带过00 发表于 2017-8-21 09:53
对于这个我还是有两个疑问,第一:四个通道的数据,虽然用DMA快速传输,在中断中进行数据处理,但是如果 ...

针对你的2个疑问:
    第一个问题:
           ADC利用DMA传输,是没有CPU干预的,你的控制流程是利用CPU去做事情,而DMA和CPU在使用者看来   是并行在做事情, 因此不会对你的控制流程产生明显的卡顿。利用DMA进行ADC采样中断是在DMA ADC传输完成后才产生中断的,这个产生中断的时间计算是这样来的:ADC一次转换时间 = ADC采样时间+12个时钟周期,
即你在设置ADC寄存器的时候,有个采样时间寄存器,最小是3个时钟周期,最大是480个时钟周期,那么
ADC一次转换时间最小为3+12 = 15个时钟周期,最大为480+12 = 492个时钟周期。ADC的一个时钟周期计算如下:APB2频率 / ADC分频,举个例子,如果APB2时钟为 8MHz,ADC分频为8分频,那么ADC的频率为1MHz,一个时钟周期为1us, 因此最小转换时间为 15时钟周期*1us = 15us, 最大492us。

使用特权

评论回复
7
feelhyq| | 2017-8-21 10:12 | 只看该作者
本帖最后由 feelhyq 于 2017-8-21 10:20 编辑
feelhyq 发表于 2017-8-21 10:09
针对你的2个疑问:
    第一个问题:
           ADC利用DMA传输,是没有CPU干预的,你的控制流程是利用C ...

每一个通道是6384个点,那么4个通道是6384*4 = 25536个点。因此总时间在 25536 * 15  = 383.04ms至 25536* 492 = 12.563712S之间。也就是说每一次产生DMA中断的时间在383.04ms 和 12.563712 S之间,不会对你的控制流程有影响。

使用特权

评论回复
8
feelhyq| | 2017-8-21 10:14 | 只看该作者
本帖最后由 feelhyq 于 2017-8-21 10:21 编辑
feelhyq 发表于 2017-8-21 10:12
每一个通道是6384个点,那么4个通道是6384*4 = 25536个点。因此总时间在 25536 * 15  = 383.04ms至 25536 ...

不建议ADC 采样时间设置得越短越好,采样时间的长短与采样得到的数据精确度成正比,通常ADC采样时钟周期取中间值就行了。

使用特权

评论回复
9
feelhyq| | 2017-8-21 10:23 | 只看该作者
feelhyq 发表于 2017-8-21 10:09
针对你的2个疑问:
    第一个问题:
           ADC利用DMA传输,是没有CPU干预的,你的控制流程是利用C ...

第一个问题的回答顺便也回到了你的第二个问题,也就是采样时间可以更短,将ADC的频率提高,然后采样周期稍微设置小一点

使用特权

评论回复
10
一笔带过00|  楼主 | 2017-8-21 11:15 | 只看该作者
feelhyq 发表于 2017-8-21 10:23
第一个问题的回答顺便也回到了你的第二个问题,也就是采样时间可以更短,将ADC的频率提高,然后采样周期稍 ...

好的,谢谢你,这个方案本身还是我最初的设想,自己也不确定能不能达到目的,现在听你说了之后,可以大胆的去尝试啦。

使用特权

评论回复
11
feelhyq| | 2017-8-21 11:18 | 只看该作者
一笔带过00 发表于 2017-8-21 11:15
好的,谢谢你,这个方案本身还是我最初的设想,自己也不确定能不能达到目的,现在听你说了之后,可以大胆 ...

Just do it

使用特权

评论回复
12
feelhyq| | 2017-8-21 11:21 | 只看该作者
一笔带过00 发表于 2017-8-21 11:15
好的,谢谢你,这个方案本身还是我最初的设想,自己也不确定能不能达到目的,现在听你说了之后,可以大胆 ...

是稍微多问一句,为什么还要外挂ADC芯片呢? 407自带的AD不行吗?上面的计算都是基于407自带的ADC计算噢

使用特权

评论回复
13
一笔带过00|  楼主 | 2017-8-21 13:35 | 只看该作者
feelhyq 发表于 2017-8-21 11:21
是稍微多问一句,为什么还要外挂ADC芯片呢? 407自带的AD不行吗?上面的计算都是基于407自带的ADC计算噢 ...

因为自带的AD芯片达不到我想要的精度要求

使用特权

评论回复
14
feelhyq| | 2017-8-21 13:48 | 只看该作者
一笔带过00 发表于 2017-8-21 13:35
因为自带的AD芯片达不到我想要的精度要求

那可能就有问题了,你的外挂AD器件通过SPI或者其他外设接口去控制和读取数据吗?

使用特权

评论回复
15
一笔带过00|  楼主 | 2017-8-21 14:07 | 只看该作者
feelhyq 发表于 2017-8-21 13:48
那可能就有问题了,你的外挂AD器件通过SPI或者其他外设接口去控制和读取数据吗? ...

外挂的AD芯片是通过SPI读取数据,只单单负责数据采集,我的控制是走的另外的流程,通过几个GPIO口去操控外设,跟这个采集数据基本上没有什么关系就是,这样是有问题吗?

使用特权

评论回复
16
feelhyq| | 2017-8-21 14:31 | 只看该作者
我没有用过SPI的 AD器件,要是使用SPI+DMA读取数据的话,SPI需要给AD额外的指令吗?还是说SPI直接把DMA配好后,AD器件每采样完成一次就自动把数据丢给SPI?

使用特权

评论回复
17
feelhyq| | 2017-8-21 14:32 | 只看该作者
feelhyq 发表于 2017-8-21 14:31
我没有用过SPI的 AD器件,要是使用SPI+DMA读取数据的话,SPI需要给AD额外的指令吗?还是说SPI直接把DMA配好 ...

还有一点,407 SPI应该是作为主机吧? 如果407 SPI作为主机,407怎么知道AD器件什么时候采样完成呢?

使用特权

评论回复
18
feelhyq| | 2017-8-21 14:34 | 只看该作者
feelhyq 发表于 2017-8-21 14:32
还有一点,407 SPI应该是作为主机吧? 如果407 SPI作为主机,407怎么知道AD器件什么时候采样完成呢? ...

需要考虑一下SPI+DMA怎么去实现。

使用特权

评论回复
19
feelhyq| | 2017-8-21 14:36 | 只看该作者
先不用去着急做,思路清晰了,技术方面都不是问题

使用特权

评论回复
20
一笔带过00|  楼主 | 2017-8-21 14:42 | 只看该作者
feelhyq 发表于 2017-8-21 14:36
先不用去着急做,思路清晰了,技术方面都不是问题

恩,是的,我还在查找一下资料,考虑要不要换一块主频高点的ARM芯片,但是当初为什么会选择STM32F407,主要是因为这款学习资料非常全面,对于我这种新手来说简直是再好不过的事情啦。他们家好像有一款F7系列的,主频比F4系列要高(本来是想问一下能不能实现,然后我自己再在开发板上做做的。)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

35

帖子

0

粉丝