1.简述 IIC 的读时序
- 主机发送起始信号(S):SDA 从高变低,SCL 保持高电平;
- 主机发送7 位 / 10 位从机地址 + 读位(R=1),SCL 同步时钟,从机接收后返回ACK 应答(SDA 拉低);
- 数据传输:从机逐位发送数据字节,主机接收,接收完成后主机返回ACK(多字节读)或NACK(单字节读 / 最后一字节);
- 主机发送停止信号(P):SCL 高电平时,SDA 从低变高,结束读操作。关键:SDA 数据在 SCL 高电平时稳定,低电平时允许变化;非应答是主机告知从机停止发数的核心信号。
2. 什么是 ADC?
ADC(Analog-to-Digital Converter,模数转换器)是将连续变化的模拟信号(如电压、电流,对应传感器的温度、湿度、压力等物理量)转换为离散的数字信号的电子器件 / 模块,是模拟系统与数字系统(如 MCU、单片机)之间的核心接口,让数字设备能识别、处理模拟物理量。
3. 什么是 ADC 的基准电压?
ADC 的基准电压是 ADC 转换的电压标尺 / 参考标准,是 ADC 量化模拟输入电压的唯一依据,分为正基准电压(Vref+)和负基准电压(Vref-,通常接地为 0V)。ADC 的输入模拟电压范围被基准电压限定(一般为 0~Vref+),基准电压的精度和稳定性直接决定 ADC 的转换精度,若基准电压漂移,转换结果会产生固定误差。
4. ADC 的工作原理
ADC 核心是采样、保持、量化、编码四个步骤
- 采样:按固定采样频率对连续的模拟输入电压进行 “快照”,提取某一时刻的电压值;
- 保持:将采样得到的瞬时电压值保持一段时间,为后续量化提供稳定的电压信号;
- 量化:将保持的模拟电压与基准电压分割的等距电压阶跃对比,将连续电压映射为离散的整数等级(量化值);
- 编码:将量化得到的整数等级转换为对应的二进制数字(如 12 位 ADC 输出 0~4095 的二进制数),完成数模转换。
- 逐次逼近:通过内部 DAC 生成参考电压,与输入模拟电压逐次比较,从高位到低位确定每一位的 0/1,最终得到二进制结果,兼顾速度和精度,适合 MCU 内置场景。
5. ADC 的分辨率?常见的分辨率有哪些?
(1)ADC 的分辨率
分辨率是 ADC 能区分的最小模拟电压变化量,表征 ADC 对模拟信号的精细识别能力,通常以 ** 二进制位数(bit)** 表示。分辨率的数值意义:若 ADC 为 N 位,其将基准电压范围分割为 2N 个等距量化区间,最小可分辨电压(量化步长)= 基准电压 / 2N;位数越高,量化步长越小,分辨率越高,识别的电压变化越精细。
(2)常见的分辨率
MCU / 嵌入式场景中最常用,按精度从低到高:
- 8 位:分割为 256 个区间,适用于对精度要求低的场景(如简易温湿度检测);
- 10 位:分割为 1024 个区间,通用场景(如普通传感器、电压检测);
- 12 位:分割为 4096 个区间,中高精度场景(如工业传感器、精密电压采集);
- 16 位:分割为 65536 个区间,高精度场景(如工业测控、精密仪器);此外,工业专用 ADC 还有 24 位超高精度版本,适用于实验室、高端测控领域。
6. 12 位 ADC、基准电压 3.3V,量化结果 n 的实际电压计算
核心公式
12 位 ADC 的量化区间数为 2^12=4096,量化步长(最小可分辨电压)= 基准电压 / 4096,因此实际输入电压:
数值简化
3.3/4096≈0.000805664V=0.805664mV,即每 1 个量化值 n 对应约 0.8057mV 的电压。