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.

[参考译文] CCS/TMS320F28379D:测试 ADC_SoC_Continuous_cpu01示例时 SOC8出现问题

Guru**** 2594290 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/668611/ccs-tms320f28379d-trouble-with-soc8-when-testing-adc_soc_continuous_cpu01-example

器件型号:TMS320F28379D

我正在测试示例软件 ADC_SoC_Continuous_cpu01、以从连接到 ADC 引脚的函数发生器获取正弦波(我正在使用 launchxl 板)。

在此程序中、触发 SOC 0至7、然后 EOC6触发 SOC 8至15、因此第二组 SOC 开始采集、而结果0至7存储在缓冲器中; EOC14触发 SOC 0至7、这些 SOC 开始采集、而结果8至15存储在缓冲区中;该周期重复、直到缓冲区已满。

发送到 ADC 的信号是频率为50kHz 的正弦波。 下图显示了采集结果:

您可以看到、SOC8的结果始终存在问题。 我尝试通过对这些行进行注释来排除 SOC8

//AdcaRegs.ADCINTSOCSEL2.bit.SOC8 = 1; 

在 configureADC()例程中,和

//AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT8; 

在 main()中,即首先触发 SOC 0至7,第二触发 SOC 9至15,不使用 SOC8。 通过这种方式、我获得正确的结果:

我已验证我在 ADCA、ADCB 和 ADCC 中的 SOC8有相同的问题。 此外、我有两个 launchxl 板、我对这两个板都有相同的问题。

是否有人可以解释这个奇怪的错误以及如何解决(如果可能)?

此致、

弗朗西斯科

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Francesco:

    在未设置 SOC8 ACQPS 的示例中、似乎存在错误:

    AdcaRegs.ADCSOC0CTL.bit.ACQPS = acqps;//采样窗口为 acqps + 1个 SYSCLK 周期
    AdcaRegs.ADCSOC1CTL.bit.ACQPS = acqps;//采样窗口为 acqRegs.ADCSOC1CTS.bit.ACQPS =
    
    1个 acqqcqps + 1个 SYSCCLK 周期;ADCCPS.ADCCPS.ADCCPS.ADCCPS.ADCCPS.ADCCPS.ADCCPS.ADCCPS.ADQPS = 1个 SYacqcacqcacqcacqs = 1个 SYacqcacqcacq.acq.acq.acqs 周期;//采样窗口为1个 SYSCCCPs.acqcacqcacqcacqcacq.ADCtps = 1
    //采样窗口为 acqps + 1个 SYSCLK 周期
    AdcaRegs.ADCSOC5CTL.bit.ACQPS = acqps;//采样窗口为 acqps + 1个 SYSCLK 周期
    AdcRegs.ADCSOC6CTL.bit.ACQPS = acqps;//采样窗口为 acqCLps + 1
    个 SYCCQCLK.ADCROCQ 周期;ADCQCLK 周期为 acq.ADCROCQ = 1个 SYCCS.ADCQ 周期。
    //采样窗口为 acqps + 1个 SYSCLK 周期
    AdcaRegs.ADCSOC10CTL.bit.ACQPS = acqps;//采样窗口为 acqps + 1个 SYSCLK 周期
    AdcRegs.ADCSOC11CTL.bit.ACQPS = acqps;//采样窗口为 acqCLps + 1
    个 SYCCQCLK 周期
    ;ADCROC12CQ = ADCQCk.ADCcacqCLPS = 1个 SYCC.ADCROCQ 周期;ADCQ 周期为 acqCLK 周期;ADCQ = acqCLK.ADCQ = 1个 SYCC.ADCROCQ = 1个 SYCC.ADCQ 周期。 //采样窗口为 acqps + 1个 SYSCLK 周期
    AdcaRegs.ADCSOC14CTL.bit.ACQPS = acqps;//采样窗口为 acqps + 1个 SYSCLK 周期
    AdcaRegs.ADCSOC15CTL.bit.ACQPS = acqps;//采样窗口为 acqLs + 1个 SYSCLK 周期 

    这会根据'ACQPS'寄存器的默认复位值导致一个无效的 S+H 时间。