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.

F28M35 ADC配置的理解



您好:

       1、最近在看F28M35的ADC相关的配置。首先说下我的理解:

a、配置采样通道,即配置采样管脚和SOCx的联系,如配置ADC1A0的通道为SOC1,Adc1Regs.ADCSOC0CTL.bit.CHSEL      = 0; 

b、定义触发源TRIGxSEL(1-8个)的类别,如将EPWM1SOCA(序号为5)赋给第1个触发源TRIG1SEL,AnalogSysctrlRegs.TRIG1SEL.all     = 5;

c、将类别已定义好的TR1GxSEL赋给相应的SOCx。 如将ADC trigger1 赋给SOC0,Adc1Regs.ADCSOC0CTL.bit.TRIGSEL    = 5;

d、配置采样窗口。

e、如果需要中断的话,可以配置INTSELxNy来设置触发中断的EOC。

我的理解有哪些错误的地方?

2、我再看例程中有 overlap mode 和non-overlap mode 的选择,这两个有什么区别?

3、我要采样16路信号,全部采集完后产生中断。我想可以设置EOC15来触发ADCINT1。那我触发源TRIGxSEL的选择什么呢,如1中选择序号为5,EPWM1SOCA?还有用EOC15触发中断,是不是能保证16路的采集结果已经全部完成转换,并保存在了16个结果寄存其中了?

谢谢指导!

  • timerrain,

    1. ADC的机制是SOC机制,即通过配置16个SOC的采样通道,触发源,采样保持时间来实现AD功能。

    a, 正确的说法是,配置SOC1采样A0通道, CHSEL = 0.

    b, 正确,8个触发源,每一个SOC都可以配置为任意的触发源。

    c, 正确。

    d, e 正确。

    2. 这里建议你参考ADC的user guide,里面有说明,简单来讲就是一个SOC会先采样,然后再进行转换。overlap的意思就是在前一个SOC转换的时候,下一个SOC可以开始采样了。这样可以节省时间,类似流水线的意思。

    3. 设置16个SOC,每个SOC的触发源都是一样的,如EPWM1SOCA,这样当触发信号来的时候,就会采样这16个SOC,按照默认采样优先级。可以设置EOC15触发中断,在转换完SOC15的时候,就会触发中断信号。

    Eric

  • 谢谢您的专业指导。我还有个问题,TRIGxSEL是可以任意选的吗?那些触发源总该是有区别的啊,比如我这个设计要求和EPWM是没关系的,触发源能设置成EPWM1SOCA?如果不是,我这个设计是选择什么?

  • timberrain,

    触发源理论上是可以从那8个触发源任意选的。但具体选择哪个触发源,还是要根据实际应用。比如说,常见的是采用Epwm来触发一个SOC。另外也有用timer来触发的。还是需要根据你自己的算法来设计。你的设计可以是EPWM产生触发。

    Eric