38度发烧友--38Hot Volt-Nuts

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 156|回复: 0

发个屌丝版的电压校准仪,0-10V 1ppm PWM

[复制链接]
发表于 2015-4-9 00:02:53 | 显示全部楼层 |阅读模式
这个是个仿4910的屌丝版电压校准仪,参考了thy888和Datron的设计,并且对数字部分进行了优化,使之不需要数模隔离,并且体积减小.输入范围:
0V-12V,尤其是5V以上为好.

输出范围:
0V-VREF,精度为1ppm+3uV左右(?).但是,在输出100mV左右的时候,误差会达到大概5uV,也就是使用的时候最好不要出过低的低电压(出了好像也没什么意义).


数字部分:
采用了EPM240 CPLD+Atmel ATMega16的方案,EPM240仅仅负责计数,这样内部逻辑不会太复杂,可以将它的频率用到尽量大,这样就有尽量好的分辨率;暂时使用100MHz的时钟频率,这样的话理论上在100Hz PWM波下就有1ppm分辨率了.ATMega16负责将计数器的值装入EPM240 CPLD,并且和PC进行串口通信.板载了MAX3232串口通信芯片,可以方便地从上位机或者其他单片机设置该模块的工作状态.

数模隔离:
不进行变压器数模隔离,采用划分地的方法,这样数字部分和模拟部分的回流电流的回流路径就不相同,因而数字部分也不会对模拟部分产生干扰.此外为了防止射频辐射干扰,数字部分用屏蔽罩整个盖起来,只有PWM的输出线输出脉冲.这个方法的好处就是简单高性能,因为不需要频率响应有瓶颈的变压器,上升沿可以很陡,保证了1ppm分辨率的有效性.

模拟部分:
进来之后先LTC2057缓冲一下参考电压,不要直接使用这个电压以防止非Kelvin输入的电压降.缓冲使用了两个LTC2057,一个是给JFET作为参考源,另外一个则是作为驱动JFET的三极管上的电压.之所以要分开缓冲是防止互相干扰导致电压不准,虽然两个LTC2057有点浪费了.
主PWM部分采用两个J106作为模拟开关.这里的两个模拟开关都是N-Channel JFET,因为P-JFET在这里实在是不好使(想想为什么就知道了=_=).那个LM7372运放是4000V/us的视频运放,这里用作脉冲变换,将100Hz的3.3V PWM变换成为正负15V的PWM脉冲,并且接到高频开关三极管2N2369A的基极,控制两个JFET的导通.这两个JFET的控制使用的电压是不同的,一个在缓冲过的VCCREF,另外一个则在0V,这点要注意(因为要保证开通的电压不一样,管子一上一下).关断使用的电压都是正负10V,这个电压可以关断的很好了.两个二极管和电阻用来分别微调开通和关断的速度,进行波形的整形.
接下来是Datron的那个经典的7阶无漂移全极点有源低通滤波器,由于Datron的参数都有,因此这里就不自己设计(自己设计的话方法请看论文).注意这个滤波器的输出都是高阻的,因此注意GUARD一下走线防止漏电.最后一级跟随输出.

电源部分:
由于整个电源的功耗并不很大,使用LM337和LM317已经足够.而且LM317的TO-220封装放倒之后正好能够加一个绝缘导热垫挨着铝壳,有利于散热和均温;为了不引入额外的其他噪声,不在该校准器设计之中采用开关电源,而采用正负18V输入的方式.

输出接线柱:
两个低热接线柱,没有Kelvin输出,因此该屌丝校准器最好在校准万用表的时候去用,不要有输出电流.有输出电流的场合,使用三同轴连接器连接到配套的校准器放大器的Kelvin输出端.这个恒流/恒压放大器的电路也在做了,很简单的LTC2057+三极管的线性扩流方案.





回复

使用道具 举报

发表于 2015-4-9 00:23:22 | 显示全部楼层
用无漂滤波器的意义?后面不是还要加一级跟随,跟随有漂移啊
回复

使用道具 举报

 楼主| 发表于 2015-4-9 00:25:23 | 显示全部楼层
这个实际上是草稿...目前只是用MS仿真过,性能大概如上所述,板子还在做呢,不知道做出来会咋样.做完了上原理图等等
回复

使用道具 举报

 楼主| 发表于 2015-4-9 00:26:15 | 显示全部楼层
这帖子明明是草稿状态,手贱发出去了...好吧,既然这样也就只好发出去了...
回复

使用道具 举报

 楼主| 发表于 2015-4-9 00:26:38 | 显示全部楼层
test01 发表于 2015-4-9 00:23
用无漂滤波器的意义?后面不是还要加一级跟随,跟随有漂移啊

我跟随用的LTC2057基本上没飘移,温飘时飘都基本上是0
回复

使用道具 举报

发表于 2015-4-9 00:30:49 | 显示全部楼层
不错,期待成品
回复

使用道具 举报

 楼主| 发表于 2015-4-9 00:34:13 | 显示全部楼层
