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.

TMS320F28379D: 关于adc_ex6_soc_continuous_dma例程的问题

Part Number: TMS320F28379D
Other Parts Discussed in Thread: TMS320F28335

问题1.

如上图所示,例程中DMA通道2的源地址为ADCBRESULT_BASE,这个应该不对,因为使用的是ADCD这个ADC模块,请TI工程师确认一下

问题2.

如上图所示,ADCA和ADCD是同步采样的,所以ADCA2(ADCA单元中断2)和ADCD2(ADCD单元中断2)是同时发生的,但是从原理上讲,用DMA_TRIGGER_ADCD2作为DMA通道2的触发信号是不是更合理

问题3.

工程默认的采样窗口是75nS,我不清楚例程为什么要把采样窗口设置成这样,但是对于TMS320F28379D的LaunchPad开发板而言,这个采样时间过短,下面是对输入1.632V输入信号的采样结果

输入1.632V对应的理论转换结果为2228,可以发现图中的转换结果明显偏小 

加大采样窗口后,可以得到准确的结果,如下图所示,ACQPS设定为163

我的计算是按照TRM中的相关章节11.15.2 Choosing an Acquisition Window Duration,如下图所示

由于LaunchPad各ADC通道没有Rs和Cs所以我假定了一组数值,因此有可能不准确。不过在此提醒大家使用ADC单元的时候计算一下最小采样窗口,同时注意各个通道的Cp值是不一样的,

TMS320F28379D的ADC通道CH值为14.5pF,对比一下TMS320F28335ADC通道CH1.64pF,虽然TMS320F28379Ron电阻为425Ω,比TMS320F28335Ron电阻1KΩ小一些,但是由于TMS320F28379DCH数值较大,因此建议采用相对小些的Rs电阻以减小最小采样窗口从而减小对时间敏感型应用的影响

问题4.

不太清除上述代码片段中高亮语句的作用,注释掉以后,代码运行没有发现异常

看起来是使能了对counter 2的初始化

但是例程并没有使用counter2,我没有找到哪里将SOCPSSEL配置成了1

问题5.

SOCBCNT2(SOCACNT2)在SOCB(SOCA)产生的时候,会被清零吗?如果不会被清零,那是不是要手动清零呢?

问题6.

srcStep为-14是因为16个结果寄存器,以32bit的大小进行传输,最后一次传输地址指针指向ADCRESULT14,所以在开始新的burst传输时需要将地址指针减去14用以使指针指向ADCRESULT0,请问这个理解对吗?

destStep为2是不是也是因为以32bit的大小进行传输,最后一次传输时地址指针指向addr1.14,每次传输16个16bit的结果,所以需要使addr1.14+2 = addr2.0 从而开始新的16个16bit结果的存储,请问这个理解对吗?