一种高精度A_D采样方法在TMS320F2812上的C语言实现
针对A/D 转换的误差问题介绍了一种高精度的A/D 采样方法,并给出了该方法在TMS320F2812 上的C 语言实现及程序清单。分析证明该方法具有精度高、程序简单等特点。
《工业控制计算机》2009年22卷第3期
27
一种高精度A/D采样方法在TMS320F2812上的C语言实现
AHigh-precisionA/DSamplingMethodBasedonTMS320F2812WithCLanguage
马
进
曾建军
万浩平(华东交通大学电气与电子工程学院,江西南昌330013)
摘
程序清单。分析证明该方法具有精度高、程序简单等特点。
关键词:TMS320F2812,A/D采样,C语言
Abstract
Thispaperintroducesahigh-precisionA/DsamplingmethodforA/Dconversionerror,andgivestheimplementofthemethodonTMS320F2812withtheClanguageandproceduredetailedlist.Theanalysisprovedthatthemethodhasaccu-rate,simpleandothercharacteristics.
Keywords:TMS320F2812,A/Dsampling,Clanguage
要
针对A/D转换的误差问题介绍了一种高精度的A/D采样方法,并给出了该方法在TMS320F2812上的C语言实现及
TMS320F2812数字信号处理器是TI公司最新推出的32位定点DSP控制器,12位精度,但在实际的使用过程中,ADC
的转换结果误差较大。如果直接将此转换结果用于控制回路,必然会降低控制精度,最大的转换误差可以达到9%左右。本文介绍了如何用该方法来补偿A/D转换的误差。
大的5个,然后取中间10个采样数据的平均值。
3高精度A/D采样方法
在没有任何修正的情况下,TMS320F2812片内12位AD
采集交流信号时,采样精度基本上可以达到<5%精度(采集直流信号时精度会更好一些)。
1
TMS320F2812的ADC模块
TMS320F2812上的模数转换模块(即ADC模块)将外部的模拟信号转换成数字量,ADC模块可以将一个控制信号进行滤
波或者实现运动系统的闭环控制。
TMS320F2812的A/D采样精度较差的主要原因是存在线性增益误差(GainError)和偏置误差(OffsetError),要提高转
换精度就必须对这两种误差进行补偿。
理想的12位ADC应该是没有增益误差和偏置误差的,因此进行补偿时的转换公式为:
Y=X*mi
ADC模块有16个通道,可配置为2个独立的8通道模块,分别服务于事件管理器A和事件管理器B,两个独立的8通道模块也可以级联构成一个16通道模块。两个8通道模块能够自动排序,每个模块可以通过多路选择器(MUX)选择8通道中的任何一个通道。在级联模式下,自动排序器将变成16通道。对于每个通道而言,一旦A/D转换完成,将会把转换结果存储到结果寄存器(ADCRESUILT)中。
自动排序器允许对同一个通道进行多次采样,用户可以完成过采样算法,这样可以获得更高的采样精度。
其中:Y=outputcount
X=inputcount=inputvoltage觹4095/3.0Vmi=idealGain
实际上TMS320F2812的A/D转换是存在增益误差和偏
置误差的,其转换公式为:
Y=X*ma+mb
其中:ma=actualgain
2提高A/D采样精度的常见方法2.1基于硬件的方法
1)硬件滤波,滤除干扰信号。
2)正确的PCB板设计和布局,连接到ADCINxx引脚的模
拟量输入信号线不能与数字信号线靠得太近,这可以避免数字信号的干扰耦合进ADC的输入线。
mb=actualoffset
因此这种方法本质上是一种用软件进行校正的方法。在校正的时候,首先选用ADC的任意两个通道(例如A3和A4)作为参考输入通道,并分别输入已知的直流参考电压(RefHigh和
3)ADC模块的功率引脚所连的电源和地必须与数字电源
和数字地分开。
RefLow)。通过读取相应的结果寄存器获取转换值,利用两组输入输出值便可求得ADC模块的校正增益和校正偏置,然后利用这两个值对其他通道转换数据进行补偿,从而提高了A/D采样
的精度。
以下给出该方法的C语言实现:
//首先计算两个通道的参考电压转换后的理想结果
//A4=RefHigh=2.5V(2.5觹4095/3.0=3413idealcount)//A3=RefLow=0.5V(0.5觹4095/3.0=683idealcount)#defineREF_HIGH_IDEAL_COUNT3413//理想高值#defineREF_LOW_IDEAL_COUNT683//理想低值#defineSAMPLES63//采样次数//定义所需的各个变量
Uint16Avg_RefHighActualCount;Uint16Avg_RefLowActualCount;Uint16CalGain;Uint16CalOffset;Uint16SampleCount;
4)如果采样电路部分是经过多路开关切换的,可以在多路
开关输出上接下拉电阻到地。
5)采样通道上的电容效应也可能会导致A/D采样误差。因
为采样通道上的等效电容可能在还保持有上一个采样数据的数值时,就对当前数据进行采样,这样就会造成当前数据不准确。如果条件允许,可以在每次转化完成后现将输入切换到参考地,然后在对信号进行下一次采样。
2.2基于软件的方法
1)多次采样取平均值。
2)数字滤波法。例如采用中值滤波法,具体方法为:连续采个数据,,5个和最
针对A/D 转换的误差问题介绍了一种高精度的A/D 采样方法,并给出了该方法在TMS320F2812 上的C 语言实现及程序清单。分析证明该方法具有精度高、程序简单等特点。
28
Uint16
RefHighActualCount;
一种高精度A/D采样方法在TMS320F2812上的C语言实现
Avg_RefHighActualCount=(Avg_RefHighActualCount觹SampleCount+RefHighActualCount)/(SampleCount+1);
Avg_RefLowActualCount=(Avg_RefLowActualCount觹SampleCount+RefLowActualCount)/(SampleCount+1);
CalGain=(REF_HIGH_IDEAL_COUNT-REF_LOW_IDEAL_COUNT)/(Avg_RefHighActualCount-Avg_RefLowActualCount);//计算增益系数CalOffset=Avg_RefLowActualCount觹CalGain-RefLowIdealCount;//计算偏置
SampleCount++;妖
//在ADC_ISR中,对其他各个通道的结果进行修正:interruptvoidadc_isr(void)邀
GetCalibParam();......
newResultn=AdcRegs.ADCRESULTn觹CalGain-CalOffset;......妖
Uint16RefLowActualCount;//对各个变量进行初始化voidInitCalib()邀
Avg_RefLowActualCount=0;Avg_RefLowActualCount=0;Avg_RefHighActualCount=0;RefHighActualCount=0;RefLowActualCount=0;CalGain=0;CalOffset=0;SampleCount=0;妖
//获得校准增益和校准偏置/觹
Algorithm:Calibrationformulausedis:
ch(n)=ADCRESULTn觹CalGain-CalOffsetn=0to15channels
CalGain=(RefHighIdealCount-RefLowIdealCount)/(Avg_RefHigh-ActualCount-Avg_RefLowActualCount)
CalOffset=Avg_RefLowActualCount觹CalGain-RefLowIdealCountArunningweightedaverageiscalculatedforthereferenceinputs:Avg_RefHighActualCount=(Avg_RefHighActualCount觹SAMPLES+RefHighActualCount)/(SAMPLES+1)
Avg_RefLowActualCount=(Avg_RefLowActualCount觹SAMPLES+Re-fLowActualCount)/(SAMPLES+1)觹/
voidGetCalibParam()邀
RefHighActualCount=dcRegs.ADCRESULT4>>4;RefLowActualCount=dcRegs.ADCRESULT3>>4;if(SampleCount>SAMPL …… 此处隐藏:3120字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高中教育]电子线路高频非线性部分2.1
- [高中教育]中班美术活动——我的小手
- [高中教育]常用三极管参数大全
- [高中教育]计算机常见故障及解决办法
- [高中教育]风机基础环水平度控制方法探讨
- [高中教育]机械安全工程(专升本)阶段性作业3
- [高中教育]2009年安徽省高考语文考试说明刍议
- [高中教育]unit5 let's eat公开课教案设
- [高中教育]计算机网络原理课后习题答案
- [高中教育]2016-2022年中国新能源市场研究与投资
- [高中教育]2015-2020年中国会议行业市场评估及投
- [高中教育]经销商大会峰会主持人串词开场白
- [高中教育]2014新版北师大数学三年级上册小熊购物
- [高中教育]七年级第一学期体育与健康全套教案
- [高中教育]第三章:国际金融市场
- [高中教育]六年级下册数学单元测试-2.比例 北师大
- [高中教育]2016年上海海事大学法学院624刑法之《
- [高中教育]中国碳化钙产业竞争现状及未来五年投资
- [高中教育]网络时代,我们怎么玩
- [高中教育]圆锥曲线——高中数学基础知识与典型例
- 高集医院世界艾滋病宣传日活动方案
- 苏教版六年级英语上册期末试卷含答案
- 全民枪战生化英雄模式幽灵怎么玩 生化
- 灿烂的宋元文化一导学案
- 第2章货币资金与应收款项
- 北师大版八年级下册数学第三章《分式》
- 浅析高分子材料成型加工技术
- 华南理工大学2013年度共青团先进集体及
- 教师资格科目二小学教案模板(共合集)
- 工程扩建可研报告
- 中华人民共和国海事局2014年度招录公务
- 提高农村小学生作文能力的教学尝试
- 徒手心肺复苏术操作步骤
- 毛概试题库7-15章
- 2014-2015学年度(上)初中班主任工作计
- 企业驾驶员安全生产责任书
- 第07章 不等式测试题-2016年高考文科数
- 医疗器械经营企业工作程序
- 考研英语必背36篇_彩版_精华
- 初中9月13-15假期作业 (1)




