stc单片机ad精度计算
理解STC单片机ADC精度计算对于获得准确的模拟信号测量至关重要。以下是关键概念和计算方法的详细说明(使用中文):
核心概念区分
-
分辨率:
- 这是ADC理论上能区分的最小电压变化。
- 由ADC的位数决定(常见的STC ADC有8位、10位、12位)。
- 计算公式:
分辨率 = Vref / (2^N - 1)Vref: ADC的参考电压(伏特, V)。对于很多STC单片机,Vref可以是Vcc(电源电压,如5V或3.3V)或内部参考电压(如1.28V, 2.5V, 有些型号支持外部参考电压输入)。N: ADC的位数。2^N: 表示ADC可以输出的最大数字值(最大值 = 2^N - 1)。
- 举例 (12位 ADC, Vref = 5.0V):
- 分辨率 = 5.0V / (4096 - 1) ≈ 5.0V / 4095 ≈ 0.001221V ≈ 1.221mV
- 这意味着理想情况下,输入电压每变化大约1.221mV,ADC的输出数字值理论上会变化1个LSB。
-
精度:
- 这是ADC实际测量值与真实输入电压值之间的最大偏差。它表示测量的准确程度。
- 精度通常远低于分辨率!分辨率告诉你尺子上的最小刻度(多细),精度告诉你用这把尺子测量的结果离真实长度差多远。
- 精度受多种误差因素影响,需要用这些误差项来计算总精度。
影响ADC精度的主要误差源 (STC及通用ADC)
- 偏移误差: 当输入电压为0V(或规定的最小值)时,ADC输出不为0(或最小值对应的数字码)。表现为整个转换曲线在垂直方向上的平移。
- 增益误差: ADC转换曲线的实际斜率与理想斜率(满量程输入对应满量程输出)之间的偏差。表现为转换曲线在斜率上的差异。
- 积分非线性误差: ADC实际转换曲线偏离理想直线的最大偏差(通常以LSB为单位)。它衡量的是转换点的不均匀性。
INL通常是最主要的静态误差源。 - 微分非线性误差: 相邻两个输入电平对应的实际输出码宽度(步长)与理想步长(1 LSB)之间的最大偏差。
DNL > 1 LSB会导致丢码(某个数字输出码永远不会出现)。 - 量化误差: 由ADC的离散特性决定的固有误差,理论最大值为 ±½ LSB。这是任何ADC都无法避免的。
- 参考电压误差:
- 精度/稳定性:
Vref本身的精度(初始精度)和稳定性(随温度、时间、负载的变化)。如果Vref不准或波动,整个转换结果都会不准或波动。这是STC单片机(尤其是使用Vcc作参考时)精度的重要限制因素。 - 噪声:
Vref上的噪声会直接叠加到输入信号上。
- 精度/稳定性:
- 电源电压噪声/纹波: 当使用
Vcc作为Vref或给ADC模拟部分供电时,电源上的噪声会直接影响转换结果。 - 模拟输入信号噪声: 被测量信号本身包含的噪声。
- 模拟通道串扰: 切换不同ADC通道时,前一个通道的信号可能残留影响当前通道(电荷注入等)。
- 温度漂移: 偏移、增益、
INL、Vref等参数会随温度变化。 - 时钟抖动: ADC转换时钟的不稳定性(抖动)会影响采样保持和转换过程,特别是在较高转换速率时。
ADC的总精度估算(最坏情况)
一种保守的估算总不可调误差(精度)的方法是绝对值求和法:
总精度误差 (LSB) ≈ |偏移误差| + |增益误差| + |INL| + |DNL| + |Vref误差贡献| + ... + 0.5 (量化误差)
|偏移误差|,|增益误差|等代表相应误差项绝对值的大小(单位通常是LSB)。|Vref误差贡献|需要根据Vref的精度换算成对输出数字码的影响(LSB)。例如Vref精度为 ±1%,则其贡献的误差约为 ±1% * (2^N - 1) LSB。
更常用的估算方法是平方和根法:
总精度误差 (LSB) ≈ √(偏移误差² + 增益误差² + INL² + DNL² + Vref误差贡献² + ... + (0.5)²)
这种方法在统计上更合理,反映了各项误差独立随机出现的概率。
将总精度误差 (LSB) 转换为电压值
总精度误差 (电压) ≈ 总精度误差 (LSB) * 分辨率 ≈ 总精度误差 (LSB) * (Vref / (2^N - 1))
如何查找误差参数(STC手册)
- 查阅数据手册: 在STC单片机对应的数据手册中找到 ADC电气特性 章节。
- 寻找关键参数: 通常包含以下典型值(注意单位是LSB还是%):
INL(积分非线性误差)DNL(微分非线性误差)Offset Error(偏移误差) /Zero Error(零点误差)Gain Error(增益误差) /Full Scale Error(满量程误差)Vref Tolerance(参考电压容差) /Vref Accuracy(参考电压精度)- 特别注意区分内部
Vref(如果可用)和使用Vcc时的精度。使用Vcc时,精度通常较差(可能在1%-5%范围)。
- 特别注意区分内部
ADC Supply Voltage Rejection Ratio或PSRR(电源抑制比) - 衡量对电源噪声的抑制能力。- 可能给出在特定条件下的 总不可调误差。
- 注意测试条件: 参数通常是在特定电源电压、温度、转换速率下给出的(如
Vcc=5.0V,Ta=25℃)。实际应用条件不同时,需要考虑漂移。
提高STC单片机ADC精度的实用方法
- 使用稳定的基准电压 (
Vref):- 首选: 如果芯片支持且应用要求高精度,使用外部高精度、低噪声、低温漂的基准电压源(如REF3030, LM4040, TL431等)。
- 次选: 使用STC内部提供的基准电压(如1.28V, 2.5V),通常比使用
Vcc更稳定(但精度可能仍有限,需查手册)。 - 避免: 尽量避免直接用不稳定的
Vcc作Vref(如开关电源供电)。如果必须用,确保Vcc非常稳定(LDO稳压)且干净(良好滤波)。
- 优化电源:
- 使用低压差线性稳压器为MCU和模拟电路供电。
- 在
Vcc和AVcc(如果有独立引脚)及Vref引脚就近放置高质量去耦电容(如0.1μF陶瓷电容 + 1-10μF钽电容/电解电容)。
- 模拟输入信号调理:
- 滤波: 在ADC输入端添加低通RC滤波器,滤除高频噪声和干扰。截止频率根据信号带宽设置。
- 阻抗匹配: 确保信号源阻抗足够低(远小于ADC输入阻抗),或使用运算放大器缓冲。STC ADC输入阻抗不高(手册会给出典型值,如几十kΩ)。
- 良好的PCB布局:
- 模拟/数字分区: 将模拟电路(ADC输入、
Vref、模拟电源)与数字电路(MCU内核、数字I/O、时钟)在物理上和走线上隔离。 - 避免交叉: 模拟走线与数字走线(尤其是高频时钟线)垂直交叉,避免平行长距离走线。
- 地平面: 良好的接地策略,可使用独立的模拟地和数字地,并在电源入口处单点连接。
- 缩短走线: 尽量缩短模拟信号走线和
Vref走线。
- 模拟/数字分区: 将模拟电路(ADC输入、
- 软件处理:
- 多次采样平均: 对同一信号进行多次ADC转换(如16次、32次、64次)然后求平均值,这是减小随机噪声影响最有效的方法。
- 数字滤波: 对ADC采样序列进行软件滤波(如移动平均、FIR、IIR滤波器)。
- 软件校准:
- 零点校准: 在已知输入为零时(如输入接地),读取ADC值
AD_ZERO作为零点偏移。 - 满度校准: 在已知输入为满量程(或接近满量程的精确电压)时,读取ADC值
AD_FULL。 - 计算实际值:
实际电压 = (测量值 - AD_ZERO) * (已知满量程电压) / (AD_FULL - AD_ZERO)
- 零点校准: 在已知输入为零时(如输入接地),读取ADC值
- 休眠模式: 在ADC转换期间,让MCU进入空闲模式或暂时关闭其他高功耗数字外设,减少电源噪声。
- 选择合适的工作条件:
- 在能满足信号带宽要求的前提下,降低ADC转换速率有时能提高精度(减少内部开关噪声影响)。
总结计算步骤(示例:STC12C5A60S2 10位ADC, 使用内部1.28V参考电压)
- 确定参数 (查手册):
N = 10(位)Vref = 1.28V(假设)INL = ±2 LSB(手册典型值)DNL = ±1 LSB(手册典型值, 保证无丢码)Offset Error = ±3 LSB(手册典型值)Gain Error = ±2% FSR(手册典型值, FSR=Full Scale Range=1.28V)Gain Error (LSB) = ±2% * (1024 - 1) ≈ ±2% * 1023 ≈ ±20.46 LSB(增益误差通常按满量程百分比给出)
Vref Accuracy = ±1%(手册典型值)Vref Error Contribution (LSB) ≈ ±1% * 1023 ≈ ±10.23 LSB
量化误差 = ±0.5 LSB(固有)- (假设其他误差忽略不计)
- 计算分辨率:
分辨率 = 1.28V / (1024 - 1) ≈ 1.28V / 1023 ≈ 0.001252V ≈ 1.252mV
- 估算总精度误差 (平方和根法):
- 总误差 (LSB) ≈ √[ (3)^2 + (20.46)^2 + (2)^2 + (1)^2 + (10.23)^2 + (0.5)^2 ]
- ≈ √[ 9 + 418.6116 + 4 + 1 + 104.6529 + 0.25 ]
- ≈ √[537.5145] ≈ 23.18 LSB
- 计算总精度误差 (电压):
- 总误差 (电压) ≈ 23.18 LSB * 1.252mV/LSB ≈ 29.02mV
- 结论(最坏情况估算):
- 在所述条件下,该ADC的测量结果与真实电压值的最大可能偏差(精度)约为 ±29.02mV (或约 ±2.27% FSR = 29.02mV / 1280mV * 100%)。
- 重要提示: 这只是基于手册典型值的最坏情况估算。实际精度可能更好(平均情况),也可能受其他未考虑因素影响而变差(如温度、PCB噪声)。软件平均和校准是提高实际测量精度的关键手段。
核心要点: STC单片机ADC的精度不仅仅取决于位数(分辨率),更受限于其内部误差(INL, DNL, 偏移,增益)和参考电压Vref的稳定性。Vref的精度往往是最终测量精度的瓶颈。 仔细阅读手册获取参数,理解各项误差来源,并通过硬件设计(稳定Vref, 良好电源和布局,滤波)和软件处理(多次采样平均,校准)来最大化实际应用的精度。
STC单片机STC8C2K64S4-36I-LQFP44
1970-01-01 08:00:00 至 1970-01-01 08:00:00
如何学习STC单片机
在当前,电子信息类专业的大中专学生和想掌握产品硬件设计的工程师一般都会采用STC系列单片机作为入门的硬件平台。在学习STC
资料下载
李明
2021-11-14 13:06:00
宏晶MCU单片机STC8F2K64S4-28I-LQFP44
1970-01-01 08:00:00 至 1970-01-01 08:00:00
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览