历史上的今天
返回首页

历史上的今天

今天是:2024年12月09日(星期一)

正在发生

2020年12月09日 | 高速ADC/DAC的测试方法

2020-12-09 来源:elecfans

演讲内容

大家好,我是今天做分享的任彦楠,非常荣幸能和大家交流,今天我分享的内容是within我的knowledge, 也希望将我不懂的地方向大家请教。

今天我要和大家分享的是高速ADC/DAC的测试方法~

ADC主要的测试指标分为静态指标和动态指标两类:静态指标,包括INL、DNL;动态指标,主要是基于SFDR,在此基础之上计算的ENOB(有效位数)。尽量言简意赅吧。

ADC的测试方法,其实简单来说,就是输入和输出,输入怎么给?输出怎么测?怎么计算?以及换算到spec。输入主要是两部分:数据和clk。大家知道ADC的数据和clk都用什么给信号吗?

听众答:ADC的数据是指输入的模拟信号吗?

任老师:哈哈,是的,信号发生器;然而对于ADC,尤其是高精度的ADC,最关键的是信号源的选择,这里需要的是高精度的信号源,也就是说信号源的动态范围要高于被测ADC两个精度位以上,这是关键之一。第二,就是信号源和clk的同步。

接着,我们来看输出,ADC输出的是digital信号,也就是说输出采样到的是数字信号。但是ADC的动态参数表示都是基于频谱分析的方法。也就是说要将输出、采样到的数字信号用FFT变换到频域,这就是大家看到ADC的测试程序为什么主函数是FFT 函数的原因。我记得我们当时实验室测得,10bit以上ADC,都至少是1024点。

听众问:或者转到频域,频率精度到什么精度才合适?

任老师:实测的时候,你有时会发现,FFT点数选的少,测试结果会好,不知大家有没有碰到过这种情况?嗯,但其实这是一种假象。你想10bit ADC输出的全位分辨率就是1024,如果没有采到1024个点,说明丢失了部分数据,不能真实反映ADC的性能。所以大家测试的时候,不能追求偶尔测到一个好的spec, 而应该重点关注自己的测试方法和计算方法,是否真实反映了芯片的性能。

刚刚讲了动态指标,静态指标就相对容易,用高阶的数字万用表,不是手持的那种哦,是专业的可编程的6位半的万用表,把输出全部采下来,使用简单公式就可以计算出INL和DNL,这个就不会用错。动态指标SFDR和ENOB会由于FFT取样点数的变化而变化;但INL和DNL算出来什么就是什么,没有数字转换的问题。数据频率是ADC可以接受的最大输入信号的频率,比方说100M;而时钟频率是采样率,比方说1GS/s。我们在学校的时候,可能觉得测到一个好的spec发个paper就好了;但是工作之后就不一样了。芯片到底怎么样,你心里能没点底数么?我用一张图总结一下最基础的ADC,尤其特指并口ADC的测试基础方法;后面我们再谈串口ADC。

听众问:6位半万用表测ADC?应该是DAC吧?

任老师:是ADC哦,ADC输出的digital, 用万用表可以测到;DAC输出的是analog,是连续的模拟信号,直接用频谱仪就可以看了。看这张图,其实动态指标全部都是用逻辑分析仪采集。刚才说INL和DNL大家如果觉得逻辑分析仪复杂的话,用万用表也可以完成。但是动态指标就必须得用逻辑分析仪采集了。哦,漏了一点,信号源和ADC的输入之间,要接带通滤波器,把频点选出来。

Times问:用逻辑分析仪抓出来的数据,放到MATLAB里分析,以前adi有MATLAB例程。

任老师:Times 对!专业!所以大家测试ADC的时候,有一个必须的投入,就是得多买几个质量好的滚降系数高的带通滤波器。带通滤波器推荐大家用那个 mini circuits, 上次分享的李玮韬,是我的闺蜜,她在我们实验室的时候,我们老师给她出钱买了好多好用的带通滤波器,嘿嘿。因为整个信号通路上,如果信号源质量特别好,特别纯净;ADC的能力也很好,但是带通滤波器滤不净,引入杂波,就得不偿失了。

