在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2771|回复: 10

[求助] 请教一个SAR ADC的DNL问题

[复制链接]
发表于 2021-1-15 16:11:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教各位大神一个SAR ADC的问题
我们有一款1M, 12bit SAR ADC
使用的是比较传统的办法,直接全电容阵列,没有分段
高4位用了温度计编码
比较器就是传统的静态预防大+Latch

目前测试,SNDR基本能到10.5bit以上
但是DNL在255和256这个地方出现异常
码密度上看,就是255码密度很大,而256几乎没有

而511和512,以及后续256的整数倍,没有这种现象

感觉不是电容mismatch,,,电容mismatch不会造成255有很多,256没有

请教各位大神有其他线索吗

谢谢

发表于 2021-1-16 12:51:26 | 显示全部楼层
电容mismatch怎么不会造成255有很多,256没有?
发表于 2021-1-18 14:34:15 | 显示全部楼层
不就是电容mismatch吗
发表于 2021-1-18 16:10:04 | 显示全部楼层
4+8结构,thermometer的第一个element权重正好是256,而256失码,说明第一个element的权重比binary总和+1LSB还要大,这样造成255wide code,256miss code
别的256倍数处code正常,说明element与element之间的失陪小,除第一个外的element与binary之间的失配也小
也许第一个element因layout原因偏大了不少
建议多测几颗片子,确定是随机失配还是固定失配
发表于 2021-1-18 17:33:57 | 显示全部楼层
只有255和256有问题, 其他都没有?
 楼主| 发表于 2021-1-19 11:59:20 | 显示全部楼层


风也信子 发表于 2021-1-18 16:10
4+8结构,thermometer的第一个element权重正好是256,而256失码,说明第一个element的权重比binary总和+1LS ...


我最初的想法和你一致,第一个thermal 对应的电容偏大,其他themal code对应的电容没有
但做了行为级仿真,发现这种情况会让255很多code,而256并不会失码

所以我也糊涂了。。。
 楼主| 发表于 2021-1-19 13:26:56 | 显示全部楼层


jeffej 发表于 2021-1-18 17:33
只有255和256有问题, 其他都没有?


是的,只有这两个code有问题
发表于 2021-1-19 16:15:03 | 显示全部楼层


nihaobuhaoa 发表于 2021-1-19 11:59
我最初的想法和你一致,第一个thermal 对应的电容偏大,其他themal code对应的电容没有
但做了行为级仿真 ...


还是倾向于怀疑电容失配,每个芯片都是相同表现?建议可增加非理想因素直接前仿,就仿255附近即可
行为级模型与电路架构高度一致才可信,我记得不同结构不同切换方式是有差别的,以前做校正时遇到过类似问题
 楼主| 发表于 2021-1-19 18:06:30 | 显示全部楼层


风也信子 发表于 2021-1-19 16:15
还是倾向于怀疑电容失配,每个芯片都是相同表现?建议可增加非理想因素直接前仿,就仿255附近即可
行为级 ...


前仿也仿真过的
加大thermal code第一个电容的size
结果也是255特别多,256还是正常的code density
发表于 2021-1-19 20:30:21 | 显示全部楼层


nihaobuhaoa 发表于 2021-1-19 18:06
前仿也仿真过的
加大thermal code第一个电容的size
结果也是255特别多,256还是正常的code density


IMG_20210119_200752(1).jpg
抱歉之前回复不够严谨
按你说的255特别多256正常的情况,如果是trail and error的传统结构,MSB电容偏大的确是这样:V1000作为trail电压,如果输入小于V1000,则ADC code走0xxx段,结果0111便会wide code,但只要输入大于V1000,走1xxx段的话,就是正常曲线,1000就是正常code density
反观MSB电容偏小时,输入小于V1000走0xxx段,0111附近就会出现narrow code甚至missing code,1000仍然是正常code density,有的设计里把V0111作为decision level,则0111正常code density,1000附近narrow code甚至missingcode,还有的设计把V0111和V1000的中点作为decision level,不考虑建立和wrong decision的情况下,0111和1000附近都会narrow code
上面不管哪种,都跟你的测试不符,当然具体情况跟你的结构和切换方式有关系。可以试试:
1,人为减小电容,不同量,都试试
2,提参来看电容值是否符合预期
3,后仿真复现
都试试,总能找到
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 20:32 , Processed in 0.023500 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表