上个不成熟的原理图,大家拍砖,肯定还有很多不成熟的地方要改进的
1ppm PWM.pdf (105.19 KB, 下载次数: 351)
回复

使用道具 举报

 楼主| 发表于 2015-4-9 00:41:05 | 显示全部楼层
草稿PCB.png 这个是PCB的草稿
回复

使用道具 举报

发表于 2015-4-9 02:00:40 | 显示全部楼层
pryprypry 发表于 2015-4-9 00:26
我跟随用的LTC2057基本上没飘移,温飘时飘都基本上是0


那跟随的失调电压怎么解决的?
回复

使用道具 举报

 楼主| 发表于 2015-4-9 02:25:37 | 显示全部楼层
test01 发表于 2015-4-9 02:00

那跟随的失调电压怎么解决的?

失调电压忽略,反正几个加起来也就0.5ppm,可以校正的,我专门留了校正电阻的焊盘就是为了这个用途
回复

使用道具 举报

发表于 2015-4-9 09:41:25 | 显示全部楼层
可以用塞朴拉斯的PSOC® 5LP器件。
回复

使用道具 举报

发表于 2015-4-9 10:10:14 | 显示全部楼层
本帖最后由 simon51 于 2015-4-9 10:33 编辑

这么高的频率,pwm是多少位的,关键就在开关部分了,基准用ltz1000电阻升压10v么?期待实际的测试结果
刚算了下,23.xbit的pwm了
回复

使用道具 举报

发表于 2015-4-9 17:28:45 | 显示全部楼层
有成品出售吗
回复

使用道具 举报

 楼主| 发表于 2015-4-9 17:36:49 | 显示全部楼层
不出售,但是会有两台样机送出.要求的回报是帮我准确测量这个PWM生成器的噪声参数等等,到时详细说明;另外多余的空板送出.
回复

使用道具 举报

发表于 2015-4-9 22:12:57 | 显示全部楼层
20150409_220317.jpg




20150409_220626.jpg


20150409_220511.jpg


这是我们做的0—12V,120W字电压基准源。
回复

使用道具 举报

 楼主| 发表于 2015-4-9 22:55:56 | 显示全部楼层
zgkiyn 发表于 2015-4-9 22:12
这是我们做的0—12V,120W字电压基准源。

不错啊,解决方案是什么?
回复

使用道具 举报

发表于 2015-4-10 00:27:08 | 显示全部楼层
4910那个滤波器后面还有一级滤波的。。。话说,既然用了4910的滤波器,为什么不也用单电源供电呢。还有4910的2个运放用的是NE5534,据说这里用5534是最合适的,实际我也没验证过,并且运放都加上了防振的补偿电容,不过模拟的时候电脑可能不会考虑到这个问题,但是你实际做的时候那2个补偿电容是肯定不能省掉的。还发现个问题,你的运放输出端接三极管基极的地方还是建议加上限流电阻比较好。这样可以避免输出万一短路烧毁晶体管或者运放。最后嘛,预定多余的PCB1块
回复

使用道具 举报

 楼主| 发表于 2015-4-10 03:15:57 | 显示全部楼层
天风雪雨 发表于 2015-4-10 00:27
4910那个滤波器后面还有一级滤波的。。。话说,既然用了4910的滤波器,为什么不也用单电源供电呢。还有4910 ...

谢谢指点,5534我也考虑过但是好像还是不如LT1007的指标的,能用LT1007就1007把,我用的拆机件又不贵的说.单电源供电的话那两个JFET的关断搞不定了,单电源的电压要高达20V以上(那两个用的是NMOS).另外那个电阻的确是忘记加上了=_=在仿真图里面是加上了的,但是在这里给丢掉了...补偿电容的话应该必要性不大,MS还是很精确的(我调了仿真参数到极限),不加电容也没有关系,不会自激震荡的.另外LTZ输出加电容震荡的消除方法的确就是增大那个补偿电容的容量.我试过增加那个补偿电容容量之后果然解决加电容震荡的问题.
回复

使用道具 举报

 楼主| 发表于 2015-4-10 03:16:28 | 显示全部楼层
天风雪雨 发表于 2015-4-10 00:27
4910那个滤波器后面还有一级滤波的。。。话说,既然用了4910的滤波器,为什么不也用单电源供电呢。还有4910 ...

PCB的话我这里样机如果做出来没问题会发给大家的
回复

使用道具 举报

发表于 2015-4-10 08:00:35 | 显示全部楼层
0~10V输出的非线性可能很高。直接用模拟开关会简单很多,并且性能也是有保证的。
环节多了总归不好。
输出级(U1)建议增加相位补偿。
回复

使用道具 举报

发表于 2015-4-10 08:08:30 | 显示全部楼层
zgkiyn 发表于 2015-4-9 22:12
这是我们做的0—12V,120W字电压基准源。

很不错,有测试指标没?好像是基准倍压后做pwm吧
回复

使用道具 举报

 楼主| 发表于 2015-4-10 16:42:06 | 显示全部楼层