大家好,刚才我发的那个最后一张图片大概就是最上面的一个总结。这个是典型的一个并口,就是并口的ADC,因为如果少的话慢的话,我们传统都是采用并口输出码,那接下来呢,我会讲一点串口。因为群里如果有AD的大神,就知道现在公司里面做的。高速的ADC用的都是串口,并口已经是一种,就是比较早一点的技术。

串口就是这样子的哈。JESD204B是SerDes的接口规范。

听众问:以12位ad为例,即便输入稳定电平,噪声本身可能就会引起低2位的跳动,如何能够用万用表测到准确的INL DNL呢?

任老师:大家现在看到ADI做出来的新的2GS/s以上的ADC/DAC都是这种接口的了,很高级~~我换算一下啊,6位半的万用表就是可以测到小数点之后6位半。如果10bit ADC, 输入1V,最小格是1/1024,那4位半的万用表就够了。

听众问:lsb,并不是绝对值。

任老师:哦~~ 那你说的噪声是来源于哪里呢?电源?AD本身,还是输入源?哈哈,那等一下我们再讨论这个哈。

SerDes的信号,大家看到和并口主要的区别是在发送端和接收端上的并串/串并转换、8b/10b编码,差分驱动几个模块.虽然大家设计的时候在这几个部分都要花很大的精力,可是在测试的时侯,就变成了一个黑盒子,主要考虑的还是如何把输入信号给进去、时钟怎么同步、怎么把输出信号采集出来三大问题了。

我长话短说,

关于Serdes测试的时候,和并口测试的不同,大家看这张ppt ~好在Serdes的测试方法现在也都是十分成熟的了,主要的ADC设计公司用的方法大致相同。

听众问:感觉其中时钟PLL是个关键环节。你们keysight出一个支持204B的接口的逻辑分析仪选件就好了。对测试工程师来说看到的就是被测数据。

任老师:你说的对。Serdes和刚才的并口测试相比,输入信号没变,还是用高纯度的信号源,高纯度、单频点源,就是ADC输入的唯一需求,一旦拥有,别无所求,差别在于输出部分,其实就是支持204B的接口的逻辑分析仪 .被大家猜中了结局。

听众问:204b接口的adc测试时可不可以用带高速口的FPGA?

任老师:可以的~~只要接口匹配,精度足够,就可以~~采样率够,和时钟可以同步。你们自己设计的FPGA板吗?测多少bit的ADC?

听众问:ADC数字输出的?

任老师:万用表是测DAC,给输入。没有测ADC的。FPGA 和逻辑分析仪的道理一样的,都是数据采集板。

听众问:DNL vs Noise,INL vs SFDR

任老师:就是我记得我们实验室以前用FPGA 的时候,一直没搞定时钟同步。


推荐阅读

史海拾趣

CINCH公司的发展小趣事

在快速发展的同时,CINCH公司也注重质量管理体系的建设。公司引进了国际先进的质量管理理念和方法,建立了完善的质量管理体系,并通过了ISO9001等质量管理体系认证。这一举措不仅提升了公司的产品质量和服务水平,还增强了客户对公司的信任度和满意度。

Custom Components Inc公司的发展小趣事

随着全球环保意识的不断提高,电子行业对绿色环保和可持续发展的要求也日益严格。CCI积极响应这一趋势,将绿色环保理念融入公司的战略规划和日常运营中。

公司不仅采用了环保材料和绿色生产工艺来降低产品对环境的影响,还通过优化生产流程和资源利用等方式降低能耗和排放。此外,CCI还积极参与行业环保组织和公益活动,推动整个行业向更加绿色、环保的方向发展。

ERP Power公司的发展小趣事

在这个故事中,我们将探讨ERP Power如何在云计算技术的推动下实现创新发展。通过引入云计算技术,ERP Power系统为企业提供了更加灵活、可扩展的信息化解决方案,帮助企业降低了IT成本并提高了系统安全性。

Daewoo公司的发展小趣事

