TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28335: ADC采样ACQ_PS怎么设置

Part Number:TMS320F28335

我在修改TMS320F28335  ADC配置:AdcRegs.ADCTRL1.bit.ACQ_PS = 1为AdcRegs.ADCTRL1.bit.ACQ_PS = 0xF 会影响通道的采样时间吗?我修改后,用软件启动采样,用通用输出管脚监控下边程序执行时间,并没有变化,按照自己的理解,修改后采样时间会变化,下边执行时间应该也有变化,不变是为什么?谢谢!

AdcRegs.ADCTRL2.all = 0x2000;
while (AdcRegs.ADCST.bit.INT_SEQ1== 0){}
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;

下边是ADC配置:

AdcRegs.ADCTRL1.bit.SUSMOD=3;//仿真器挂起后,ADC停止
AdcRegs.ADCTRL1.bit.ACQ_PS = 0xF; // zdh 1
AdcRegs.ADCTRL1.bit.CPS = 0;//ADCLOCK=HISCLK/1
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //级联排序模式
AdcRegs.ADCTRL1.bit.CONT_RUN = 0;// start-stop mode
AdcRegs.ADCTRL1.bit.SEQ_OVRD=0;//

AdcRegs.ADCTRL2.bit.EPWM_SOCB_SEQ=0;
AdcRegs.ADCTRL2.bit.RST_SEQ1=1;
AdcRegs.ADCTRL2.bit.SOC_SEQ1=0;
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0;//forbid ADC 中断
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 0x0;//不允许adc被epwm启动
AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=0;
AdcRegs.ADCTRL2.bit.RST_SEQ2=0;
AdcRegs.ADCTRL2.bit.SOC_SEQ2=0;
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2=0;
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ2=0;
AdcRegs.ADCTRL2.bit.EPWM_SOCB_SEQ2=0;

//AdcRegs.ADCTRL3.bit.SMODE_SEL = 0x1; // Setup simultaneous sampling mode
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // Cascaded mode(ADCMAXCONV设置为0~15)
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x6; // 
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0xA; // 
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x2;
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x7; // 
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x6; // 
AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0xA; // 
AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x2; // 
AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 0x8;
AdcRegs.ADCCHSELSEQ3.bit.CONV09 = 0x9;
AdcRegs.ADCCHSELSEQ3.bit.CONV10 = 0x7; // 
AdcRegs.ADCCHSELSEQ3.bit.CONV11 = 0xA; // 
AdcRegs.ADCCHSELSEQ4.bit.CONV12 = 0x2; // 
AdcRegs.ADCCHSELSEQ4.bit.CONV13 = 0xD;
AdcRegs.ADCCHSELSEQ4.bit.CONV14 = 0xE;
AdcRegs.ADCCHSELSEQ4.bit.CONV15 = 0xF;

AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0xF; //队列里16次转换
AdcRegs.ADCTRL2.bit.RST_SEQ1=1;//
AdcRegs.ADCTRL1.bit.CONT_RUN = 1;//每次启动AD转换只有当最大转换通道转换后重新开始(0:启停方式,1:持续转换)
AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1;// Sequencer override feature,转换完成之后通道指针重新开始

Green Deng:

你好,不知道你的GPIO监控点设置在程序什么位置?以及你提到的“采样时间会变化”是指单次采样的时间还是指采样频率对应的时间?

修改ACQ_PS会影响单次采样时间,也就是从采样保持到转换结束的时间

这个可以看TRM的7.3.2.1 Sequential Sampling Mode标示的挺清楚的

,

donghui zhang:

您好,我是这么监控的:

GpioDataRegs.GPBCLEAR.bit.GPIO58 = 1;   // 监控GPIO拉低

AdcRegs.ADCTRL2.all = 0x2000; while (AdcRegs.ADCST.bit.INT_SEQ1== 0){} AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;

GpioDataRegs.GPBSET.bit.GPIO58 = 1;        // 监控GPIO拉高

我也是看的手册这部分才理解为改变ACQ_PS,单次采样时间会变化,然后监控的这段程序时间不应该变化吗?也就是各个通道全部采样完成并更新的总时间不会加长吗?

还有就是单次采样时间和采样频率对应的时间不同吗?您能给解释一下吗?

,

Green Deng:

这个其实跟吃饭是一个道理。

单词采样就是每次吃饭的时间,采样频率可以看成每天吃饭的频率。

采样分采样保持和转换两个阶段,采样保持看成进食阶段,转换看成消化阶段。

改变进食的时间可以改变单次吃饭的时间,但是每天吃饭的频率不会改变。

当然,如果是吃完这顿马上吃下一顿的采样模式,那采样频率对应的时间还是跟采样保持时间有关系的。

比较笼统,不知道能否理解。

赞(1)
未经允许不得转载:TI中文支持网 » TMS320F28335: ADC采样ACQ_PS怎么设置
分享到: 更多 (0)