一种基于PWM的电压输出DAC电路设计

分享到:

作者:秦健

  在电子和自动化技术的应用中,单片机和DAC (数模转换器)是经常需要同时使用的,然而许多单片机内部并没有集成DAC,即使有些单片机内部集成了DAC,DAC的精度也往往不高,在高 精度的应用中还是需要外接DAC,这样增加了成本。但是,几乎所有的单片机都提供定时器或者PWM输出功能。如果能应用单片机的PWM输出(或者通过定时器和软件一起来实现PWM输出),经过简单的变换电路就可以实现DAC,这将大量降低成本电子设备的成本、减少体积,并容易提高精度。本文在对PWM到DAC转换关系的理论分析的基础上,设计出输出为0~5V电压的DAC。

  1 应用PWM实现DAC的理论分析

  PWM是一种周期一定而高低电平的占空比可以调制的方波信号,图1是一种在电路中经常遇到的PWM波。该PWM的高低电平分别为VH和VL,理想的情况VL等于0,但是实际中一般不等于0,这往往是应用中产生误差的一个主要原因。

  图1的PWM波形可以用分段函数表示为式(1):

  其中:T是单片机中计数脉冲的基本周期,即单片机每隔T时间记一次数(计数器的值增加或者减少1),N是PWM波一个周期的计数脉冲个数,n是PWM波一个周期中高电平的计数脉冲个数,VH和VL分别是PWM波中高低电平的电压值,k为谐波次数,t为时间。把式(1)所表示的函数展开成傅里叶级数[1],得到式(2):  

 

  从式(2)可以看出,式中第1个方括弧为直流分量,第2项为1次谐波分量,第3项为大于1次的高次谐波分量。式(2)中的直流分量与n成线性关系,并随着n从0到N,直流分量从VL到VL+VH之间变化,这正是电压输出的DAC所需要的。因此,如果能把式(2)中除直流分量的谐波过滤掉,则可以得到从PWM波到电压输出DAC的转换,即:PWM波可以通过一个低通滤波器进行解调。式(2)中的第2项的幅度和相角与n有关,频率为1/(NT),该频率是设计低通滤波器的依据。如果能把1次谐波很好过滤掉,则高次谐波 就应该基本不存在了。

  根据上述分析可以得到如图2所示的从PWM到DAC输出的信号处理方块图,根据该方块图可以 有许多电路实现方法,在单片机的应用中还可以通过软件的方法进行精度调整和误差的进一 步校正。

  在DAC的应用中,分辨率是一个很重要的参数,图1的分辨率计算直接与N和n的可能变化有关,计算公式如式(3):

  表1给出了不同N和n的情况下的分辨率。

  从表1和式(3)可以看出,N越大DAC的分辨率越高,但是NT也越大,即 PWM的周期或者式(2)中的1次谐波周期也越大,相当于1次谐波的频率也越低,需要截止频率很低的低通滤波器,DAC输出的滞后也将增加。一种解决方法就是使T减少,即减少单片机的计数脉冲宽度(这往往需要提高单片机的工作频率),达到不降低1次谐波频率的前提下提高精度。在实际中,T的减少受到单片机时钟和PWM后续电路开关特性的限制。如果在实际中需要微秒级的T,则后续电路需要选择开关特性较好的器件,以减少PWM波形的失真,如图4中的电子开关T1(IRF530)。

  2 PWM到DAC电压输出的电路实现

  根据图2的结构,图3是最简单的实现方式。图3中,PWM波直接从MCU的PWM引脚输出,该电路没有基准电压,只通过简单的阻容滤波得到DAC的输出电压。R1和C1的具体参数可根据式(2)的第2部分的一次谐波频率来选择,实际应用中一般选择图2中阻容滤波器的截止频率为式(2)的基波频率的1/4左右。

  图3的PWM波的VH和VL受到MCU输出高低电平的限制,一般情况下VL不等于0 V,VH也不等于VCC。例如,对于单片机AT89C52[2,3],当VCC为+5 V时,VH和VL分别为4.5 V和0.45 V左右,而且该数值随着负载电流和温度而变化。根据式(2)的直流分量可知,DAC电压输出只能在0.45~4.5 V之间变化,而且随负载电流和环境温度变化,精度很难保证。由于该电路的变化部分精度不高,没有必要采用高分辨率的PWM输出,8位即可。另外图2的DAC输出的负载能力也比较差,只适合与具有高输入阻抗的后续电路连接。因此,图3的电路只能用在对DAC输出精度要求不高、负载很小的场合。对精度和负载能力要求较高的场合,需要对图3的电路进行改进,增加基准电压、负载驱动等电路。



  图4的电路在图3电路的基础上增加了开关管T1、基准电压源LM3365和输出放大器TL V2472。MCU从A点输出的PWM波驱动T1的栅极,T1按照PWM的周期和占空比进行开关。T1为低 导通电阻和开关特性好的开关管,如IRF530[4],其典型导通电阻小于0.16 Ω,而截止电阻却非常大,与T1并联的为基准电压LM3365。图4的B点将得到理想的 PWM波形,即:VH=5 V,VL=0 V,波形为方波。A点的PWM波,经过整形得到B点理想PWM波,B点的PWM波再经过两级阻容滤波在C点得到直流分量,即MCU输出的调制PWM波在C点得到解调,实现了DAC功能。根据式(2)可知,C点的电压为(5 ×n/N)V,为0~5 V之间的电压。由于放大器A1的输入阻抗很大,二级阻容滤波的效果很好,C点的电压纹波极小,满足高精度要求。输出放大器采用TLV2472,工作在电压跟随器方式,他是一个RailtoRail放大器,他的输出电压的跨度几乎等于电源电压幅度,因此可以得到0 V的电压输出,克服了一般放大器(如LM324,TL071等)输出电压跨度比电源电压范围小1 V左右这一缺点。图4与图3还有一点重要的不同是,图4的电源电压为6 V,而图3为5 V。图4中在MCU接电源电压中串联了二极管,他起降压的作用,因为一般的MCU工作电源范围为4.5~5.5 V之间。图4中采用电源电压为6 V是为了保证LM336 5能正常工作。

  图4的电路采用的电路和电容没有特殊的要求,很容易调试。由于PWM波很容易通过MCU的软 件进行控制,即使电路稍微有些系统误差,也很容易通过软件进行校正。因此,图4的电路可以得到高精度的DAC输出。

  3 结语

  本文在对PWM波形组成进行理论分析的基础上,提出了可以通过一个低通滤波器把PWM中的DA C调制信号解调出来,实现DAC。论文对实现DAC产生的误差的原因进行了分析,设计了两组D AC电路实现方式,分别适合于不同的应用场合。

  图4的实现方法,通过简单廉价的电子元器件就可以得到高精度的DAC,降低了设备的成本。该电路为单电源供电,非常适用在基于单片机的嵌入式系统中应用。

 

  参考文献

  [1]黄明慧,梁国礼.高等数学与工程数学[M].广州:华南理工大学出版社 ,1993

  [2]余永权.89系列Flash单片机原理及应用[M].北京:电子工业出版 社,1997

  [3]李华.MCS51系列单片机实用接口技术[M].北京:北京航空航天大学出 版社,1993

  [4]吴立新.实用电子技术手册[M].北京:机械工业出版社,2002