Daewoo公司最初由金宇中于1967年创建,起始于一个规模不大的纺织厂。然而,金宇中并不满足于纺织业的局限,他敏锐地察觉到了韩国经济快速发展的机遇。于是,Daewoo公司逐渐扩展业务领域,70年代侧重发展化学工业,80年代后更是进军汽车、电子和重工业领域,并积极参与国外资源的开发。这种前瞻性的战略布局,为Daewoo公司的快速发展奠定了基础。

胜利(VICTOR)公司的发展小趣事

进入21世纪,胜利公司加大了对技术研发的投入,不断推出具有创新性的产品。例如,公司研发的碳纤维羽毛球拍,不仅轻盈耐用,而且性能卓越,迅速成为市场上的热销产品。此外,公司还积极引入新材料、新工艺,不断提升产品的品质和性能。

Arcolectric公司的发展小趣事

随着技术的不断进步和市场需求的日益多样化,Arcolectric开始积极拓展其产品线,并逐渐将产品应用于电脑、电源设备及家用电器等多个领域。公司通过不断创新和研发,成功推出了一系列符合市场需求的新产品,进一步扩大了市场份额。

问答坊 | AI 解惑

第3章 电路设计原理 第4章 原理图编辑.

第3章 电路设计原理 第4章 原理图编辑.…

查看全部问答>

公司领导好无聊啊!

今天,我正在外面。结果公司领导给我一电话,先是问我在干啥?然后东扯西撤,半天不入正题。搞的我急了,问他要干啥?结果说,要我平时有空想想公司产品碰到的一些问题的解决办法。…

查看全部问答>

求汽车电子调压器的课程设计

二、汽车电器与电子设备课程设计题目由指导教师指定,设计内容为: 1、电子调压器的设计,参考《汽车电器与电子控制技术》教科书图1-42、1-45电路 三、课程设计内容要求 本课程设计要求同学首先根据课题查找有关资料,它包括各种汽车维修技术手册 ...…

查看全部问答>

一个关于SD卡写操作的问题

              在s3c2410开发板上,测试SD卡写块操作,就是把内存缓冲区里的数据写到SD卡数据寄存器里,现在遇到一个问题,就是在写之前,有一个判断FIFO是否满的语句,如下所示,可是这一句怎么都执行不 ...…

查看全部问答>

VC移植到EVC的通讯,connect过不去,不知为何,希望大家帮下新人

我在EVC下搭建客户端,现在在做TCP的通讯 本来觉得移植VC的就行,编译执行没有错误,但是模拟器会停止响应,跟踪调试也会卡在connect处 不知道为何 [code]         SOCKADDR_IN Tsockaddr;         T ...…

查看全部问答>

msgQreceive返回error,表示什么?

是代表队列没数据,还是什么错误啊?一般都是什么引起的?多谢啊…

查看全部问答>

关于DeviceIoControl返回87

试图使用DeviceIoControl向过滤驱动发送控制代码。 源代码如下: #define START_FILTER CTL_CODE(FILE_DEVICE_CD_ROM_FILE_SYSTEM,XD_CTL_CODE_READONLY,METHOD_BUFFERED,FILE_ANY_ACCESS) #define STOP_FILTER CTL_CODE(FILE_DEVICE_CD_ROM_FIL ...…

查看全部问答>

定制带ddraw的wince6.0中文模拟器

各位大侠好,现在定制好了带ddraw的wince6.0中文模拟器了!可是创建的ddraw程序去无法运行!而该ddraw程序在板子上跑是正常的!由于板子现在要用。我这边无法测试!所以想到定制一个这样能够调试ddraw程序的模拟器! 现在问题:创建ddraw失败,不知 ...…

查看全部问答>

bootloader疑问

编译生成的nboot.bin nboot.nb0 sboot.bin sboot.nb0文件怎么用。我知道一个是串口一个是网口下载的,但是我的开发环境需要用串口输出调试信息,用usb下载该怎么弄?也支持网口但是还没试过。 我的开发板上有一个vivi的bootloader跟上边的这两个有 ...…

查看全部问答>

经典测速方案在低速情况下的研究(精简版).

经典测速方案在低速情况下的研究(精简版).…

查看全部问答>