引言 脉宽调制(PWM)是从微控制器或FPGA等数字器件产生模拟电压的一种常用方法。大多数微控制器都具有内置的专用PWM产生外设,而且其仅需几行RTL代码即可从FPGA产生一个PWM信号。如果模拟信号的性能要求不是太严格,那么这就是一种简单和实用的方法,因为它只需要一个输出引脚,而且与具有一个SPI或I2C接口的数模转换器(DAC)相比,其代码开销是非常低。
图1示出了一款典型应用,其采用一个经滤波的数字输出引脚来产生一个模拟电压。
(图1:PWM至模拟转换)
该方案的诸多不足之处您不必深究就能发现。理想情况下,一个12位模拟信号应具有小于1LSB的纹波,因而对于一个5kHz PWM信号需要采用一个1.2Hz低通滤波器。电压输出的阻抗由滤波器电阻决定,如果要保持一个大小合理的滤波电容器,那么它就会相当大。
因此,输出必须只驱动一个高阻抗负载。PWM至模拟转换函数的斜率(增益)由微控制器(很可能是不准确)的数字电源电压来决定。
一个更微妙的影响是:为了保持线性度,在高态中连接至电源之数字输出引脚的有效电阻,以及在低态中连接至地的电阻,相比于滤波器电阻的阻值时,失配必须很小。
最后,PWM信号必须是连续的,旨在把输出电压保持在一个恒定值,假如处理器被置于一种低功率停机状态,这或许会产生问题。
PWM至模拟转换得到改善吗? 1
图2显示了试图弥补这些不足的方法。一个输出缓冲器允许在使用高阻抗滤波器电阻的同时提供一个低阻抗模拟输出。
通过采用一个外部CMOS缓冲器改善了增益准确度,该缓冲器由一个高精度基准来供电,这样PWM信号摆幅在地电位和一个准确的高电平之间。
此电路是有用的,但缺点是组件数量多,且无法改善1.1秒的稳定时间,再者也没有办法在不使用连续PWM信号的情况下“保持”模拟值。
图2:PWM至模拟转换得到改善吗?
改善了PWM至模拟转换 2
LTC2644和LTC2645是具有内部10ppm/°C基准的双通道和四通道PWM至电压输出DAC,可从数字PWM信号提供真正的8位、10位或12位性能。
LTC2644和LTC2645克服了上面提到的那些问题,采取的方法是直接测量输入PWM信号的占空比,并在每个上升沿上将适当的8、10或12位代码发送至一个高精度DAC。
一个内部1.25V基准把全标度输出设定为2.5V,如果需要一个不同的全标度输出,则可使用一个外部基准。
一个单独的IOVCC引脚负责设定数字输入电平,从而允许直接连接至1.8V FPGA、5V微控制器或介于其间的任何电压。
DC准确度指标是非常出色的,具有5mV偏移、0.8%最大增益误差和2.5LSB (12位)最大INL.输出稳定时间为8μs,即可从PWM输入的上升沿稳定到终值(在12位时为1LSB)的0.024%之内。对于12位版本,PWM频率范围为30Hz至6.25kHz。
(图3:4通道PWM至模拟转换)
多用途的输出模式 3
图4示出了一款典型的电源修整/裕度调节应用电路,其利用了LTC2644的另一项独特特性。
把IDLSEL连接至高电平将选择“采样/保持”操作;输出在启动时为高阻抗(无裕度调节),输入端上的一个连续高电平将导致输出无限期地保持其数值,而一个连续低电平则把输出置于高阻抗状态。
因此,在上电时可利用一个PWM突发脉冲(其后随一个高电平)对电源进行一次修整。将PWM信号拉至低电平可使电路干净地退出裕度调节操作。把IDLSEL连接至GND将选择“透明模式”,在该模式中,输入端上的一个连续高电平把输出设定至全标度,而一个连续低电平则把输出设定至零标度。
(图4:裕度调节应用电路)
结论 4
倘若遭遇典型PWM至模拟转换方法的局限性,请不要绝望。LTC2645可从脉宽调制数字输出产生准确、快速稳定的模拟信号,同时保持了低组件数目和代码简单性。
|