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

关于28069 ADC最高采样速率的疑问

      我在ADC中断中放了让某个IO口状态反转的语句通过示波器查看该IO口输出的PWM波来确定ADC的采样速率,发现ADC采样速率最高只达到625KHz,请问这是为什么。有关ADC的设置如下:

InitAdc(); //ADC初始化
AdcOffsetSelfCal();
//使用内部基准电源VREFLO在内部与ADC连接,用于采样,选择ADCINB5作为所有的SOC
//选择外部引脚ADCIN5连接到B5
EALLOW;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN0 = 1; //SOC0/SOC1的同步采样使能
AdcRegs.ADCSOC0CTL.bit.CHSEL = 4; //SOC0通道选择ADCINA4
AdcRegs.ADCSOC1CTL.bit.CHSEL = 12; //SOC1通道选择ADCINB4
AdcRegs.ADCSOC0CTL.bit.ACQPS = 23; //采样时间
AdcRegs.ADCSOC1CTL.bit.ACQPS = 23;
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 2; //SOC0触发选择CPU定时器1
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //结果锁存到寄存器前的1个周期产生INT脉冲
AdcRegs.INTSEL1N2.bit.INT1SEL = 0; //EOC0是ADCINT1的触发源
AdcRegs.INTSEL1N2.bit.INT1CONT = 0; //在用户清除ADCINT1标志后才再产生ADCINT1脉冲
AdcRegs.INTSEL1N2.bit.INT1E = 1; //ADCINT1中断使能
EDIS;

囧:

ADC的采样周期决定于触发源的触发周期,你的触发源是CPU Timer1,如上面的代码,那你的采样周期625K就决定于CPUtimer,另外你的ACQPS,采样窗大小会决定你最小能达到的采样周期,采样时间越长,采样精度会越高,反之越低,如果触发源的周期小于采样窗时间了,那你的采样周期才由采样窗时间+转换时间+锁存时间决定。

InitAdc(); //ADC初始化AdcOffsetSelfCal();//使用内部基准电源VREFLO在内部与ADC连接,用于采样,选择ADCINB5作为所有的SOC//选择外部引脚ADCIN5连接到B5EALLOW;AdcRegs.ADCSAMPLEMODE.bit.SIMULEN0 = 1; //SOC0/SOC1的同步采样使能AdcRegs.ADCSOC0CTL.bit.CHSEL = 4; //SOC0通道选择ADCINA4AdcRegs.ADCSOC1CTL.bit.CHSEL = 12; //SOC1通道选择ADCINB4AdcRegs.ADCSOC0CTL.bit.ACQPS = 23; //采样时间AdcRegs.ADCSOC1CTL.bit.ACQPS = 23;AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 2; //SOC0触发选择CPU定时器1AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //结果锁存到寄存器前的1个周期产生INT脉冲AdcRegs.INTSEL1N2.bit.INT1SEL = 0; //EOC0是ADCINT1的触发源AdcRegs.INTSEL1N2.bit.INT1CONT = 0; //在用户清除ADCINT1标志后才再产生ADCINT1脉冲AdcRegs.INTSEL1N2.bit.INT1E = 1; //ADCINT1中断使能EDIS;

赞(0)
未经允许不得转载:TI中文支持网 » 关于28069 ADC最高采样速率的疑问
分享到: 更多 (0)