搜索
bottom↓
回复: 11

关于ADC快速采样的时间问题

[复制链接]

出0入4汤圆

发表于 2013-7-16 23:13:01 | 显示全部楼层 |阅读模式
关于ADC快速采样的时间问题,小弟现在拿TMS320F28069有一个大概在60K频率的信号要采集分析,要做FIR滤波,FFT分析之类的,请问大家,这个ADC采集的时间间隔重要吗?然后每个ADC值之间的时间用什么控制?
打个比方我要1M转换率速度采集的话,我1US的间隔用定时器还是软件延时?今天试了下拿定时器延时1US结果时间2US,出入中断时间太长了吧,感觉不可控,另外小弟初次弄FFT,请问这个时间间隔是怎么算的??间隔1US,2US随便来的??求推荐书恶补~~~谢谢

出675入8汤圆

发表于 2013-7-16 23:16:37 | 显示全部楼层
影响很大,必须精确控制好

出0入4汤圆

 楼主| 发表于 2013-7-16 23:31:34 | 显示全部楼层
xml2028 发表于 2013-7-16 23:16
影响很大,必须精确控制好

有什么书可以看?推荐推荐~~~大虾

出675入8汤圆

发表于 2013-7-16 23:36:58 | 显示全部楼层
The Scientist and Engineer's Guide to
Digital Signal Processing

出0入4汤圆

 楼主| 发表于 2013-7-16 23:47:22 | 显示全部楼层
xml2028 发表于 2013-7-16 23:36
The Scientist and Engineer's Guide to
Digital Signal Processing

3Q,先瞧瞧~~

出0入0汤圆

发表于 2013-7-17 10:38:24 | 显示全部楼层
定时器的时间间隔应该是准确的,不知道楼主在定时器的中断里有没有再次写入定时器的计数值,如果有的话去掉,然后再测试一下看看好使不,我用28335的时候就是写了计数值,然后时间不准,去掉了就好了,我测试定时1us没什么问题。

出0入4汤圆

 楼主| 发表于 2013-7-17 11:49:43 | 显示全部楼层
siyeb 发表于 2013-7-17 10:38
定时器的时间间隔应该是准确的,不知道楼主在定时器的中断里有没有再次写入定时器的计数值,如果有的话去掉 ...

我就在主循环里面跑的时候  开IO   延时1ms     关IO  延时1ms   很准的~~~~~机遇那个定时器延时的,我有代码

/******************************************************************************************
* Function Name  :
* Description    :初始化
* Input          :
* Return         :
*******************************************************************************************/
void Init_timer2delay(void)
{
    CpuTimer2.RegsAddr = &CpuTimer2Regs;
    CpuTimer2Regs.TPR.all  = 0x0008;  //分频90==59,即为1M  //分频9==8,即为10M
    CpuTimer2Regs.TPRH.all = 0;
    CpuTimer2Regs.TCR.bit.TSS = 1;    //停止定时器
    CpuTimer2Regs.TCR.bit.SOFT = 1;   //停止定时器
    CpuTimer2Regs.TCR.bit.FREE = 0;
}
/******************************************************************************************
* Function Name  :
* Description    :调用接口
* Input          :
* Return         :
*******************************************************************************************/

void Delay_100ns(unsigned int Cnt)
{
    /*定时器0每减一次用时1us*/
    CpuTimer2Regs.TCR.bit.TSS = 1;
    CpuTimer2Regs.PRD.all  = Cnt;      //最大可到0xffff=65535。
    CpuTimer2Regs.TIM.all  = 0;
    CpuTimer2Regs.TCR.bit.TRB = 1;     //定时器重装
    CpuTimer2Regs.TCR.bit.TIF = 1;
    CpuTimer2Regs.TCR.bit.TSS = 0;     //启动
    while(CpuTimer2Regs.TCR.bit.TIF == 0);  //等待
    CpuTimer2Regs.TCR.bit.TSS = 1;     //停止
}

出0入0汤圆

发表于 2013-7-17 16:47:11 | 显示全部楼层
zhanyanqiang 发表于 2013-7-17 11:49
我就在主循环里面跑的时候  开IO   延时1ms     关IO  延时1ms   很准的~~~~~机遇那个定时器延时的,我有 ...

这种方式定时时间短了是否可控还需具体分析。

正好我也在弄fft,说些心得:

关于采样时间间隔

      采样时间间隔的确定首先要确定FFT的点数和需要采集多少周期。 参考《FFT的物理意义》 http://www.amobbs.com/thread-3944963-1-1.html
      这两个确定了就可以确定AD采样的时间,即采样频率。如果频率比较高还是用外部的AD靠谱。

关于采样频率

     当然,软件延时和定时器两种方式都可以,但是如果做FFT的话,当楼主读完上面那篇帖子的话估计心里就有数了。

     

出0入0汤圆

发表于 2013-8-10 15:02:49 | 显示全部楼层
siyeb 发表于 2013-7-17 16:47
这种方式定时时间短了是否可控还需具体分析。

正好我也在弄fft,说些心得:

软件定时是否就是while{nop;}?
我觉得精确timer定时中断比较准,效率高。

出0入0汤圆

发表于 2013-8-12 10:25:12 | 显示全部楼层
youpeng 发表于 2013-8-10 15:02
软件定时是否就是while{nop;}?
我觉得精确timer定时中断比较准,效率高。

正确说法应该是软件延时。用定时器的准确性肯定是比软件演示要好的。

出0入0汤圆

发表于 2013-8-12 21:27:28 | 显示全部楼层
siyeb 发表于 2013-8-12 10:25
正确说法应该是软件延时。用定时器的准确性肯定是比软件演示要好的。

主要是效率低,难以忍受。将dsp当mcu用了。

出0入0汤圆

发表于 2013-8-12 22:36:37 | 显示全部楼层
youpeng 发表于 2013-8-12 21:27
主要是效率低,难以忍受。将dsp当mcu用了。

效率低?怎么意思?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 02:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表