18位SAR ADC设计:数字校准与失调消除实现120ksps高精度
简介这份PDF文档围绕18位逐次逼近型模数转换器SARADC的设计实现展开系统介绍SARADC的结构、逐次逼近过程及影响转换性能的匹配度、失调与噪声等因素重点阐述基于二进制加权电容阵列的数字校准算法和比较器自动失调校准技术。资料面向数据转换器设计、混合信号集成电路领域的工程师和学生也可作为工业控制、传感器网络、医学成像等高速高精度采集场景的技术参考。压缩包为单个PDF文件共1个文件大小244KB内容精炼便于直接阅读与复用。方案在120ksps采样率下实现18位精度覆盖校准码产生、芯片状态切换、比较器失调消除等关键设计环节并给出了完整的仿真验证结论可帮助读者快速掌握高精度SARADC的工程实现路径。目前已有1226人学习下载。1. SARADC设计实现文档18位精度是怎么在120ksps采样率下凑出来的做数据转换的人都知道SAR ADC做到14位不稀奇做到16位要花点功夫做到18位就得跟电容匹配、比较器失调和噪声这三座大山硬碰硬。这份设计实现文档给出的答案是不用激光修调不靠特殊工艺只靠数字校准算法加比较器自动失调消除就在120ksps采样率下把精度推到了18位。文档从SAR ADC基本结构讲起重点放在基于二进制加权电容阵列的数字校准算法和辅助输入端失调消除技术上适合正在做高精度数据采集、混合信号芯片或传感器读出电路的人参考尤其是想理解校准码怎么生成、怎么烧进ROM、怎么在正常工作时加载回去的这部分值得照着推一遍。2. 为什么18位SAR ADC难做匹配、失调、噪声的三重夹击2.1 SAR ADC的工作原理从100…00开始逐位逼近逐次逼近型ADC的核心操作说起来不难采样保持电路先把模拟输入VIN冻住N位寄存器先置成中间刻度也就是最高位为1、其余位为0的状态这时DAC输出VDAC等于VREF/2比较器拿VIN和VDAC比一次。如果VIN大于VDAC比较器输出高电平寄存器最高位保持1否则清0。接着控制逻辑挪到下一位把它置1再比一轮。这个过程从MSB一路走到LSBN位转换结果最终留在寄存器里。二进制搜索这点大家应该不陌生但真要把它做成18位麻烦在于每一次比较都要足够准。18位意味着LSB对应的电压分辨率是VREF/262144如果基准是2.5V一个LSB大约只有9.5微伏。比较器的失调电压如果有个几毫伏前面的比较结果全是错的后面再怎么逐次逼近都是在错误的基础上修修补补。文档里专门提到比较器精度要做到优于19位就是给整个链路的误差预算留了余量。2.2 精度的三个拦路虎电容匹配、比较器失调、噪声先看电容匹配。CMOS工艺下无源器件的匹配精度有限二进制加权电容阵列的SAR ADC直接做通常只能到12位精度。原因很直白最高位电容和最低位电容的比值要做到2的17次方比1而普通工艺下的电容失配通常在千分之一到万分之一量级撑死也就够12到13位。激光修调能改善匹配但文档点出了它的两个问题一是封装时的机械应力会把修调效果打回去二是成本扛不住工业生产。这正是数字校准算法上场的理由。再看比较器失调。多级比较器每一级的晶体管失配都会贡献失调电压而且这种失配是随机的没法预先估计。在18位ADC里输入失调电压稍微大点直接就把分辨率吃掉了。文档用的方案是在每一级放大器加辅助输入端通过反馈环路把失调电压存到电容上正常工作后再叠加回去消除掉。这种做法能成立依赖一个物理事实MOS管的栅极输入电阻近似无限大电荷可以长期驻留在栅极电容上。还有噪声。热噪声和KT/C噪声在高精度ADC里是绕不过去的采样电容太小噪声底就压不下去电容太大建立时间和功耗又吃不消。文档在结论里特别提到低功耗是这次设计的另一个优点这背后其实是一组取舍用数字校准补偿匹配误差电容阵列就不必做得过大噪声和功耗的压力自然小一些。2.3 结构与选型为什么是二进制加权电容阵列加准差分工业界现成的SAR ADC结构大致有三类二进制加权电容阵列、分段电容结构、RC混合结构。精度覆盖10位到18位不等。文档选择二进制加权电容阵列主要是看中它功耗低而低功耗恰恰是传感器网络、便携式医学仪器这类场景最敏感的需求。具体实现上用的是两组18位电容阵列准差分结构。两组阵列分别接到比较器正负输入端这步设计有两个直接好处。一是比较器两端输入负载相等失调校准的收敛条件更干净二是高位电容可以对全差分信号采样同时输出全差分参考电压。校准这条线上电容阵列I的低位作为正常低位子DAC产生SAR所需的参考电压电容阵列II的低位专门用来测量和校准两组阵列高位的非线性。这种把校准通路和数据通路分离的做法校准期间不影响正常转换路径比较器两端的负载始终一致。3. 数字校准算法从低位到高位校准电容阵列的思路与参数细节3.1 校准的根本思路先测失配再存ROM用时加载数字校准技术的出发点很简单芯片正常使用之前先借用ADC自身电路把非线性因素测出来经过算法处理生成校准码存进存储器等到ADC正式工作再按时序把校准码加载回电容阵列补偿失配。文档里提了一句常见的校准算法是从高位到低位而这份设计反着来从低位到高位依次校准。为什么从低位开始更合理低位的电容权重小校准它们需要的测量精度要求更高而测量基准本身又依赖更低位已经被校准好的状态。由低到高意味着每一步的校准都站在已经修正过的低位肩膀上误差不会往上累积。反过来从高位开始高位电容的误差会污染后面所有低位的测量结果校准一位错一位。文档给的公式也印证了这点每一位的校准码都用到了之前已校准低位的累加值。3.2 校准流程拆解两组状态切换加三组校准电容校准测试时电容阵列工作在两种状态下。第一种状态是接入一组已知电容比较器两输入端输出接地也就是两端都归零第二种状态接入待测电容输出直接接进比较器产生比较结果。根据比较器输出跳变时刻配合外部搜索算法调整电容阵列II低位DAC的输出就能测出待测电容对应的寄生参数。具体的校准过程用到电容阵列I低位的三组电容C1、C2、C3理想情况下C1加C2加C3的权值应该和两组阵列低位DAC的最高位相当。考虑到失配实际设计要求C1、C2、C3三者近似相等。电容阵列II低位DAC接入的电容记为Cc根据二进制加权阵列的性质Cc的等效输出范围在0到2倍C1之间。这样一来Cc配合搜索算法就能像个精细的砝码一样把C2加上C3的寄生参数测出来。初次测试时第一种状态只接入C1第二种状态接C2和C3同时把电容阵列II的可变电容Cc也接进去。观察比较器输出从0翻到1的临界点此时Cc的当前值就是C2加C3相对C1的失配量记为Cc1。这步测完低位基准就立住了。接着测高位DAC最低位CH1第一种状态接C1和C3第二种状态接C2、CH1和Cc。比较器翻转时Cc的累加差值就反映了CH1相对已校准低位的偏差。每位电容对应的校准码等于该位Cc差值加上已校准低位Cc差值的累加和。这个累加值转成二进制码用有符号数表示就是最终的校准码。整个流程重复执行每位高位的校准都依赖之前所有低位的校准结果保证了误差逐级收敛。3.3 校准码的存储与加载控制端口与三种工作状态校准码拿到手之后不是直接改电路而是通过一次性烧写电路存进ROM。文档给出了一个控制端口逻辑表端口不多两个控制端口就够切换三种状态。测试状态下两个端口都接地应用算法获得校准码烧写状态下端口P2接高电平把校准码写入ROM正常使用状态下两个端口都接到数字电源上。这个逻辑表是整份文档里最值得抄作业的地方。实际芯片设计时端口配置还必须配合不同的逻辑电路状态文档明确提到各个工作状态的逻辑电路实现要遵循数字集成电路设计规程并针对不同状态对芯片端口进行配置。换句话说控制端口只是接口层面的开关背后的状态机、数据通路、ROM地址译码这些都要自己按流程补齐。4. 避坑排查与比较器失调消除从仿真异常到校准不收敛4.1 比较器失调的来路与辅助输入端消除技术多级比较器由四级低增益放大器和一级锁存器构成每级前放增益约22dB。高精度校准的前提是把比较器等效输入失调压到足够低。设计采用的办法是给每一级放大器加辅助输入端校准时S1闭合S2把主运放两输入端接到共模电平反馈环路把失调电压存到辅助运放输入端的电容上S1断开、S2切入输入信号后存好的失调电压与输入叠加等效失调被抵消掉。这里有个关键参数调零放大器A3是高增益放大器增益要做到70dB以上同时为了保证输出共模稳定还要加共模反馈。前放本身增益低是因为比较器工作时处于开环状态电阻做负载就够了。真正决定校准精度的其实是调零放大器的环路增益环路增益越高残留在输入端的等效失调电压就越小。文档给出的指标是等效输入失调约3微伏低于4微伏的设计目标这个量级正好匹配18位ADC对比较器精度的要求。4.2 常见问题排查三条踩坑记录第一条坑校准码不收敛比较器输出翻转点漂移。现象是校准过程中Cc的搜索值来回跳始终找不到稳定的翻转位置。原因多半是校准状态下比较器的失调没有被完全消除或者是两种状态切换时电容阵列的建立时间不够电荷还没来得及稳定就触发比较。解决方法是先单独测比较器失调确认失调校准已经生效再跑电容校准流程同时把状态切换后的等待时间放宽到建立常数的十倍以上。第二条坑失调测试平台读数正常但ADC实际转换结果仍然有固定码偏差。现象是动态失调测试平台显示失调已经压到几微伏但频谱分析里直流附近的杂散依然明显。原因很可能是校准码烧进ROM之后正常使用时加载路径上有问题比如ROM读出数据没有按位对齐到对应的电容开关控制字上。解决方法是回读ROM内容对照校准码表和电容阵列的开关映射关系逐位核对。常见做法是加一个测试模式直接把ROM内容强制输出到引脚上用逻辑分析仪抓一遍再比对。第三条坑频谱泄漏导致SFDR和ENOB读数异常偏高或偏低。现象是同一次仿真把采样点数从4096改成8192无杂散动态范围能差出好几个dB。原因是不相干采样造成的频谱泄漏而不是ADC本身性能波动。解决方法是严格按文档给出的相干采样关系设置输入信号频率和采样频率Fin、Fs、采样点数Npoint三者满足整数关系采样点数为2的整数次幂输入频率落在FFT bin中心。4.3 仿真配置参考DOTB测试与频谱分析的参数边界动态失调测试平台的做法是利用单位增益放大器和积分器把比较器接入环路通过调整测试精度得到等效输入失调。这个平台的好处是不需要外部高精度基准源但要注意积分器的带宽和积分时间常数设置不当会把比较器的真实失调信息滤掉。我一般会先跑一个开环仿真确认比较器增益再闭环测失调两组数据对照看避免测试平台自身引入的偏差。频谱分析这头文档特别提醒了避免频谱泄漏的正弦激励条件。工程上除了按公式算频率还要注意输入正弦的幅度不要顶到满量程一般留出0.5到1dB的余量防止削波产生谐波污染结果。另外FFT窗函数的选择也影响读数如果频率已经相干对齐直接用矩形窗就行频率有少量偏差时加布莱克曼窗可以压低泄漏但ENOB读数会比矩形窗略低这是正常现象不是ADC变差了。5. 验证进阶从校准码回读到频谱闭环的一整套检查习惯一份设计文档拿到手照着仿真跑通不算结束真正值钱的是验证环节的闭环逻辑。我的习惯是分四步走每一步都在上个步骤的结果上做交叉确认。第一步校准码回读验证。校准流程跑完ROM内容导出来要和算法给的码表完全一致一个bit都不能差。做法是把ROM内容按地址段拆开和校准算法每个步骤产生的有符号数逐位比对。这一步是在仿真阶段做的但真正流片回来后同样适用通过测试模式把ROM内容引到IO口上抓到的数据拿去比比对通过再进下一步。第二步比较器失调独立复测。用DOTB平台测出来的失调值跟静态仿真里直接跑Monte Carlo算出来的失调值放一起看。两者量级一致性应该在2到3倍以内如果差出一个数量级说明某个环节的失配模型或测试设置有问题。这个交叉检查能挡住不少校准算法正确但前级失调测量不准的尴尬情况。第三步频谱分析对照校准开关。分别跑未校准和校准后的FFT重点看的指标是SFDR的提升幅度和ENOB的绝对值。校准前后SFDR如果没变化先别怀疑算法回头检查校准码有没有真正加载到电容阵列上。文档的仿真结果是校准前杂散明显校准后信噪比和线性度大幅改善这个趋势可以作为复现时的判断基准。第四步温度与电压角度的扫描验证。校准码是在特定工艺角和温度下测出来的换到极端工作条件电容失配特性会变化。我一般会在高温和低温两个角落各跑一遍完整校准流程把两套校准码都存下来做差如果差异超过2到3个LSB说明校准码对温度敏感设计上要留温度系数补偿的余地。这一步做完整个设计的可信度才算立住了。有一次我做类似的高精度SAR验证前三步全过第四步在高温下发现校准码偏差到了5个LSB排查后确认是ROM读出通路的一个传输门在高温下漏电导致的。从那以后我每次做校准类设计都会强制走一遍完整的四步验证流程校准码回读、失调交叉确认、频谱对照、温度扫描一步都不跳过。校准这种工作最怕的就是看着结果漂亮实际误差藏在某个没检查的角落。希望这套验证思路能帮你在自己的设计里少踩几个坑。本文还有配套的精品资源点击获取