PWM D/A任意值电压输出实做
PWM脉冲宽度调制的任意值输出电压源的工作原理及计算原理,我已经介绍过了,也是纸上谈兵,没有实际制作过。这种D/A工作原理的电压源的面世近半个世纪了,任然被广泛使用在高精度校正设备中。说明其比在现代大规模集成电路制造技术发展起来的单片D/A技术有其不可替代的特点。自从上文完成后,就一直琢磨做一款可以输出0-7V的任意值PWM D/A的电压源,分辨率到1uV,并设计了电路,采用单片机主控,外部独立的16位定时器82C54,数字和模拟部分的隔离使用目前最新的高速数据传送专用IC,PWM开关场效应管也用近年出品高速低Rds器件,目的是为了获得尽可能小的脉冲失真,最低位的抖动减小。无奈电路完成后,找到几个编软件的朋友,不是忙就是学艺不精,大半年一直没有结果,这款电路也就一张纸而已了。
近年底手中事情少了些,开始重新考虑方案,单枪匹马只有避开使用单片机了,尽管会大大地复杂电路。设计直接使用逻辑IC做PWM D/A,生成对应电压的PWM波。这是30年前的技术了,不过照样可以出很好的指标,WAVETEK 4800的计数电路就是如此的。考虑到数字电路的复杂程度,采用单路PWM,使用近年出品的器件,单路也可以获得较高的分辨率。电路时钟按12Mhz,计数值150000,PWM波的周期80Hz,使用5阶有源滤波,就可以获得与分辨率对应的噪音指标。考虑到实验的成本,价格不菲的高速隔离和驱动都退而取之磁环了,用磁环自己穿绕最简单的脉冲变压器隔离,只有几匝也不太麻烦。麻烦是最低分辨率的跳动增大,本来单路的分辨率也没有到亚微伏级别,将就了。
基准部分,单独做成一个独立PCB板,用电路简单温度系数和稳定性都有保障的LM399AH,电路位置按4个设计,也可以装一只,丰俭由人。LM399AH的齐纳电流闭环自供,这样使用较资料介绍的要好,有一定的自我稳定作用。输出就直接用7V,不升不降。避开电阻带来的影响。这个实验电路由于非软件校正,加有小幅度调节,但是由于调节不多,电阻的影响有限。最低分辨率7V/150000 ,约50uV.
数字部分看起线路复杂,但是线路特征强,也就那几个功能而已。计数使用同步计数器74LS162和163,最高位使用0-15计数的163,计数的模通过硬件设置到15,其他位设置0-9计数。输出设置用拨码开关,每位10进制数字用一个4位的2进制拨码开关设置。输入数字和计数数字的比较用74LS136,每位数字的比较条件与设置完全相同时,计数值就代表输出的电压值,用这个条件生成PWM的不同占空比。
模拟部分也不复杂,就是开关电路和滤波电路和缓冲输出。开关电路和滤波电路是PWM D/A的难点,严重影响到噪音和线性度。
按照这个电路做后发现,12MHZ的频率下,每一个计数的脉冲宽度是83nS,选用开关器件J2317,勉强可以同步开关这样一个短的脉冲,但是最小计数值1个时,不能稳定传输,有时出来的PWM波上升沿都到了27nS,下将沿更长,对宽度83nS已经不是一个矩形波了。
加上50uV的步进值不符合十进制的习惯,拨码设置要计算一番,很不方便操作。如果通过单片机设置这个计算过程就由单片机实现,人机交换还是10进制。
实际测试的板是70000计数,对应7V基准电压,分辨率是100 uV,符合人的计数习惯。因此数字板电路要割断一条线,飞线一条改变计数模为7。当然这个板卡的计数模是可以从1到15随便改的哈。时钟降低一半到6MHZ,方便选用易购的开关管。
这次试验打板10PCS,自己装了2PCS测试。PWM D/A不神秘,做好也不容易。这次做的实验测试基本满意,噪音与分辨率完全匹配,简单地看,6.5位 10NPLC,设置3458A的显示,裸板不屏蔽,不保温。跳数一个字,或者不跳数。8小时室温环境6.5位看不出波动。线性度从0-6.9999V,最大3PPM,中间段0.01V到6.9V线性度优于1.5PPM,选择器件后可以到1PPM内。位置摆放和触摸板卡都不影响,没有发现人体感应现象。
更加详细的测试,以后逐渐进行发图。
这次还有7套PCB板,大板打样费用282元,邮费22元,后来的基准小板打板100元,邮费22元,要玩的原价出PCB板。也有部分的元件出,要的PM,每套PCB,42.4元。
附原理图和PCB图,为节约时间没有自己做元件,99库中元件大,原理图为了挤在A4纸上,有些凌乱。 不错,高人。 四个399,预期的短稳优于0.15ppm/C,超低频噪声或可达0.05ppm? 楼主想继续做单片机控制的,我可以帮忙完成 老唐,再上几张照片就更吸引人了。 很期待啊 你好唐老师,有成品吗?买一套成品 想要搞单片机控制的,我也可以帮忙啊 看到图了,真不错,要尽快达到楼主的水平啊。 希望楼主同懂单片机的合作,更上一层楼! 唐老师厉害 谢谢楼上的2位单片机高手,现在暂时没有考虑的,如果有做,找你们了 同城帮顶,哪天登门拜访 好资料 好想法好思路好本事,老唐果然厉害。
回 iddqd2001 的帖子
iddqd2001:Very interesting idea!But I think four LM399 is too inefficient. Parallel connection does not allow to reduce the temperature coefficient without LM399 selection. Furthermore RMS noise is only 2 times better, too bad.
Even the old Datron 4000 series have a no .. (2013-01-2522:14) images/back.gif
LM399用LT的AH系列,温度系数只有0.5,LM399用3个最合适 顶,顶,顶,想到,做到,顶楼主。希望多一些这类文章 很不错的东西,简洁明快。 建议出一个模拟模块,留下数字接口,方便大家diy。 支持楼主!对我来说很强大.希望出成品.方便大家玩. 高人 不错,同城顶,不过原理图排版真的很乱,呵呵 请问看LZ使用的晶振看着是有源晶振,精度和温度系数是多少?晶振的这两个参数对整体影响怎样? 看了唐工的这篇文章突然想起了半年前我搞的一个电路,也是使用PWM完成DA的,由于当时测试是使用的胜利的一个信号发生器和AG34401测试的,结果效果很不理想,输出跳动很大,这次重新拿出来测试,使用MCU的16bit的PWM,基准换成了REF5020,分辨率31.25uV,结果相当的惊人,输出还算稳定,整个16bit的占空比输出中,34401的10V档最后一位跳一个字,有的占空比输出还不跳字,分辨使用的8bit和16bit的PWM模式,线性很好,,
<1LSB,初玩高位表,其他不知道怎么测试了,
页:
[1]