lilith 发表于 2012-9-23 01:46:02

数字闭环自校准程控六位半电压发生器的试制和测试(基于 LTC2400/AD5541)

方案来自 Linear 的 An86:AN86 - A Standards Lab Grade 20-Bit DAC with 0.1ppm/° Drift: The Dedicated Art of Digitizing One Part Per Million

设计理念:用 LTC2400 在一个闭环周期中测试一次“参考基准”,这里是 LM399,当然也可以是更加可靠的比如 LTZ1000,然后再测试一次 DAC 的输出,计算两者的比例差异并调整 DAC 使得两者保持一个恒定的比例,从而尽可能消除 DAC 的温度系数和老化的影响,将输出电压尽可能纠正到这个参考基准上。



演示视频:
http://www.tudou.com/programs/view/pJ74U0pL9pU/

视频说明:
视频演示了通过串口设定电压,以及开启或关闭数字闭环的过程。由于数字闭环不停调整 DAC 的输出,所以闭环状态下,噪声会略大一些,在需要低噪声的场合,可以关闭数字闭环,甚至关闭回读的 ADC。


00:07,关闭了回读系统,此时自动转入开环状态(没有回读自然无法闭环),回读显示区域显示“------”,运行指示灯显示“STOP”,此时输出的电压具有最低噪声
00:18,在上位机设置了一个新的电压 10V*
00:26,在上位机设置了一个新的电压 9V
00:45,在上位机设置了一个新的电压 8V,然后打开回读,并设置系统为闭环状态


00:59,闭环调整成功,再设置为开环,之前调整到的电压保持不变
01:15,在上位机设置了一个新的电压 9V,与 00:26 一致,但回读仍开启,可以从屏幕读出实际上的输出电压值以及其和设定值之间的误差
01:22,设置系统闭环,开始调整输出电压值
01:31,闭环调整成功并保持


*开环状态下设定的电压不被纠正,其准确度取决于 DAC 基准电压和 DAC 输出缓冲的增益,这两个值可以在校准程序中调整,但其非线性和电路失调不做校正。表格 B 记录了此状态下输出电压的误差
**目前尚未设计失调的调整电路

上位机程序,由于键盘尚未涉及,故目前只能通过上位机程序设定电压或调整系统状态



设计历程:
https://bbs.38hot.net/read.php?tid=23835
https://bbs.38hot.net/read.php?tid=29282

设计目标:
1、10V 量程下,6位半的电压设定和回读分辨率
2、10V 输出幅度时,1ppm rms 的噪声
3、5ppm/度的温度系数
4、10-25ppm 的年稳
5、曲线拟合纠正后 10ppm 的非线性误差

测试达到的目标
1、达到整 7 位的电压设定和回读分辨率,即 <10V 时,电压设定和回读分辨率达到 1uV
2、实现了 1ppm 峰峰值的噪声
3、样机 A 在 22 - 34 度变温测试中,温度系数优于 0.1ppm/度
4、这个需要时间来检验
5、达到 0.4ppm 的非线性误差

测试数据和图表

1.1 开环状态下的噪声,采样周期 10plc


1.2 闭环状态下的噪声,采样周期 10plc


从此数据看来,具备 6 位半电压设定分辨率的现实可用性

2 线性测试图表,从此数据看来,具备作为 6 位半电压源的实用性*
A:设置值;B:关闭数字闭环时的输出值;C:未进行非线性校准时的闭环输出值;F:非线性校准后的闭环输出值;G:非线性校准后输出值相对设定值的误差

*因为校准值写入已经超过 24 小时,所以此数据可以作为 24 小时准确度的参考,测试条件为环境温度 26 摄氏度;测定仪器 R6581 已在测试前 5 分钟做过自校准


   

lilith 发表于 2012-9-23 01:49:38

呼呼先,明天继续


由于设计此 PCB 的 TR 的失误,这块 PCB 有不少错误,其中一些错误通过割线和飞线做了一些修正,但依然不是比较理想的状态就是了。

背面飞线,主要解决地线乱走的问题


正面飞线,主要是器件连接错误问题,此外,由于单片机部分电源走线过细而不得不单独飞电源线


装壳,由于 TR 的失误,电源板也比较


线性测试,设定值为 1V:


线性测试,设定值为 2V:


线性测试,设定值为 3V:


线性测试,设定值为 4V:


线性测试,设定值为 5V:


线性测试,设定值为 6V:


线性测试,设定值为 7V:


线性测试,设定值为 8V:


线性测试,设定值为 9V:


线性测试,设定值为 10V:

thy888 发表于 2012-9-23 07:56:57

好东西,有玩的了

cdma 发表于 2012-9-23 08:18:03

优秀文章,支持!n神马都是浮云

fxw451 发表于 2012-9-23 08:21:00

好东西,相当不错!!

