主题中讨论的其他器件:C2000WARE、 TMDSCNCD28335
团队、
请在以下方面提供帮助?
尽管在 ADC 初始化期间进行了自动校准、但我们仍会看到 ADC 转换错误(超过130 LSB)。
有什么想法吗?
请参阅下面的代码片段。
// ADC 校准
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK=1;
(* ADC_Cal)();
SysCtrlRegs.PCLKCR0.bit.ADCENCLK=0;
EDIS;
/*
*配置 ADC、MODE SEQ
*
EALLOW;
#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0MHz
SysCtrlRegs.HISPCP。all = ADC_MODCLK;// HSPCLK = SYSCLKOUT/ADC_MODCLK
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;
EDIS;
AdcRegs.ADCREFSEL.ALL = 0; //内部基准
AdcRegs.ADCTRL3.ALL = 0x00E0; //加电基准/ADC 电路/顺序采样
DELAY_US (5000L);
AdcRegs.ADCMAXCONV.ALL = 12; // 13个模拟通道
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //模式级联 SEQ 16.
AdcRegs.ADCTRL1.bit.ACQ_PS = 15;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x8; // ADCINB0
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x9; // ADCINB1
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0xA; // ADCINB2
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0xb; // ADCINB3
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0xc; // ADCINB4
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x0; // ADCINA0
AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x1; // ADCINA1
AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x2; // ADCINA2
AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 0x3; // ADCINA3
AdcRegs.ADCCHSELSEQ3.bit.CONV09 = 0x4; // ADCINA4
AdcRegs.ADCCHSELSEQ3.bit.CONV10 = 0x5; // ADCINA5
AdcRegs.ADCCHSELSEQ3.bit.CONV11 = 0x6; // ADCINA6
AdcRegs.ADCCHSELSEQ4.bit.CONV12 = 0x7; // ADCINA7
AdcRegs.ADCTRL2.bit.ePWM_SOCA_SEQ1 = 1;// ePWM4
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; //
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1 = 0; //