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

F28335的ADC使用外部基准的问题

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

Forrest:

这里的ADC_cal同时针对内部和外部的基准,为了芯片能够达到datasheet说的ADC Electrical Characteristics,所以无论用内部还是外部的基准都要调用ADC_cal。

文档中说明的ADC_cal中的AAAA,BBBB只是代称,在实际芯片中会根据不同芯片给予不同值。

如果还希望进一步矫正,可以参考下面的文档:

www.ti.com/…/litabsmultiplefilelist.tsp

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

shen lee:

回复 Forrest:

谢谢,Forrest的回答

AAAA,BBBB是代称,我也验证。

另一疑问:在ADC_cal前已执行AdcRegs.ADCREFSEL.bit.REF_SEL = 1;即使用外部2.048v的基准,在执行ADC_cal后该位变为0了,我是否需要再执行AdcRegs.ADCREFSEL.bit.REF_SEL = 1呢?

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

Forrest:

回复 shen lee:

ADC_cal只需要在启动时调用一次,至于您说的,在执行ADC_cal后,只能修改 ADCREFSEL.bit.REFSEL,不能修改ADCREFSEL全部。

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

shen lee:

回复 Forrest:

好的,谢了

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

shen lee:

回复 Forrest:

你好,以下是我的ADC初始化代码

#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

ADC的输入信号是直流1.024v 使用内部基准采样的结果是1355 使用外部基准采样结果为1100,显然使用外部基准的采样结果是不正确的,但我想请教ADC使用外部基准的详细流程或初始化代码,谢谢

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

shen lee:

回复 Forrest:

你好,以下是我的ADC初始化代码

#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

ADC的输入信号是直流1.024v 使用内部基准采样的结果是1355 使用外部基准采样结果为1100,显然使用外部基准的采样结果是不正确的,但我想请教ADC使用外部基准的详细流程或初始化代码,谢谢

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

shen lee:

回复 Forrest:

你好,以下是我的ADC初始化代码

#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

ADC的输入信号是直流1.024v 使用内部基准采样的结果是1355 使用外部基准采样结果为1100,显然使用外部基准的采样结果是不正确的,但我想请教ADC使用外部基准的详细流程或初始化代码,谢谢

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

shen lee:

回复 Forrest:

你好,以下是我的ADC初始化代码

#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

ADC的输入信号是直流1.024v 使用内部基准采样的结果是1355 使用外部基准采样结果为1100,显然使用外部基准的采样结果是不正确的,但我想请教ADC使用外部基准的详细流程或初始化代码,谢谢

F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。

shen lee:

回复 Forrest:

谢谢,您的回答,突然想起这个实验在另一个板子上做的,呵呵不好意思,你说对了 谢谢。

赞(0)
未经允许不得转载:TI中文支持网 » F28335的ADC使用外部基准的问题
分享到: 更多 (0)