完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
实现高分辨率数模转换的廉价方法是将微控制器-PWM(脉冲宽度调制)输出与精密模拟电压基准,CMOS开关和模拟滤波相结合。但是,PWM-DAC设计存在一个很大的设计问题:如何充分抑制开关输出中不可避免的大的交流纹路?
|
|
相关推荐
4 个讨论
|
|
当您使用典型的16位微控制器-PWM外设进行DAC控制时,纹波问题变得尤为严重; 这种高分辨率PWM功能通常具有较长的周期,因为它具有较大的2 1616位定时器和比较器的倒计数模数。这种情况导致交流频率分量如100或200Hz那样不方便地慢。如此低的纹波频率,如果您采用足够的普通模拟低通滤波来抑制纹波到16位 - 即-96 dB噪声电平,则DAC建立可以变为整秒或更长时间。 图1中的电路通过将差分积分器A] 图1该DAC纹波滤波器将差分积分器A 1与采样保持放大器A 2组合在一个与PWM同步工作的反馈环路中。 图2]可选的反馈分压器R 2 / R 3在DAC输出范围内提供灵活性,具有公共电压基准。例如,如果R 2 = R 3,那么5V参考电压将产生0到10V的输出范围。这种跨度调整方法的另一个优点是输出纹波保持与参考放大无关。 |
|
|
|
|
|
PWM DAC的持久简单性将始终在设计人员的烹饪书中占据一席之地,但响应时间慢和PWM波纹问题往往会限制其吸引力和实用性。通常的衰减PWM纹波的方法是RC低通滤波器,它永远不会成功地完全消除它,并且只有当你尝试时才会使输出稳定时间慢得令人痛苦。图1显示了一种不同的方法,可以克服这些缺点 - 使用同步S&H(采样和保持)。 图1 S1的采样保持操作消除了PWM纹波。 的设计思路依赖于PWM纹波,这使得它在在V同步任何选定点具有完全相同的电压的固有周期性质C1波形,如图图2。因此,如果同步采样V] 图2]此外,由于同步采样固有地消除了纹波,而与RC1时间常数可能有多短无关,因此RC1产品确实可以做得非常短。这可以 大大缩短建立时间,如图1所示,其中RC1 =100μs= T c = PWM周期,在示例情况下,小于15·T c = 1.5 ms 导致稳定(至8位精度)。但是,当然,正如所有好事一样,我们知道必须有限制。所以问题就变成了:RC1与DAC功能的一致性有多短,以及哪些设计因素限制了? 仔细观察V]V out = V s T p / T c + V 纹波 随着... V 纹波 = V s(T p / T c)(1 - T p / T c)/(2·R(C1 + C2)/ T c) ]因此,使用DAC V out函数对此非线性分量求和也会使DAC传递函数非线性,导致积分非线性(INL)误差,在示例电路常数下,可能会达到满量程的8.3%。对于许多应用来说,这么多的INL是不可接受的。幸运的是,有一个简单的(软件)修复:DAC设置的数字预加重。例如,使用图1的常量,其中...... R(C1]如果我们改变T p ...... T] V] 图3]值得一提的 是“可选”元件V s和S2,它们从精密基准电压(V s)产生RC1输入波形,从而避免叠加噪声和狡猾的调节通常是逻辑电源的特性(因此依赖于PWM逻辑)信号)在V out上。当然,如果您的应用的精度要求不足以使其不必要,则可省略它们,并且R仅直接连接到PWM信号。 值得一提的是,正如我在开头所说的那样,持久的简洁性是] 图4 三种不同输出设置下的DAC响应 |
|
|
|
|
|
需要来自没有数模转换器(DAC)的微控制器的模拟输出时,您可以连接外部DAC芯片。但是对于更便宜的解决方案,使用脉冲宽度调制(PWM)输出并添加低通滤波器(LPF)来提取其平均值,该平均值等于PWM信号的占空比。
图1 RC LPF提取PWM信号的平均值 RC滤波器去除非直流分量; 剩下的是平均信号U OUT。如果PWM信号的周期T等于63个时钟,则信号 U OUT可以具有64个离散DC值之一(0到63,六位分辨率)。 低通RC滤波器的时间常数t必须足够大以平滑输出信号U OUT。涟漪,?ü OUT,应小于一个至少显著位(LSB)。最坏的情况是占空比为50%(图2)。如果t比周期T大得多,则电容充电电流I C 和变化?U OUT可以近似为: 对于6位DAC,?U OUT应小于V CC / 64,需要滤波器t = RC = 16·T。 图2 滤波后的输出(蓝色)应具有少于一个LSb的纹波。 一些实用数字:低功耗微处理器通常使用32768 Hz的晶体振荡器,此时钟信号用于PWM模块。对于6位PWM,周期T为64/32768~2ms,需要32ms的时间常数。必须等待5t(160ms)才能使6位转换器稳定下来。慢。本设计理念解释了如何加快速度。 微控制器中的PWM模块通常可以产生多个PWM信号。考虑对两个基于PWM的3位DAC(DACH和DACL)的输出求和,其中DACL的输出在加法之前降低到八分之一幅度。产生的信号用作6位DAC,与简单版本相比具有重要优势:对于相同的分辨率,周期T仅为8个时钟周期,并且所需的时间常数t为前者的1/8,从而加快了建立速度时间乘以八。对于两个PWM信号(PWMH,PWML),RC滤波器中的电阻很容易实现这种布置: 图3 组合两个基于PWM的DAC输出 输出信号U OUT由下式给出: 该技术已在TI MSP430F5132微控制器中实现: // 在两个PWM中配置 PWM - 32 kHz / 8 = 4 kHz :: 6位,上电时仅执行一次 TA0CCR0 = 7; //最多7个(包括) TA0CTL = TASSEL__ACLK | MC_1 | TACLR; TA0CCR1 = 0; TA0CCTL1 = OUTMOD_6; //切换/设置 TA0CCR2 = 0; TA0CCTL2 = OUTMOD_6; //切换/设置 // 使用 ::写入PWM模块以实现所需的DAC输出 DAClevel ++; //下一个DAC级别,DAClevel是一个char TA0CCR1 =(DAC等级>> 3)&7; //设置PWMH:MSB 3位 TA0CCR2 =(DAClevel)&7; //设置PWML:LSB 3位 图4 初始化和写入6位(3 + 3)基于PWM的DAC的代码 图5 基于6位PWM的DAC的测量输出; 蓝色:如图1所示(160ms建立); Violet:如图3所示(20ms解决) 可以使用1%电阻实现7位DAC。这次,两个PWM信号用于产生两个三位DAC,总共六位,并且在P3.7处MSb简单地设置为0或1。 图6 基于七位PWM的DAC的实现 图7 图6电路的测量输出; 注意良好的线性。 // 配置 PWM - 32 kHz / 8 = 4 kHz :: 7位,两个PWM和一个数字引脚,上电时仅执行一次 // 与图5 中的configure部分中给出的相同 // 使用 ::写入定时器比较器以实现所需的DAC输出 DAClevel ++; //下一个DAC级别,DAClevel是一个char TA0CCR1 =(DAC等级>> 3)&7; //设置PWMH,MSB,3位 TA0CCR2 =(DAClevel)&7; //设置PWML,LSB,3位 if(DAClevel&BIT6)P3OUT | = BIT7; 否则P3OUT&= ~BIT7; //设置MSB,无PWM 图8 初始化和写入7位(3 + 3 + 1)基于PWM的DAC的代码 这里的速度 提升甚至更大。一个简单的PWM DAC周期为128个时钟周期(128/32768 s -1 = 3.9ms),导致t为32· T = 125ms,建立时间为5·125ms = 625ms。图7稳定在40ms - 快16倍。更高阶的LPF也有助于缩短建立时间。 |
|
|
|
|
|
每个PWM DAC设计都需要模拟滤波,以将所需的PWM占空比成比例的DC分量与不需要的AC纹波分开。其中最简单的是基本的RC低通滤波器,它提供峰峰值纹波幅度(对于50%PWM占空比的最坏情况,其中T PWM = PWM周期时间,假设RC> T PWM)的: V 纹波 / V 满量程 = T PWM / 4·RC 明显的设计折衷是,虽然通过选择足够大的RC产品可以实现任何所需程度的纹波衰减,但是建立时间将相应地受到影响。例如,如果我们(相当逻辑地)选择一个定理带的定义等于纹波幅度,那么...... T sett = RC·ln(V 满刻度 / V 纹波) = T PWM ·V fullscale ·ln(V 满刻度 / V 纹波)/(4·V 纹波) 这种关系的后果可以通过8位案例来说明: 给定:V ripple / V fullscale = 1/256; RC = 64·T PWM T sett = 64·ln(256)·T PWM = 355·T PWM 其中,即使是相当迅速的32kHz(31μsŤ PWM),预测了积极的冰 11毫秒的稳定时间。 显然,如果稳定时间是一个关键的设计参数,我们需要做得更好,找到一个不太简单的过滤方案。我以前的DI说明了这个方向的极端可能性,快速建立的同步PWM-DAC滤波器几乎没有纹波。 但并非每个不能容忍1月份糖蜜的应用程序355·T PWM建立时间都需要或可以证明这种复杂的过滤解决方案是合理的。这里介绍的设计理念解决了这些中间应用。如图1所示,它通过一个反相器R2和C2增强了基本的R1 / C1低通,它们组合起来消除和减去(大部分)所需直流信号中不需要的交流分量,留下一个相对干净的模拟输出的建立时间远远小于简单的RC滤波器。 图1 PWM DAC纹波消除器的波形和原理图 但是“相对干净”有多纯粹,“多少”多快?设置R2 = R1和C2 = C1,新电路的纹波和建立时间数字为: V 纹波 / V 满量程 =(T PWM / 4·RC)2 T sett = T PWM ·ln(V 满刻度 / V 纹波)·(V 满刻度 / 16·V 纹波)1/2 再次参考8位情况(图1中以图形方式说明): 给定:RC = 4·T PWM T sett = 22·T PWM = 0.69 ms 在32 kHz周期内,它的速度快16 倍,具有平方纹波幅度比! 对于许多应用来说,这代表了电路复杂性适度增加和PWM DAC性能显着提高之间非常值得的权衡。 |
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 17:57 , Processed in 1.158148 second(s), Total 53, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号