打印

stm32f4 ADC采样频率是多少?

[复制链接]
7354|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
KC_CEC|  楼主 | 2013-8-5 15:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 KC_CEC 于 2013-8-5 17:03 编辑

对于F4ADC配置有几点疑问希望大家帮忙解答一下:

问题1:这个表的意思是否是说明F4在供电电压大于2.4V时其最大时钟是36MHZ?当其时钟在30MHZ时,外部触发采样频率最大为1764KHZ?
如果上面这个问题是对的话,那么对于库函数的几项操作有点疑问:

这个说明给出了ADC转换时间的计算方式,那么对应的我配置如下:
//ADC时钟为APB2的4分频->84/4=21MHZ(F407ADC在2.4-3.6V供电电压下最大速率36M,稳定速度为30M)
        ADC_CommonInitStructure.ADC_Prescaler=ADC_Prescaler_Div4;
//配置ADC1规则组(得出其单次采样时间为->(3+12)/21≈0.7us)
ADC_RegularChannelConfig(ADC1,ADC_Channel_10,1,ADC_SampleTime_3Cycles);
//两次采样的间隔时间为5个ADC时钟周期(5/21≈0.24us)
        ADC_CommonInitStructure.ADC_TwoSamplingDelay=ADC_TwoSamplingDelay_5Cycles;
问题2:按照如上数据理论值计算其最大采样频率:0.7+0.24≈1us->1MHZ,是否是这样计算的?
问题3:我想用ADC+DMA+TIM触发的方式来做一个简易的示波器,方法就是通过TIM的定时触发ADC采样,将采样值装入DMA缓存中,DMA装满后触发LCD刷新程序。
有一个概念我不是很清楚,比如我一屏采100个点,要能显示400HZ的正弦信号,是不是说我ADC采样速率至少要100*400=40KHZ的速率呢?

若有更好的采样方式,请告知我一下,谢谢!
沙发
KC_CEC|  楼主 | 2013-8-5 21:17 | 只看该作者
现在基本上解决了示波器的问题,其采样周期的准确性还未验证。

使用特权

评论回复
板凳
KC_CEC|  楼主 | 2013-8-6 10:22 | 只看该作者

再仔细看手册,发现其转换时间和转换位数也有关系。最开始我那个计算是按12位计算的,位数越少,转换越快

使用特权

评论回复
地板
KC_CEC|  楼主 | 2013-8-8 10:25 | 只看该作者
现在通过定时器触发AD采样,放入DMA缓存中。采样间隔是0.5us,也就是2M的频率了,效果还是挺稳定的。已经能够满足我的要求了,结贴了。

使用特权

评论回复
5
自信d面对| | 2014-3-13 22:18 | 只看该作者
求开源啊。楼主

使用特权

评论回复
6
KC_CEC|  楼主 | 2014-3-14 10:26 | 只看该作者
自信d面对 发表于 2014-3-13 22:18
求开源啊。楼主

仅仅是测试这个功能而已,示波器根本就不完善。网上一搜一大堆的stm32 示波器的源码啊

使用特权

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

本版积分规则

20

主题

169

帖子

1

粉丝