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:
谢谢,您的回答,突然想起这个实验在另一个板子上做的,呵呵不好意思,你说对了 谢谢。