TMS320F28P550SG: 28P55ADC使用外部2.5V参考电压基准采样值不对

Part Number: TMS320F28P550SG

电路板 VREFHI链接外部参考电源芯片的2.5V,VREFLO接模拟地,AD引脚输入1.25V时ADC的转换结果大概只有1180,请帮忙看看ADC初始化哪里出了问题?谢谢

ADC的初始化程序如下:

AdcBaseAddr[0] = ADCA_BASE;
AdcBaseAddr[1] = ADCB_BASE;
AdcBaseAddr[2] = ADCC_BASE;
AdcBaseAddr[3] = ADCD_BASE;
AdcBaseAddr[4] = ADCE_BASE;
SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_ADCA);
SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_ADCB);
SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_ADCC);
SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_ADCD);
SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_ADCE);

EALLOW;
ASysCtl_disableTemperatureSensor();
// Set the analog voltage reference selection to external.
ASysCtl_setAnalogReferenceExternal(ASYSCTL_ANAREF_VREFHI_ADCA | ASYSCTL_ANAREF_VREFHI_ADCB | ASYSCTL_ANAREF_VREFHI_ADCC | ASYSCTL_ANAREF_VREFHI_ADCD | ASYSCTL_ANAREF_VREFHI_ADCE);
ASysCtl_setVrefHiReferenceVREFHI(ASYSCTL_ANAREF_VREFHI_ADCA | ASYSCTL_ANAREF_VREFHI_ADCB | ASYSCTL_ANAREF_VREFHI_ADCC | ASYSCTL_ANAREF_VREFHI_ADCD | ASYSCTL_ANAREF_VREFHI_ADCE);
ASysCtl_setVrefLoReferenceVREFLO(ASYSCTL_ANAREF_INTREF_ADCA | ASYSCTL_ANAREF_INTREF_ADCB | ASYSCTL_ANAREF_INTREF_ADCC | ASYSCTL_ANAREF_INTREF_ADCD | ASYSCTL_ANAREF_INTREF_ADCE);
//ASysCtl_setAnalogReference2P5( ASYSCTL_ANAREF_ADCA | ASYSCTL_ANAREF_ADCB | ASYSCTL_ANAREF_ADCC | ASYSCTL_ANAREF_ADCD | ASYSCTL_ANAREF_ADCE );// Set the internal analog voltage reference selection to 2.5V.
// ADC Initialization: Write ADC configurations and power up the ADC
for(i = 0; i < 5; i++)
{
ADC_setVREF(AdcBaseAddr[i], ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_VREFHI);
//ADC_setOffsetTrim(AdcBaseAddr[i]);
ADC_setPrescaler(AdcBaseAddr[i], ADC_CLK_DIV_2_0);// Configures the analog-to-digital converter module prescaler.
ADC_setInterruptPulseMode(AdcBaseAddr[i], ADC_PULSE_END_OF_CONV);// Sets the timing of the end-of-conversion pulse
ADC_enableConverter(AdcBaseAddr[i]);// Powers up the analog-to-digital converter core.
DEVICE_DELAY_US(5000);// Delay for 1ms to allow ADC time to power up
//ADC_enableAltDMATiming(AdcBaseAddr[i]);// Enable alternate timings for DMA trigger
ADC_disableBurstMode(AdcBaseAddr[i]);// Disables SOC burst mode.
ADC_setSOCPriority(AdcBaseAddr[i], ADC_PRI_ALL_HIPRI);// Sets the priority mode of the SOCs.
}
DEVICE_DELAY_US(50000);