记忆中黄土地 发表于 2012-9-23 08:52:28

优秀文章,支持!

lp206 发表于 2012-9-23 08:54:41

照片拍的好!! 多上图

hjhjhjhjhjhj 发表于 2012-9-23 09:23:56

优秀文章,支持!n神马都是浮云

mcmwy 发表于 2012-9-23 10:35:28

关注啊

puff 发表于 2012-9-23 10:48:07

强烈支持。。。。

happymanlxh 发表于 2012-9-23 10:48:48

基站 发表于 2012-9-23 10:49:48

好东西,优秀文章

poseidonstorm 发表于 2012-9-23 11:06:57

线性的话还是要靠着 DNL和INL来评估吧?

单看是否输出是一条斜线,似乎无法说明绝对的线性。

逐点扫描几遍用excel加加减减一下~

当时我单单做12bit DAC时候扫一轮就用了6个多小时(34401)。。。

支持DIY~

ripple 发表于 2012-9-23 11:11:59

优秀文章,支持!n神马都是浮云

zpywz 发表于 2012-9-23 11:14:44

期待楼主出套件。

zxmb 发表于 2012-9-23 11:50:46

优秀文章,支持!n神马都是浮云

轩尼诗 发表于 2012-9-23 11:55:26

支持,生命不息,折腾不止。

ascetic_wn 发表于 2012-9-23 12:25:32

a-fly 发表于 2012-9-23 12:27:11

挺好!但其第5项指标的结果是0.02ppm的非线性,尚严重缺乏依据。

lilith 发表于 2012-9-23 12:35:29

回 poseidonstorm 的帖子

poseidonstorm:线性的话还是要靠着 DNL和INL来评估吧?

单看是否输出是一条斜线,似乎无法说明绝对的线性。

....... (2012-09-2311:06) images/back.gif



逐点测试这个确实是比较花时间的,而且其实有一个问题就是 INL 定义为整条直线上输(入)出值和真实值之间的最大误差,所以确实应该逐点,但对于这个其实有 2^24 点的设计来说,逐点扫描确实不太现实,并且其实,1/2^24 的线性度测试好像对表来说也是过高的要求?

不过就“整条直线上输(入)出值和真实值之间的最大误差”来看,INL 应该是 4uVerr / 10V range = 0.4ppm

lilith 发表于 2012-9-23 12:35:55

回 a-fly 的帖子

a-fly:挺好!但其第5项指标的结果是0.02ppm的非线性,尚严重缺乏依据。 (2012-09-2312:27) images/back.gif

嗯,这个是的,还待进一步测试

jsg1980 发表于 2012-9-23 12:52:36

很好很强大 等pcb啊

dy008 发表于 2012-9-23 13:41:09

越来越好了,预定套件啊!

poseidonstorm 发表于 2012-9-23 15:28:51

回 lilith 的帖子

lilith:逐点测试这个确实是比较花时间的,而且其实有一个问题就是 INL 定义为整条直线上输(入)出值和真实值之间的最大误差,所以确实应该逐点,但对于这个其实有 2^24 点的设计来说,逐点扫描确实不太现实,并且其实,1/2^24 的线性度测试好像对表来说也是过高的要求?

....... (2012-09-2312:35) images/back.gif


这倒是╮(╯_╰)╭ 我当时是做了上位机脚本跑的,然后我开开心心的打了好多天的酱油~反正让他跑着呗~哈哈~

照道理来说24bit DA 用26bit AD 或者表(假定是精度)来评估实际是不科学的,必须有更高位数的才可以去做他,而且SNR=6.02*26+1.76 这样的信噪比环境实在太过困难,到时候我把我写的混合信号测量测试方法给你看看,有机会的话讨论下

dinghongbo99 发表于 2012-9-23 17:55:40

优秀文章,支持

7732 发表于 2012-9-23 19:10:11

chuxp 发表于 2012-9-23 20:38:25

超强大啊!已经接近实用了。其实线性度可简单分段修正,觉得六位半的分辨力相对难一些。

一杯清茶 发表于 2012-9-24 07:48:11

非常不错的作品

longshort 发表于 2012-9-24 08:28:07

哈,非常漂亮!
对于24小时稳定度,我觉得应采用第二个24小时的值,这样比较接近真实的稳定性趋势。第一个24小时的稳定度数据其实包含了开机老化的变化。

lilith 发表于 2012-9-24 10:23:49

longshort:
哈,非常漂亮!
对于24小时稳定度,我觉得应采用第二个24小时的值,这样比较接近真实的稳定性趋势。第一个24小时的稳定度数据其实包含了开机老化的变化。
images/back.gif



所以我前天晚上没有关机,持续通电,昨天中午和晚上各读数一次,表现还是很好唷




页: [1]
查看完整版本: 数字闭环自校准程控六位半电压发生器的试制和测试(基于 LTC2400/AD5541)