zoukankan      html  css  js  c++  java
  • 高精度模数ADC转换设计注意事项

     

    该模数ADC转换芯片使用的是MCP3221,关心的几个重要参数:

    (1)分辨率12bit,高精度,满足大都数场合

    (2)误差INL : +-2LSB  (Integral Nonlinearity:积分非线性) ;     DNL : +-1LSB(Differential Nonlinearity:微分非线性)  ,主要看微分非线性这个参数

    (3)Sampling switch resistor : Rs = 1K (内部采样的开关电阻)

    (4)输入范围( VSS-0.3 ~ VDD+0.3 )V

    第一个注意事项:

    分辨率是12bit,误差INL : +-2LSB  ;     DNL : +-1LSB ,为了后续更好的计算,VREF选择4.096V的一个基准电压源,这样INL : +-2LSB = +-2mV    DNL : +-1LSB = +-1mV,

    I2C读取到的数据,就不需要进行换算了,读出来的值直接是电压值,单位是mV.(如果要换算,就涉及到除法运算,除不尽的时候,就会给结果带进了误差)

    第二个注意事项:

    ADC内部采样的开关电阻Rs = 1k, 阻抗比较小,所以要求外部的输入阻抗Rss要比这个值小得多,小到认为可以忽略外部的输入阻抗,这样采集到的电压就更精准。

    那如何保证输入的阻抗极小呢?

    一般在输入前端加运放跟随,做一级隔离缓冲处理,因运放具有输入阻抗极高,闭环时输出阻抗极小的特点。如上图 在MCP3221模拟输入前端加一级运放跟随WS72551EA-5/TR。

    这时需要考虑第三个注意事项了:

    运放的选择,如果要求测试的结果要达到文档上所标注的误差范围在+-1mV内,那么选择运放时就有所考虑了,而不是随便选一个运放就行。这里看下WS72551EA-5/TR运放这个参数

    (1)首先尽量选择较小的offset voltage ,要在uV级别,如果这个参数在mV级别,那么测试结果与实际值会偏差比较大,根本达不到文档所说的  DNL : +-1LSB = +-1mV内。

    (2)偏置电流也选小点的,尽量选在pA级别,这样就保证该运放输入的阻抗非常高,比如输入的信号电压是5V, 其输入阻抗 Z = Vs / IB = 5(V) / 10(pA) = 500GΩ  ,运放的输入阻抗越高,对前级电路的影响就越可以忽略不计。

    满足以上几个要求,测试出来的精度肯定是跟文档描述的一致。

  • 相关阅读:
    Emoji表情编解码库XXL-EMOJI
    代码生成平台Xxl-Code-Generator
    分布式单点登录框架XXL-SSO
    分布式爬虫框架XXL-CRAWLER
    Java对象和Excel转换工具XXL-EXCEL
    API管理平台XXL-API
    分布式缓存管理平台XXL-CACHE
    不知不觉已经写了多年代码,贴一下12年写的代码,表喷哈
    memcached安装、使用
    MySQL和Redis数据一致性问题
  • 原文地址:https://www.cnblogs.com/wen2376/p/15564316.html
Copyright © 2011-2022 走看看