TMS320C28x模数转换器的精度校正

2019-07-30 16:28发布

引 言:   TMS320F2812是德州仪器公司(TI)推出的主频最高可达150 MHz的32位高性能数字信号处理器(DSP),内部集成了ADC转换模块。ADC模块是一个12位、具有流水线结构的模数转换器,内置双采样保持器(S/H),可多路选择16通道输入,快速转换时间运行在25 MHz、ADC时钟或12.5 Msps,16个转换结果寄存器可工作于连续自动排序模式或启动/停止模式。
  在现代电子系统中,作为模拟系统与数字系统接口的关键部件,模数转换器(ADC)已经成为一个相当重要的电路单元,用于控制回路中的数据采集。在实际使用中,发现该ADC的转换结果误差较大,如果直接将此转换结果用于控制回路,必然会降低控制精度。为了克服这个缺点,提高其转换精度,笔者在进行了大量实验后,提出一种用于提高TMS320F2812ADC精度的方法,使得ADC精度得到有效提高。
1 ADC模块误差的定义及影响分析
  1.1 误差定义
  常用的A/D转换器主要存在:失调误差、增益误差和线性误差。这里主要讨论失调误差和增益误差。理想情况下,ADC模块转换方程为y=x×mi,式中x=输入计数值 =输入电压×4095/3;y=输出计数值。在实际中,A/D转换模块的各种误差是不可避免的,这里定义具有增益误差和失调误差的ADC模块的转换方程为y=x×ma±b,式中ma为实际增益,b为失调误差。通过对F2812的ADC信号采集进行多次测量后,发现ADC增益误差一般在5%以内,即0.95<MA<1.05,失调误差一般在2%以内,即-20<B<+20。ADC的理想状态及实际状态比较如图1所示。 图1理想ADC转换与实际ADC转换
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
51xlf
2019-07-31 05:22
  与一般的ADC转换程序相比,带校正的ADC转换程序需要另外增加两个程序段:校正值的计算以及利用校正值对ADC进行处理。为了方便操作及转换结果获取,实现中定义了结构体变量ADCCALIBRATIONVARS,用来保存ADC转换后的各种数据。另外,提高程序的通用性,采样的方式、参考电压值及高低电压理想的转换值均在ADC转换头文件ADCCalibration.h中定义。ADCCALIBRATIONVARS定义如下:
  typedefstruct{
  Uint*RefHighChAddr;//参考高电压所连通道地址
  Uint*RefHighChAddr;//参考低电压所连通道地址
  Uint*ChoAddr;//0通道地址
  UintAvg_RefHighActualCount;//参考高电压实际转换值
  UintAvg_RefHighActualCount;//参考低电压实际转换值
  UintRefHighIdealCount;//参考高电压理想转换值
  UintRefLowCount;//参考低电压实际转换值
  UintCalGain;//校正增益
  UintCalOffset;//校正失调
  //校正通道的转换值
  UintCh0;
  UintCh16;
  }ADCCALIBRATIONVARS;
  整个A/D转换任务由中断函数intADC()和主函数ADCCalibration()构成。中断函数主要用于转换数据的读取,而校正参数计算及各通道转换结果的修正在主函数完成。校正完后,将结果保存到所定义的结构体变量中。此处,对ADC的校正采用单采样单校正的处理方法,当然也可以采用多采样单校正的处理方法,但是为了提高精度,如果设计系统开支允许,建议最好使用单采样单校正的方法,以提高ADC精度。
  

一周热门 更多>