• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

12位AD转换精度会丢失,愁死了

oldworld 2017-02-17 浏览量:2112
   单片机AD转换,12位ADC,输入电压范围正负10V,可当输入7.8V,正常显示,输入7.9V,则显示8V,为什么会这样呢?电路完全按照数据手册上搭的没错,可就是精度问题没办法。我读取16位AD转换后的数据后加起来除以2^16乘以20,为啥精度会丢失呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 12位的adc相对精度是比较低的,要是用专门的精度显示的话,得用专门芯片
    • 发布于 2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:10
  • 数据不可能是百分之百准确的,常用的做法是取多次求平均值。
    • 发布于2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • ADC的精度本身就不准确,而且存在干扰,你那种现象,可以做如下解释

    1、你那个7.8V和7.9V的输入电压本身就是不准的,但是7.8V的偏差到7.84V(举例),于是它显示为7.8V。而7.9V的偏差到7.95V(举例),于是显示为8V

    2、ADC芯片自身是没有问题的,你应该参照技术手册,查询它的偏差范围。一般来说,偏差值都不是固定的,可能随着输入电压值的变化而变化

    • 发布于2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • ​采样精度丢失原因很多

    软件角度可以从以下方面入手  (1)多次采样取平均值算法,最为简单;  (2)数字滤波算法,例如采用中值滤波法,具体方法为:连续采样20个数据,对这些数据进行排序之后,去掉最小的5个和最大的5个,然后取中间10个采样数据的平均值。  (3)软件校正算法。​

    • 发布于2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以试试多次采样取平均值,另外你要看看你的电路设计上有没有电压漂移
    • 发布于2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 楼主用的是单片机自带的12位AD么?
    • 发布于2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 嗨,您的描述有些奇怪

    1. 前面講12位後面變16位,所以是16還是12?

    2. ADC只能偵測正電壓,您輸入有負電壓的

    3. 有負電壓,您電路有作抬升電壓的電路嗎? (例如加法器)

    4. 所以後面乘以20是也要確保在單片機ADC範圍內,抬升後也要在此範圍內

    5. 多採樣幾次作平均,可得到較為精準的ADC值

    以上可繼續討論

    • 发布于2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 你这个AD的最小分辨率是LSB = 20/4096 ≈ 0.5mv, AD不是完全的线性,有积分非线性和微分非线性,手册上有,自己查就知道是不是AD问题了,从你这里看,0.1v误差是200LSB,有点太大了

    测试方法,建议你测试下积分非线性和微分非线性,正弦波测,来跟手册对,你就知道了,这个是评估AD的标准

    • 发布于2017-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 答某网友:虽然是12位的ADC,但ADC的寄存器是16位(或两个8位)的,所以后面楼主是读取的16位的ADC结果。

    楼主的这个问题,明显是前后矛盾的啊,怎么没人看出来呢?


    一、电路问题

    单片机的ADC只能测量0~VCC范围内的电压,那么楼主的电路应该是将±10V进行的抬升,但是电压范围也是太高,还要有线性降压。

    楼主的情况并不与数据手册上的完全一样吧,要根据电路进行调整的。


    二、程序问题

    按上面的电路进行采样(也必然是上面电路的思路,否则你的单片机就烧了),你的输入电压0V,应该是对应于VCC/2的电压值,那么你的ADC结果应该是2^15,即2048吧,你上面的计算方法就很明显的不对了。

    这也是问题有些前后矛盾了。


    三、关于精度问题

    请楼主自行摆渡“过采样技术


    • 发布于2017-02-17
    • 举报
    • 评论 1
    • 0
    • 0
MOP 回复了 汉云 :Are you sure? 因為根本沒講哪顆MCU,只是純粹前面講12後面講16,確實有16Bit精度的單片機喔,例如PIC24FJ128GC010 ^___^... 回复

  • 是2.2k和22k电阻做的分压吗?是不是把电压分太小了


    • 发布于2017-02-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

12位AD转换精度会丢失,愁死了