大家好、
我在其中一个 C2000板(定制)上遇到了这个奇怪的问题。 此板用于 PV 充电应用。
代码包含一个到 ADC 的 ePWM 触发器和被配置为运行 CLA 任务1的 ADCINT1。 ADC 使用12个通道。 ADC 转换时间是从 EPWM1 ISR 进入到 CLA 任务1进入使用示波器测得的。
条件1:无 PV 输入...
ADC 转换时间大约为2us。
条件2:我提供 PV 输入
ADC 转换时间似乎转换为5.5us。
无法找到发生这种情况的原因 ADC 模块转换时间是否可以根据物理输入进行更改?
在除 OVERLFOW 和 INT 标志清零之外的代码中、没有对 ADC 寄存器的引用... 我在下面提供 ADC 初始化代码...
EALLOW; AdcRegs.ADCCTL1.bit.ADCBGPWD=1; // Power ADC BG AdcRegs.ADCCTL1.bit.ADCREFPWD = 1; //电源参考 AdcRegs.ADCCTL1.bit.ADCPWDN = 1; // Power ADC AdcRegs.ADCCTL1.bit.ADCENABLE = 1; //启用 ADC AdcRegs.ADCCTL1.bit.ADCREFSEL = 1; //选择外部 AdcRegs.ADCCTL1.bit.INTPULSEPOS= 1;// ADCINT1在结果锁存 AdcRegs.ADCCTL2.bit.ADCONOVERLAP = 1; AdcRegs.ADCCTL2.bit.CLKDIV2EN = 1; AdcRegs.SEINT1e.INT1N 位 = 1;//启用 ADCINT1 AdcRegs.INTSEL1N2.bit.INT1CONT = 1;//启用连续模式 AdcRegs.INTSEL1N2.bit.INT1SEL= 6;// EOC6为 ADCINT1 AdcRegs.ADCSOC0CTL.bit.CHSEL= 0触发;// EOC6 > A0
AdcRegs.ADCSOC1CTL.bit.CHSEL= 1;// A1 >
AdcRegs.ADCSOC2CTL.bit.CHSEL= 8;// B0 > AdcRegs.ADCSOC3CTL.bit.CHSEL= 9;// B1 > AdcRegs.ADCSOC4CTL.bit.CHSEL= 10;// B2 >
AdcRegs.ADCSOC5CTL.bit.CHSEL= 11;// B3 >
AdcRegs.ADCSOC6CTL.bit.CHSEL= 12;// B4 >
AdcRegs.ADCSOC7CTL.bit.CHSEL= 13;// B5 >
//对应于4位硬件版本 的模拟变量读数 AdcRegs.ADCSOC8CTL.bit.CHSEL = 7;// A7位3引脚11 AdcRegs.ADCSOC9CTL.bit.CHSEL = 3;// A5位2引脚15 AdcRegs.ADCSOC10CTL.bit.CHSEL = 4;// ADCSOC9CTL.bit.CHSEL = 13引脚14;// ADCSOC.A4位 AdcRegs.ADCTRL = 0引脚14;ADCSOC.A3/ADCTRL = 0引脚14引脚14位 ADCTI.ADCTRL = 1;ADCTRL = ADCTRL = ADC13/ ADC13/ AD // EPWM1 SOCA AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 5;// EPWM1 SOCA AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 5;// EPWM1 SOCA AdcRegs.ADCS3CTL.bit.TRRegSEL = 5;// EPWCC1.ADCC1.ADCESL.ADC5/ ADCC1.ADCESL.ADC5/ ADCC1.ADCESL.ADC5/ ADCC1.ADCESL.ADC5/ ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCTRRegs.ADCTRL = 5 ;/ ADCESL.ADC5/ ADCESL.ADC5/ ADCSOC5/ ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCC1.ADCTRIG // EPWM1 SOCA //对应于4位硬件版本 的模拟变量读数 AdcRegs.ADCSOC8CTL.bit.TRIGSEL = 5;// EPWM1 SOCA AdcRegs.ADCSOC9CTL.bit.TRIGSEL = 5;// EPWCCS.ADCSORegs.ADCSOCSOC1=5 ;/EPIGCC1.bit.EPIGCC1.RIGSEL = 5;// ECC1RES1.ADC1.ADC1.TRESL.ADC1.TRF=5;/ADCSOC1.TESL.ADC1.bit.ADC1.TRF.ADC1.TRF.ADC1.TRIGCL.TR AdcRegs.ADCSOC0CTL.bit.ACQPS = 6;//最小 S/H 窗口大小 AdcRegs.ADCSOC1CTL.bit.ACQPS = 6; AdcRegs.ADCSOC2CTL.bit.ACQPS = 6; AdcRegs.ADCSOC3CTL.bit.ACQPS = 6; AdcRegs.ADCSOC4CTL.bit.ACQPS = 6; AdcRegs.ADCSOC5CTL.bit.ACQPS = 6; AdcRegs.ADCSOC6CTL.bit.ACQPS = 6; AdcRegs.ADCSOC7CTL.bit.ACQPS = 6; //对应于4位硬件版本 的模拟变量读数 AdcRegs.ADCSOC8CTL.bit.ACQPS = 6; AdcRegs.ADCSO9CTL.bit.ACQPS = 6; AdcRegs.ADCSOC10CTL.bit.ACQPS = 6; AdcRegs.ADCSOC11CTPS = 6;ADCSOCTI.ACQPS = 6;ADCCOQPS = 6;ADCCODCM.ACQPS = 6
提前感谢...
桑托什