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.
工具与软件:
尊敬的所有人:
在调试 TMS320F28P55 ADC 采样时、使用了外部3.2V 基准电压。 调用库函数 ADC_setVREF (ADCA_BASE、ADC_reference_external、ADC_reference_3_3V)后、发现所获取的所有样本都将减半、例如、当测得的模拟端口 为1.6V 时、AD 采样应为2048、但实际的读取 AD 样本仅为1024。
是否有任何其他配置要执行?
EALLOW; ADC_setOffsetTrim(ADCA_BASE); ADC_setOffsetTrim(ADCB_BASE); ADC_setOffsetTrim(ADCC_BASE); ADC_setOffsetTrim(ADCD_BASE); ADC_setOffsetTrim(ADCE_BASE); EDIS; EALLOW; ADC_setVREF(ADCA_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_3_3V); ADC_setVREF(ADCB_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_3_3V); ADC_setVREF(ADCC_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_3_3V); ADC_setVREF(ADCD_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_3_3V); ADC_setVREF(ADCE_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_3_3V); EDIS; EALLOW; // // Set ADCCLK divider to /4 // AdcaRegs.ADCCTL2.bit.PRESCALE = 6; AdcbRegs.ADCCTL2.bit.PRESCALE = 6; AdccRegs.ADCCTL2.bit.PRESCALE = 6; AdcdRegs.ADCCTL2.bit.PRESCALE = 6; AdceRegs.ADCCTL2.bit.PRESCALE = 6; // // Set pulse positions to late // AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 1; AdcbRegs.ADCCTL1.bit.INTPULSEPOS = 1; AdccRegs.ADCCTL1.bit.INTPULSEPOS = 1; AdcdRegs.ADCCTL1.bit.INTPULSEPOS = 1; AdceRegs.ADCCTL1.bit.INTPULSEPOS = 1; // // Power up the ADC and then delay for 1 ms // AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1; AdcbRegs.ADCCTL1.bit.ADCPWDNZ = 1; AdccRegs.ADCCTL1.bit.ADCPWDNZ = 1; AdcdRegs.ADCCTL1.bit.ADCPWDNZ = 1; AdceRegs.ADCCTL1.bit.ADCPWDNZ = 1; EDIS; DELAY_US(ADC_usDELAY); // Delay before converting ADC channels EALLOW;
大家好、建军:
在该器件上、设置3_3V 选项始终意味着 FSR =基准电压的2倍(无论选择内部基准还是外部基准)。 若要获得正确的电压范围、请使用:
ADC_setVREF(ADCx_BASE, ADC_REFERENCE_EXTERNAL, ADC_REFERENCE_2_5V);
此致、
伊袋