于进杰+唐正华
【摘 要】大部分单片机都没有D/A输出的引脚,但是一般都有PWM引脚,如果涉及的系统需要外接控制电机等需要D/A信号输出控制的设备,就需要在单片机引脚拓展D/A转换。一般都是外接一个D/A转化芯片来完成,但是价格比较高,这里讨论一个利用PWM引脚拓展转换成D/A输出的设计,大大减低价格成本。
【关键词】D/A转换;光电隔离;误差;PWM
中圖分类号: TN792 文献标识码: A 文章编号: 2095-2457(2017)23-0112-002
【Abstract】Most microcontrollers do not have D/A output pins,but generally have PWM pins, if the system involved in the need for external control of the motor and other equipment need D/A signal output control, you need to expand the microcontroller D/A conversion.Usually a D/A converter chip to complete,but the price is relatively high,here to discuss the use of PWM pin expansion into D/A output design,greatly reducing the cost of the price.
【Key words】D/A conversion;Photoelectric isolation;Error;PWM
0 引言
单片机控制器受到外界的电磁干扰比较大,这些干扰会导致单片机控制器输出信号产生误差。所以在设计的时候,必须根据所连接负载可能产生干扰的形式采取相应的抗干扰措施,提高单片机控制器的电磁兼容性。
1 PWM转D/A输出模块的设计
1.1 硬件电路设计
在单片机输出接口设计中,如果需要D/A输出,首先想到的是利用单片机I/O口外接一个D/A转换芯片,这里我们利用单片机的PWM接口通过外接设计电路,同样可以得到需要的D/A输出信号,同时还可以节省单片机的I/O接口资源。
首先选取一个比较常用的单片机PIC16F877,如果需要产生0~10V的模拟电压信号,而PIC16F877本身没有D/A输出引脚,不能直接输出模拟电压信号。但PIC16F877芯片带有两个CCP模块,所对应的引脚通过软件编程均可配置为PWM工作模式,在该模式下,CCPx引脚可以输出占空比为10位分辨率可调的方波,这样我们得到一个PWM的输出引脚。通过对PWM输出引脚接低通滤波器的方法得到D/A输出。考虑到在这个转换过程中会受到外界或是所带负载的干扰,以及D/A信号比较微弱需要增益等一些因素的影响,对PWM输出直接低通滤波要做一些改进。
首先转换要从源头做起,从PIC16F877出来的PWM信号先连接一个高速光电耦合器以减小数字信号脉冲对模拟信号的干扰。再连接一个单刀双掷模拟开关MAX4599来稳定PWM输出的高低电平的电压值,为后面转D/A信号提供一个比较纯净的初始信号。综合上述考虑,针对PWM转D/A输出模块电路进行如下的设计,如图1。
1.2 PWM波的转换过程
首先由PIC16F977 的CCP1引脚连接高速光电耦合器6N137进行隔离,经过隔离后的脉冲信号接入单刀双掷模拟开关MAX4599得到整定后的PWM信号,再经过两级RC低通滤波后得到0~5V的模拟电压信号。如果后面的负载需要0~10V电压,再加一个放大倍数为2的同相放大器;如果后面的负载需要比较大的功率,可以再加一个电压跟随器。
2 主要元器件的选取
2.1 R、C元件参数的选取
2.2 参考电压芯片的选取
参考电压芯片选取精密基准电压源REF02,该芯片可以提供精确的+10V、+5V、+2.5V输出的参考电压,环境温度或负载条件的变化对输出电压的影响极小,同时具有小尺寸,宽电源电压范围,应用广泛,能够在更宽的工作温度范围内提供更高的精度和温度稳定性。
3 软件流程图
软件编程方面主要是PIC16F877能够根据理想电压曲线的电压值产生与之对应的PWM信号,即通过软件编程设置PWM信号的占空比来实现。PWM方式电压输出的简要流程图如图2。
4 结束语
通过硬件电路和软件优化,使得单片机输出的PWM信号受到的外界的干扰更小,从而可以提升系统运行的稳定性。同时可以节省出至少8个I/O引脚资源。
【参考文献】
[1]张明峰.PIC单片机入门与实战[M].北京航空航天大学出版社,2004.
[2]刘笃仁.PIC软硬件系统设计一基于PIC16F87X系列[M].电子工业出版社,2005.
[3]胡汉才.单片机原理及系统设计[M].清华大学出版社,2002.
[4]蒋璇.数字系统设计入门与应用[M].电子工业出版社,2001.endprint