This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

2812的AD采样率



你好!我用的2812的内部AD进行数据采集,需要设置大概4MHZ左右的采样率。但是我现在通过事件管理器方式来启动AD转换,单通道采集,能达到的最高采样率似乎不到1MHZ。所以我想请问一下2812的理论最高采样率为12.5MHZ,但实际上单通道能达到的最高采样率为多少?需要如何设置?因为如果软件设置无法实现的话,可能就得转向硬件了,可能会比较麻烦。比较急,希望能尽快获得解答。谢谢了!

  • 您好!

    SYSCLKOUT是多少?ADCCLK设置的是多少?ADC的触发源是什么?触发源的频率是多少?触发源的频率决定了ADC采样率。建议您将SYSCLKOUT设置为150MHz,ADCCLK设置为25MHz。

  • 谢谢您的回答。

    SYSCLKOUT是150MHZ,通过   SysCtrlRegs.HISPCP.all = 0x0001;和 SysCtrlRegs.LOSPCP.all = 0x0002;将高速时钟和低速时钟分别设置为75MHZ和37.5MHZ,ADCCLK设置为37.5MHZ,ADC的触发源是EVA通用定时器2的周期中断启动ADC,事件管理器EvaRegs.T2PR =8,触发源的频率设为37.5/(8+1)=4.17MHZ。所以AD的采样率应该也是4M左右,但是实际上实验发现几乎不到1MHZ,所以我在疑惑,是不是2812单通道硬件无法实现?

    谢谢了!

  • 谢谢您的回答。

    SYSCLKOUT是150MHZ,通过   SysCtrlRegs.HISPCP.all = 0x0001;和 SysCtrlRegs.LOSPCP.all = 0x0002;将高速时钟和低速时钟分别设置为75MHZ和37.5MHZ,ADCCLK设置为37.5MHZ,ADC的触发源是EVA通用定时器2的周期中断启动ADC,事件管理器EvaRegs.T2PR =8,触发源的频率设为37.5/(8+1)=4.17MHZ。所以AD的采样率应该也是4M左右,但是实际上实验发现几乎不到1MHZ,所以我在疑惑,是不是2812单通道硬件无法实现?

    谢谢了!

  • ADCCLK最高频率为25Mhz。

    是不是2812单通道硬件无法实现?我不明白这句话的意思。C2000的ADC就是硬件来实现的啊!

  • 谢谢你了!

    最高频率为25MHZ应该怎么设置呢?我将系统时钟分频为75MHZ,然后通过AdcRegs.ADCTRL3.bit.ADCCLKPS = 1;和AdcRegs.ADCTRL1.bit.CPS = 0;将ADC时钟分为37.5MHZ,如果系统时钟不分频或者ADCCLKPS设为0的话,采样到的信号就会很差。

    我看到有的论坛上说,一般2812单通道就只能做到不到1MHZ的采样率。而且因为中断响应时间较长,所以内部AD无法实现高于1MHZ的数据采集。

    因而,我现在很疑惑能不能通过软件设置达到。或者你有相关高采样率设置例程的话能不能发我一份。

    麻烦你了。

  • 您说的对!中断响应会有这个问题的,您试试轮询的方式。

    我这儿没有相应的例程,都是示例代码

  • 请问,什么是轮询方式?我这儿有个例程,说是能将采样率设置为8.3MHZ,但是我看了半天,都看不懂。能不能发给你,你帮我看一下。或者你那儿有示例代码的话能不能发我一下。我的邮箱:mrwoshishei@163.com.谢谢了。

  • 问题我没有很明白,但相信鸵鸟能帮你搞定,有两个概念却需要澄清。

    a. 需要设置大概4MHZ左右的采样率

    b. 2812的理论最高采样率为12.5MHZ

    采样周期,指的是每隔一定时间触发一次ADC采样,由用户通过软件设置,可改变;

    采样速度,指的是当ADC模块收到采样指令后,从采样,保持到完成转换所需要的时间,通常是固定的(如果固定采样窗口的话);

    通常来讲,采样速度对应的时间必须远小于采样周期对应的时间。

    这个说明应该指出了a和b的差别,你所提到的第一个采样率实际应该是采样周期,而第二个,也就是规格书上的指标,实际是ADC的采样速度。

  • 谢谢鸵鸟了,帮了我许多忙。还有谢谢10号。谢谢!