a-fly 发表于 2015-4-10 08:00
0~10V输出的非线性可能很高。直接用模拟开关会简单很多,并且性能也是有保证的。
环节多了总归不好。
输 ...

模拟开关的话我考虑过,但是得出的结论是可能会更加坑爹,因为模拟开关的电荷注入有可能会比较大,而且在这个正负15V电压范围之内满足我开通速度要求的几乎没有.此外,其绝缘电阻和通道间干扰也是问题,更不要说是正负15V的模拟供电范围.选来选去能用的模拟开关就只有TI家的两个,指标将就,而且都不好买,而且还可能产生未知的BUG.
回复

使用道具 举报

 楼主| 发表于 2015-4-10 16:43:10 | 显示全部楼层
pryprypry 发表于 2015-4-10 16:42
模拟开关的话我考虑过,但是得出的结论是可能会更加坑爹,因为模拟开关的电荷注入有可能会比较大,而且在这 ...

非线性的话恐怕还是JFET来的要好,模拟开关内部更加复杂.thy888用的就是JFET,做到1.5ppm左右,我的发生器差不多也是这个指标.
回复

使用道具 举报

发表于 2015-4-11 18:48:29 38hot手机频道 | 显示全部楼层
是单路PWM输出?还是合成输出1PPM
回复

使用道具 举报

 楼主| 发表于 2015-4-12 19:27:07 | 显示全部楼层
marshallemon 发表于 2015-4-11 18:48
是单路PWM输出?还是合成输出1PPM

单路输出1ppm
回复

使用道具 举报

发表于 2015-4-13 07:39:08 | 显示全部楼层
曾经用ADI的模拟开关(ADG1219)做过一个22bit的PWM型ADC,参考输入为10V,最大输出范围为-12V~+12V,在-10V~+10V范围内的初始非线性为4~5ppm,校准后用3458A测试已经很难测出其非线性了。
滤波器用的不是楼主这种,而是用同步积分型的。PWM直接由51单片机(Silab的C8051)输出,用2个16bit级联到22bit的,不是模拟加,PWM频率约11.7Hz。
说起速度,楼主的驱动电路本身就很难达到其所想象的速度,一个三极管的OC输出,靠1k上拉电阻是很难达到你想要的高速的。
回复

使用道具 举报

发表于 2015-4-13 09:53:32 | 显示全部楼层
a-fly 发表于 2015-4-13 07:39
曾经用ADI的模拟开关(ADG1219)做过一个22bit的PWM型ADC,参考输入为10V,最大输出范围为-12V~+12V,在-1 ...

请问一下你的两路16bit级联到22bit是怎么实现的,能告知一下么,本人才疏学浅,没想明白,谢谢
回复

使用道具 举报

发表于 2015-4-13 13:08:04 | 显示全部楼层
其实并没有使用其现成PWM,而是采用其“高速输出”功能。
其基础的Timer是16bit的,但使用软件参与后可以实现无限长度的,譬如做成一个22bit的。
“高速输出”其实就是一个比较器,当Timer值与设置值匹配时,输出端电平反转,当然此时的Timer还是16bit的,在22bit的整个周期中它将反转64次。
我的做法就是在不需反转时不断地欺骗比较器,只有在需要反转时才给他真实值。
例:
实现一个17bit的PWM,其占空比不要太接近0%和100%(这是条件,不然软件跑不过来的)。
整个周期的计数个数为65536 × 2 = 131072;设置的占空比为25%,即高电平计数为32768;
当前一次计数器溢出时(第0次),将“高速输出”的匹配值置为32768,计数器计到32768时自动反转输出端电平;
计数器不停计数,当此次溢出时(第1次溢出),将“高速输出”的匹配值置为0,那么在计数器再次计到32768时是不会匹配的,输出端自然也就不会反转,直到第2次溢出的同时(其实是计数器与“0”匹配了),输出端再次反转,这样就实现了一个PWM周期的控制了。
回复

使用道具 举报

 楼主| 发表于 2015-4-13 13:25:10 | 显示全部楼层
a-fly 发表于 2015-4-13 07:39
曾经用ADI的模拟开关(ADG1219)做过一个22bit的PWM型ADC,参考输入为10V,最大输出范围为-12V~+12V,在-1 ...

1k电阻已经是一个非常小的值了,用10k的话未必行,但是1k的话以前有人用过,是没什么问题的,至少在MS上面仿真没有问题.模拟开关的话我先试试这个JFET的,不行的话再去上模拟开关,谢谢你的建议
回复

使用道具 举报

发表于 2015-4-13 14:46:52 | 显示全部楼层
a-fly 发表于 2015-4-13 13:08
其实并没有使用其现成PWM,而是采用其“高速输出”功能。
其基础的Timer是16bit的,但使用软件参与后可以 ...


学习了,原来还可以这样使用,软件参于pwm的输出控制,虽然软件参与会影响到pwm的精度,不过影响应该不大,不错的好方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表