继续阅读
几种单片机RAM测试故障方法

在各种单片机应用系统中,芯片存储器的正常与否直接关系到该系统的正常工作。为了提高系统的可靠性,对系统的可靠性进行测试是十分必要的。通过测试可以有效地发现并解决因存储器发生故障对系统带来的破坏问题。本文针对性地介绍了几种常用的单片机系统RAM测试方法,并在其基础上提出了一种基于种子和逐位倒转的RAM故障测试方法。

NXP低功耗LPC1000系列突出优势

基于ARM Cortex-M3/M0的恩智浦LPC1000系列,是NXP目前最新的ARM 微控制器产品,其高达100MHz运行速度、紧凑的尺寸、高能效与高性能使它特别适合SoC、ASSP和独立微控制器中的电源管理任务,潜在市场包括电池供电的消费电子设备、高级电子仪表、安检系统、便携式医疗设备、电机控制、智能卡、无线通信等领域。据相关第三方发布的2008年统计报告,中国大陆上述市场规模已超过6亿美元,未来亦有很大增长潜力。 恩智浦最新主推产品 LPC1000系列产品线 图1

MAPS - K22教程:KSDK2.0+KDS3.0实现PWM

在Kinetis K22 MCU中的TPM模块可实现PWM波形,可以控制比如最近活动的小车电机调速等。这次使用MAPS-K22套件测试一下KSDK2.0的PWM波形的产生,为了查看效果方便,查了一下电路,发现LD3接在PTB1上面,而PTB1是TPM1的CH1通道,正好就那这个做下实验吧。

资深硬件工程师从五个方面谈产品设计

一个好的硬件工程师实际上就是一个项目经理,你需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬件实现。还要跟众多的芯片和方案供应商联系,从中挑选出合适的方案,当原理图完成后,你需要组织同事来进行配合评审和检查,还要和CAD工程师一起工作来完成PCB的设计。与此同时,要准备好BOM清单,开始采购和准备物料,联系加工厂家完成板的贴装。”

MAPS四色板体验(二)

实验一 实验目标:利用板载电位器控制LED的亮度变化。 实验原理: (1)FTM(弹性定时器模块)是一个支持输入捕捉、输出比较、产生可用来控制电机的PWM信号和电源管理应用的通道定时器。 每一个通道都可配置为输入捕捉、输出比较或者边缘对齐的PWM模式。 (2)K60的ADC模块支持差分模拟输入和单端输入模式。其中单端支持16位、12位、10位以及8位模式。

精彩活动