TMS320C28x模数转换器的精度校正
2.2软件实现
与一般的ADC转换程序相比,带校正的ADC转换程序需要另外增加两个程序段:校正值的计算以及利用校正值对ADC进行处理。为了方便操作及转换结果获取,实现中定义了结构体变量ADCCALIBRATIONVARS,用来保存ADC转换后的各种数据。另外,提高程序的通用性,采样的方式、参考电压值及高低电压理想的转换值均在ADC转换头文件ADCCalibration.h中定义。ADCCALIBRATIONVARS定义如下:
typedefstruct{
Uint*RefHighChAddr;//参考高电压所连通道地址
Uint*RefHighChAddr;//参考低电压所连通道地址
Uint*ChoAddr;//0通道地址
UintAvg_RefHighActualCount;//参考高电压实际转换值
UintAvg_RefHighActualCount;//参考低电压实际转换值
UintRefHighIdealCount;//参考高电压理想转换值
UintRefLowCount;//参考低电压实际转换值
UintCalGain;//校正增益
UintCalOffset;//校正失调
//校正通道的转换值
UintCh0;
UintCh16;
}ADCCALIBRATIONVARS;
整个A/D转换任务由中断函数intADC()和主函数ADCCalibration()构成。中断函数主要用于转换数据的读取,而校正参数计算及各通道转换结果的修正在主函数完成。校正完后,将结果保存到所定义的结构体变量中。此处,对ADC的校正采用单采样单校正的处理方法,当然也可以采用多采样单校正的处理方法,但是为了提高精度,如果设计系统开支允许,建议最好使用单采样单校正的方法,以提高ADC精度。
2.3实验结果
笔者在自己所使用的F2812系统上进行了实验,选用1 V和2 V作为参考电压,选用通道A6和A7作为参考通道,通过对0 V、0.5 V、1.5 V、2.5 V校正前后的数据进行比较,发现采用上述校正方法后,ADC的转换准确度明显得到改善,比较结果如表2所列。
注:由参考电压计算得:CalGain=0.965;CalOffset=6.757。
表2中所给出的数据只是笔者进行大量实验后所得数据的一组,实验证明通过校正后ADC的误差能被控制在0.5%以内,这对大多数测控系统来说已满足要求,对于转换精度要求更高的系统,可以采用外扩A/D转换器。
结语
A/D转换器是数据采集电路的核心部件,其良好的精度与准确性是提高数据采集电路性能的关键。TMS320F2812作为TI公司推出的一款集微控制器及数字信号处理器于一身的32位处理器,以其运行速度高和强大的处理功能得到广泛应用,而对其ADC模块精度的提高,将进一步提高其在控制领域中的应用。本文提出的用于提高ADC模块精度的校正算法,经实际应用证明实用可行。
- 基于DSP的心电监护模块设计(11-30)
- 基于DSP的低功耗接收机单边带解调方法(01-10)
- ADSP2189M在船舶自动识别系统开发中的应用 (07-16)
- 基于AD9516的高速四通道时间交叉采样时钟的设计(09-22)
- 多路交流异步采样及DSP软件校准技术(10-13)
- 最新方法:怎样提高DSP采样精度(10-15)