This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
F28335的ADC使用外部基准时,就无需调用ADC_cal了吧?? 疑问:由于处理器始终按3.0v(并非真正的)来计算输入的模拟电压值的,处理器应该需要知道内部3.0v与真实的3.0v之间的差异吧,告诉处理器外部是2.048v的基准后,处理器应该根据此refer来执行一段校准程序以校准内部3.0v与真实的差值的吧??而ADC_cal是内部校准用的,那外部怎么校准呢,需要校准么??我已按照powerup 顺序写了程序的。。。。。
这里的ADC_cal同时针对内部和外部的基准,为了芯片能够达到datasheet说的ADC Electrical Characteristics,所以无论用内部还是外部的基准都要调用ADC_cal。
文档中说明的ADC_cal中的AAAA,BBBB只是代称,在实际芯片中会根据不同芯片给予不同值。
如果还希望进一步矫正,可以参考下面的文档:
谢谢,Forrest的回答
AAAA,BBBB是代称,我也验证。
另一疑问:在ADC_cal前已执行AdcRegs.ADCREFSEL.bit.REF_SEL = 1;即使用外部2.048v的基准,在执行ADC_cal后该位变为0了,我是否需要再执行AdcRegs.ADCREFSEL.bit.REF_SEL = 1呢?
你好,以下是我的ADC初始化代码
#if USING_INTERNAL_REF
//internal ref
InitAdc();
#else
//external ref
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使用外部基准的详细流程或初始化代码,谢谢
你好,以下是我的ADC初始化代码
#if USING_INTERNAL_REF
//internal ref
InitAdc();
#else
//external ref
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使用外部基准的详细流程或初始化代码,谢谢
你好,以下是我的ADC初始化代码
#if USING_INTERNAL_REF
//internal ref
InitAdc();
#else
//external ref
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使用外部基准的详细流程或初始化代码,谢谢
你好,以下是我的ADC初始化代码
#if USING_INTERNAL_REF
//internal ref
InitAdc();
#else
//external ref
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使用外部基准的详细流程或初始化代码,谢谢