基于单片机的12位PWM DAC的设计

发布者:春水碧于天最新更新时间:2013-05-02 来源: 21IC关键字:单片机  PWM  DAC 手机看文章 扫描二维码
随时随地手机看文章

[一].前言

在用单片机制作的变送器类和控制器类的仪表中,需要输出1—5V或4—20mA的直流信号的时候,通常采用专用的D/A芯片,一般是每路一片。当输出信号的精度较高时,D/A芯片的位数也将随之增加。在工业仪表中,通常增加到12位。12位D/A的价格目前比单片机的价格要高得多,占用的接口线数量也多。尤其是在需隔离的场合时,所需的光电耦合器数量与接口线相当,造成元器件数量大批增加,使体积和造价随之升高。如果在单片机控制的仪表里用PWM方式完成D/A输出,将会使成本降低到12位D/A芯片的十分之一左右。我们在S系列流量仪表中采用了这种方式,使用效果非常理想。下面介绍一下PWM方式D/A的构成原理。

[二].电路原理

一般12位D/A转换器在手册中给出的精度为±1/2LSB,温度漂移的综合指标在20—50ppm/℃,上述两项指标在0.2级仪表中是可以满足要求的,下面给出的电路可以达到上述两项指标。

图1中的T是固定宽度,τ的宽度是可变的。τ分为5000份,每份2us。所以τ的最大值τmax=2×5000=10000us,这就是T的宽度。当τ=T时,占空比为1,Vo=5.000V,τ=0时,Vo=0V。这种脉冲电压经过两级RC滤波后得到的电压可由下式表示:

VM必须是精密电压源。Vo与占空比成正比,且线性较好,这种方式在理论上是很成熟的,但实际应用上还存在一些问题。图2是实际线路,其中单片机可用8098或8031两种常用芯片,VM的数值为5.000V±2mV,D/A与单片机必须是电气隔离的。否则数字脉冲电流产生的干扰会影响D/A精度,从示波器可以看到高达50mV的干扰毛刺电压,因此有必要加光电隔离。经隔离后的脉冲驱动模拟开关CD4053。CD4053是三组两触点模拟开关,由PWM脉冲控制开关的公共接点使之与+5.000V和地接通,在VI得到与单片机输出相一致的PWM波形。该波形经两级RC滤波后由运放构成的电压跟随器输出Vo。其中RC的时间常数一般取RC≥2T,这样两级RC加起来就会得到纹波小于3mV的直流电压,本电路中RC=220ms,如果想进一步减小纹波,可适当提高RC的乘积,但电路的响应速度也会放慢。

 

[page]

用运放做RC滤波器输出的缓冲大有益处。它不仅提高了滤波电路带载能力,而且使线性度得到了提高。通过实验可知,这一级运放的的缓冲作用是保证整个D/A精度和线性度的重要环节。尽管RC滤波器无负载,处在非常理想的条件下工作,但Vo并不完全与占空比成正比。经测试,Vo与理想值有一些误差,如图3所示。

图中的曲线1表示理想值,曲线2表示实测值。由图中可见,曲线2的根部不太理想。这是因为所使用的电容不是纯电容,其中含有一定的电感。在占空比极小时,由于脉冲非常窄,它产生的高次谐波的频率很高,电感对高次谐波的感抗较大,因此在脉冲沿的位置上,尽管电压变化很大,但实际实际给电容充电却很小。这样就在窄脉冲时产生非线性。当采用无感电容时,这种非线性有较大改善,但仍不能完全吻合。由于无感电容容量太小,价格也较高,所以在大时间常数滤波电路中没有实际意义。在实际使用中解决这一问题的方法是舍弃根部非线性部分,只用线性部分,在工业仪表中,标准的信号一般为1—5V或4—20mA。而曲线2的非线性部分在0.4V以下,所以当采用1—5V输出信号时,精度为0.03%完全满足12位D/A要求。

除精度满足要求外,温度特性也必须满足要求。影响温度特性的原因主要是5V精密电源和运算放大器的温度特性。为不使价格太高,选用2DW232精密稳压二极管,运放的电阻与滤波电阻要匹配且温度系数≤25ppm。运算放大器选择温漂≤10uV/℃的均可,一般廉价低温漂运放都可满足这个指标。采用上述措施后D/A的总温度漂为33ppm/℃。

[三].实测数据

由于这个线路是在0.2级精密仪表中使用的,因此要求线性度和温度特性必须满足要求,另外,这个数据是测量V/I转换后4-20mA电源值与给定电流值之间的误差。这个误差还包含了V/I转换的误差。因此实际的D/A自身的误差比总误差要小。

由以上数据可知,满量程的线性度为0.04%,满量程的温度漂移为0.033%/10℃,系统响应时间约为2.2s,输出信号与标准值相差0.1%时所用的时间为11s。

[四].结束语

上面所介绍的D/A电路结构简单,原理易懂,在8098及8031单片机上都可以应用,笔者采用8098单片机的四路高速输入输出同时控制四路精密D/A输出。后面加一级V/I转换电路,构成标准的4—20mA电流输出,电路经一年多的现场实际应用,效果很好,适于目前0.2级仪表的全部要求。

关键字:单片机  PWM  DAC 引用地址:基于单片机的12位PWM DAC的设计

上一篇:RTOS为Energy MCU实现“无时钟节拍”节能模式
下一篇:基于MSP430的智能自适应间断光控系统

推荐阅读最新更新时间:2024-03-16 13:22

