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.

关于dsp28377 adc过采样的问题

Other Parts Discussed in Thread: CONTROLSUITE

使用28377 的4路ADC来构建采样率为12Mhz的过采样;芯片说明上写明单路ADC的采样率为3.3Mhz;四路合成采样率能够达到12Mhz;

实现方法 :通过4路epwm来循环触发ADC采样。

部分代码如下所示:

问题 : 

1、使用的是28377d中v180的epwm_adc历程修改而来。用4路epwm来循环采样,但是每一路epwn都是通过寄存器写值一次开启;这样会不会影响采样信号的相位?有没有什么方法可以同步开启4路epwm;而没有因顺序开启而造成的时间差(除了使用外部触发同步,因为我没有外部线)。

2、我将触发时间设置为第一幅图所示:两路ADC之间的采样间隔时间为80ns;使得采样率达到12Mhz;但是采样后得到的数据是错的,连500khz的信号采集回来fft的结果都不对?是这其中还有什么需要注意的地方吗?

请指教:

havihouston@outlook.com

  • 1. 问题1

    看PWM的例程:TBCLKSYNC可以用来同时启动几个PWM模块同时计数。

    //
    // For this example, only initialize the ePWM
    //
    EALLOW;
    CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;
    EDIS;

    InitEPwm1Example();
    InitEPwm2Example();
    InitEPwm3Example();

    EALLOW;
    CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;
    EDIS;

    问题2. 

    不知道你用的是哪个版本的芯片,你先看一下勘误表,ADC初始化有些地方需要注意。

    另外, 你先参考例程,先做出一路ADC能采样出对的数据,然后依次再做出另外三路。

    C:\ti\controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Cpu1\adc_soc_epwm

    ERIC

  • 谢谢您的帮助。我再看看

  • 你最后有成功吗?我一直搞不定,上5M都困难,不论是用类似你的在主函数循环中获取采样数据,还是在中断中获取,都不行,都遇到芯片主频不够的问题,if语句与从寄存器读取数据,保存等都需要时间,采样频率一高,这些操作的时间就不够了,测了一下,读取一个数据,各项代码加起来要40多个周期,200M主频下根本达不到5M频率,我只试过可以2.5M频率正确采样,再高就出问题了……
    不知道朋友最后用什么方法搞定的高速采样?
  • 我也在搞这个高速采样,但是搞不定,可以做到单路2M采样频率,两路和起来却也只能达到2.5M,更多路也没法增加频率,因为主频不够了,我是epwm触发后到ADC中断记录数据,但仅仅进中断,记录数据操作,出中断会主循环就要40个周期,主频也只有200M,因此一直没法吧采样频率提上去;
    即使类似这个问题中的方法,在主循环中记录采样数据,通道数3个以上后,会更耗费时钟资源,导致来不及记录数据,也只能达到2.5M的样子,如果要想10M以上采样频率,那只有不断20个指令留下来记录数据用,根本不够用?
    不知道有没什么方案可以达到高频率采样?