我在TMS320F28335的应用中采用了2.048V外部电压基准,我在ADCINA0~3输入1.024V直流信号,查看AD转换的值总是在1388~1410之间.感觉基准电压还是3V.我已经设置AdcRegs.ADCREFSEL.bit.REF_SEL=1 .我理解此时的AD采样值应该在2048附近.不知是我理解错了,还是有什么问题没有注意到,请指教,谢谢!
Forrest:
无论外面用多少的参考,范围永远是0~3V:
Digital Value = 4096*(Input Analog Voltage-ADCLO)/3
我在TMS320F28335的应用中采用了2.048V外部电压基准,我在ADCINA0~3输入1.024V直流信号,查看AD转换的值总是在1388~1410之间.感觉基准电压还是3V.我已经设置AdcRegs.ADCREFSEL.bit.REF_SEL=1 .我理解此时的AD采样值应该在2048附近.不知是我理解错了,还是有什么问题没有注意到,请指教,谢谢!
shen lee:
使用外部基准后 按照ADC的powerup过程即可? 就不用再校准了?
我在TMS320F28335的应用中采用了2.048V外部电压基准,我在ADCINA0~3输入1.024V直流信号,查看AD转换的值总是在1388~1410之间.感觉基准电压还是3V.我已经设置AdcRegs.ADCREFSEL.bit.REF_SEL=1 .我理解此时的AD采样值应该在2048附近.不知是我理解错了,还是有什么问题没有注意到,请指教,谢谢!
shen lee:
你好,你使用外部基准时的初始化流程怎样的,我发现执行ADC_cal()后,参考源选择位就变成0了!!你有没发现啊
我使用外部基准后,采样的AD值又不对了,1.024v内部基准时1355 外部时1100了!!!
下面是我的初始化代码你看一下哪里不对的,请指教,谢谢
#if USING_INTERNAL_REF
//internal ref
InitAdc();
#else
//externalref
AdcRegs.ADCREFSEL.bit.REF_SEL = 1;//0: use internal ref 1: use 2.048V
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;
ADC_cal();
EDIS;
AdcRegs.ADCREFSEL.bit.REF_SEL = 1;//0: use internal ref 1: use 2.048V
AdcRegs.ADCTRL3.all = 0x00E0; // all the analog circuitry besides bandgap/reference/ADC circuits
DELAY_US(5000L);
#endif
我在TMS320F28335的应用中采用了2.048V外部电压基准,我在ADCINA0~3输入1.024V直流信号,查看AD转换的值总是在1388~1410之间.感觉基准电压还是3V.我已经设置AdcRegs.ADCREFSEL.bit.REF_SEL=1 .我理解此时的AD采样值应该在2048附近.不知是我理解错了,还是有什么问题没有注意到,请指教,谢谢!
xiaonan zhang:
回复 shen lee:
从上边的内容看,我感觉可能是你提供的外部基础不够准确,或者说和TI校准的值有比较大的偏差。