PIC单片机开发板之流水灯代码
/* 这是自已写的流水灯,速度为500ms */ #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void delay(uint x) { uint a,b; for(a=x;a 0;a--) for(b=110;b 0;b--); } void main() { uchar i; //变量定义最好放在第一行,否则会出错(提示一大堆的错误) TRISD=0x00; TRISC=0x00; PORTC=0x00; //把数码管屏蔽
[单片机]
PIC<font color='red'>单片机</font>开发板之流水灯代码
基于 STC89C54RD 单片机和 AD574 的高精度电阻测试仪的设计
电子行业发展迅速,作为最基本的电路元件之一的电阻,在电子系统中的需求量不断加大。在电子仪表中,需要精密的电阻来提高仪表的精度,对于普通的电子仪表的公司而言,需要既快捷又能保证精度的电阻测试仪,在电子电路的设计中,往往需要便捷的测出电阻值的阻值,因此,设计一个不仅安全性和可靠性高,而且简易实用的高精度电阻测量仪具有很大的现实意义。利用单片机作为控制核心的智能仪器仪表应用广泛,其具有可靠性高、功耗低、体积小等优点,使得测量仪表更加数字化、智能化和微型化。 1 系统设计 本系统由单片机STC89C54RD 控制,将被测电阻通过测量电路,将电阻的变化转变为电压和电流的变化送给模数转换器进行A/D 转换,并将得到的数字信号送给单片机,通过软
[电源管理]
基于 STC89C54RD <font color='red'>单片机</font>和 AD574 的高精度电阻测试仪的设计
TJA1020+51单片机实现的LIN总线通讯源程序(master+slave)
LIN mater的51单片机代码 /**************master*****************/ #include REGX52.H #include intrins.h sbit p31=P3^1; sbit k1=P1^0; sbit k2=P1^1; sbit p20=P2^0; unsigned char t; unsigned char sendflag, flag; void delay(unsigned int i) { while(i--); } void send() { // 同步 ID data1 data2
[单片机]
TJA1020+51<font color='red'>单片机</font>实现的LIN总线通讯源程序(master+slave)
Atmel推出29美元的AVR XMEGA评测工具套件
  日前,爱特梅尔公司 (Atmel Corporation) 宣布推出用于AVR XMEGATM 微控制器系列的Xplain评测工具套件。Xplain套件的建议零售价为29美元,让用户以最低的硬件成本,评测爱特梅尔XMEGA微控制器的功能和系统性能。它经由mini USB连接器取电,而终端用户也可以通过此连接器,利用Xplain在XMEGA上自行开发应用。   爱特梅尔 8-/16位XMEGA于2008年推出,是专为超低功耗和高系统性能而优化微控制器,具有完整的创新功能集,适合广泛应用。   爱特梅尔的ATxmega128A1是Xplain套件中的板载 XMEGA 器件,是带有128KB系统内可编程闪存的100引脚通
[嵌入式]
AT89C51单片机在电话远程控制器中的应用
随着通讯产业的发展,电话机已经走进了千家万户,利用电话机进行远程控制的技术也日益用于生活中,本文设计了一种电话远程控制系统,该系统主要应用于电话遥控控制的家用电器,用户在户外可通过任意一部双音多频电话(包括手机、电话分机),根据语音提示,可以对各种电器(如电饭锅、微波炉等电器)进行远程控制。   1 系统结构 此系统主要包括电话振铃检测电路,电话自动拾机和挂机电话,DTMF信号解码电路,语音提示电路,以及音频放大电路,系统结构框图如图1所示。 当有电话呼入时,电话振铃检测电路检测到有振铃并等待系统默认的振铃次数后,控制器自动拾机。用户在语音提示下依次输入用户的操作密码和操作指令。DTMF解码电路将接收到的DT
[单片机]
stm32f407之通用定时器产生PWM
1.初始化 1.定义相关变量 GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; 2.打开定时器和GPIO时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); 3.配置GPIO口为复用功能输出 GPIO_PinAFConfig(GPIOF, GPI
[单片机]
新型车辆防盗报警器设计
0 引言 早期的电动车防盗器材主要是机械式的防盗锁,它主要是靠锁定车轮、车把来达到防盗的目的,但只防盗不报警。为了克服机械锁只防盗不报警的缺点,电子报警防盗器应运而生。它主要靠车体的振动触发声音和振动报警功能达到防盗的目的。但传统电子防盗报警器可靠性较差。只是车辆本身发出报警声,车主有时无法听到。因此我们需要一种新型防盗报警器使他们可以在第一时间得到消息以便尽快采取措施制止偷盗案件发生,以有效保障个人财物安全。 1 设计总方案 本设计采用AT89S51单片机及无线收发模块作为新型报警器的控制与信号传输的核心,并配合编码译码芯片(SC2262\SC2272-M4)对信号进行编码译码。当按下手持遥控器的锁车键时,串接于车锁
[嵌入式]
51单片机-控制数码管
1.硬件设计 1.1.LED数码管介绍 数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件;如下: 1.2.原理图设计 译码器:此处用的是38线译码器,其工作原理是3个输入端通过二进制转十进制的方式去控制8个输出管脚;如ABC管脚输入000,那对应的输出管脚即为Y0;如果输出010,即为Y2; 缓冲器U2:这是个双向数据缓冲器,其作用是提高其驱动能力,读写功能主要由LE是否接高电平决定(通过跳线帽J21决定LE是接VCC高电平,还是P10低电平),此处用的是缓冲器的写入功能 2.软件设计 2.1.静态数码管显示 功能需求:一个输出接口,只显示一个数字 程序设计:分析原理图,程序设计主要
[单片机]
51<font color='red'>单片机</font>-控制数码管
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved