EDN China > 技术文章 > 电源技术 > AC-DC/DC-DC转换 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

一种基于PWM的更快速的DAC

Dusan Ponikvar?? 2016年03月24日 ?? 收藏4
当你需要从一个不带数模转换器(DAC)的微控制器输出模拟信号时,你可以外加一个DAC芯片。但是你也可以用另一种更经济的方法,即采用脉宽调制(PWM)输出加低通滤波器(LPF)取其平均值的方法,该平均值等于PWM信号的占空比。

图1:用RC低通滤波器得到PWM信号的平均值
图1:用RC低通滤波器得到PWM信号的平均值

RC低通滤波器滤除掉非直流信号,得到的便是平均信号UOUT。如果PWM信号的周期T为63个时钟周期,UOUT将会是64个离散DC值之一。(0 到 63,6位分辨率。)

RC低通滤波器的时间常数τ必须足够大以平滑输出信号UOUT,纹波?UOUT应小于一个最低有效位(LSB)。最坏的情况出现在50% 占空比时(如图2所示)。当τ远大于周期T时,电容的充电电流IC 和变化?UOUT可近似为:

图2

对于一个6位的DAC,?UOUT应小于 VCC/64,要求滤波器的τ=RC ≥ 16·T。

图2:滤波输出(蓝色)的纹波应小于一个LSB
图2:滤波输出(蓝色)的纹波应小于一个LSB

一些实用数据:低功耗微处理器常使用一个32768Hz晶体振荡器作为PWM模块的时钟信号。如果是6位PWM,则周期T为64/32768≈2ms,因此需要32ms的时间常数,也就是要等待5τ(160ms)来使6位转换器稳定。非常慢。本设计实例将展现你如何才能加速完成信号的转换。

微控制器中的PWM模块通常可以产生多个PWM信号。我们来考虑一下将两个基于PWM的3位DAC(DACH和DACL)的输出求和,求和前DACL输出的幅度被减小到了八分之一。得到的信号相当于一个6位DAC,但将会比简单版本有重大的优势:周期T对于相同的分辨率仅为8个时钟周期,而所需的时间常数τ是原来的八分之一,DAC的稳定时间快了8倍。这样改进后就很容易用电阻为两个PWM信号(PWMH、PWML)实现RC滤波器:

图3:将两个基于PWM的DAC输出合到一起
图3:将两个基于PWM的DAC输出合到一起

输出信号UOUT等于:

图5

这一技术已经在TI MSP430F5132微控制器中实现:

图4:基于6位(3+3)PWM的DAC的初始化和写入代码
图4:基于6位(3+3)PWM的DAC的初始化和写入代码

图5:基于6位PWM的DAC测量输出;蓝线:图1方案(稳定时间160ms);紫线:图3方案(稳定时间20ms)。
图5:基于6位PWM的DAC测量输出;蓝线:图1方案(稳定时间160ms);紫线:图3方案(稳定时间20ms)。

7位DAC可以用1%精度的电阻实现。这次,两个PWM信号用来产生两个3位DAC,最终实现6位的效果,MSb只用P3.7引脚来设置为0或1。

图6:基于7位PWM的DAC的实现
图6:基于7位PWM的DAC的实现

图7:图6电路的测量输出结果;注意其优秀的线性度
图7:图6电路的测量输出结果;注意其优秀的线性度

图8:基于7位(3+3+1)PWM的DAC的初始化和写入代码
图8:基于7位(3+3+1)PWM的DAC的初始化和写入代码

这里的速度提升更加明显。一个简单的PWM DAC需要128个时钟周期(128/32768 s-1=3.9ms),因此τ=32·T=125ms,稳定时间为5·125ms=625ms。图7的稳定时间为40ms,快了16倍。使用高阶的LPF滤波器也有助于缩短稳定时间。

《电子技术设计》网站版权所有,谢绝转载。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