马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
将PWM与一个小型R-2R梯形DAC相结合,既可大大减小PWM纹波,又能增加DAC分辨率,从而提高两方面的性能。本设计实例利用一个8电阻阵列和3个输出引脚对R-2R梯形DAC进行修改重构,修改的目的是将底部2R连接到PWM输出而不是将其接地。
将PWM和小型R-2R梯形DAC相结合可同时提高双方的性能,它能显著减小PWM纹波,还能提高数模转换器(DAC)的分辨率。
本设计实例利用一个八电阻阵列和三个引脚,将底部的2R从连接到地改为连接到PWM输出,对R-2R梯形DAC进行了重构(图1)。
图1:混合式PWM/R-2R DAC。 在梯形结构中,VCC分为8段,每一级(0% PWM)到相邻更高级(100% PWM)的空隙由PWM填充。这种方法可以将纹波减小到1/8,同时分辨率也会增加额外3个高阶比特。或者你也可以从原始PWM占空比值的顶部拿走这3个比特,然后将其时钟速率乘以8。这样仍能实现8:1的纹波减小,但时钟速率的增加会将PWM噪声进一步压到滤波器的底部,得到更大的衰减。
仿真
我对这种混合方法进行了仿真。
图2:比较/仿真电路。 要与传统的简单低通滤波器(图2)进行比较,你应记得R-2R梯形结构的输出电阻是R,因为我建议将阵列中的两个电阻并联起来形成R(单个电阻是2R),一个10kΩ的阵列产生5kΩ的输出电阻。这就是我在传统方法中使用的电路,其中的1µF电容是相同的。我将PWM设为50%的占空比,因为这时会产生最差的纹波。仿真结果(图3)显示传统方法有约4mV的波纹,而第一种方法(在原8比特基础上增加3个新的比特)生成的纹波是493µV,相当于传统方法的1/8。第二种方法(将PWM时钟提高8倍,总比特数仍然是8)产生的纹波仅61µV,大约是原始纹波的1/65。
图3:仿真结果。 图4a(PWM+低通)和图4b(11位混合)是将电压从0V缓慢地一步步调到5V的复杂仿真结果。滤波器中的电容特意选用了很小的值,以便我们能看清这种情况下的纹波。在正常的R-2R梯形中增加一个阶梯状图形(图4b中的红色),以便显示PWM是如何从一级移动到下一级,甚至越过R-2R梯形顶部直到5V。
图4:仿真得到的基本PWM DAC(图4a,上)和混合DAC(图4b,下)的纹波。 用数字控制振荡器(NCO)技术代替PWM也一样可行。数控振荡器(增加一个值到累加器并输出进位)比PWM更有优势,因为它可以减小50%设置点附近的纹波(通过增加转换频率),这是简单PWM表现最差的地方。
用任何其它的DAC也行得通:只需将PWM/NCO/任何信号连接到最低有效位。
测试
下面是一些测试结果:我本来打算使用容差是±2%的电阻阵列,±1%甚至±½%的电阻阵列也找得到,不过我手头没有,所以我就用单个精度为1%的电阻。我将运行于16MHz的ATmega328处理器的定时器timer1设定为给8位PWM使用,并使用10位ADC开展测量。由于PWM、R-2R和ADC参考的都是VCC,我们可以忽略这个因素,针对8级中的每一级只检查从ADC读取的值,PWM则设为0%和100%。理想情况下,第一步的100%输入对下一步应该没有任何影响。
这些值看起来非常合理。然后我使用了一种技术,借助ATmega328的功能,使用与生成PWM相同的定时器来设定模数转换,我把这种技术称之为“Slow-scilloscope”。这样我们就可以测量给定PWM周期内的纹波。图5是带低通滤波器的传统PWM(绿色)和混合(黑色+红色)的合成图。这两种方案都使用了非常小的电容,以便能看清纹波。
图5:测量得到的PWM和混合式DAC的纹波。 图6显示了在每种混合设置下的非同步模数转换的曲线,允许结果中的纹波作出(或多或少)随机的变化。这次使用了一个较大的电容以便获得更加真实的结果。
图6:测量得到的混合数模转换器纹波,电容为最终值。 总之,我们已经看到,PWM可以填充R-2R DAC阶跃之间的空隙,R-2R梯形结构可以显著减小通常由PWM加上低通滤波器产生的纹波,或者两者兼有。 |