使用了这么长时间的ADC,却从未深入了解过ADC的内部原理以及如何获得最佳的精度。今天偶然看到了一篇ST的官方文档,其中详细介绍了这些内容,我觉得非常不错,因此在这里整理分享给大家。
SAR ADC的内部结构
STM32微控制器中内置的ADC采用了SAR(逐次逼近)原理,通过分多步进行转换。转换步骤的数量等于ADC转换器的位数。每个步骤都由ADC时钟驱动,而每个ADC时钟周期则对应于输出结果中的一位。ADC的内部设计基于切换电容技术。
下图展示了SAR切换电容ADC的基本原理(以10位ADC为例)。尽管此示例仅展示了逼近的前几步,但实际过程会持续直至达到最低有效位(LSB)。
[此处插入对应的示意图]
深入理解ADC的内部结构和工作原理对于实现最佳精度至关重要。SAR ADC通过逐次逼近的方式逐渐接近被测量的模拟信号值,并将其转换为数字表示。ADC的精度和性能直接受到其内部电路设计的影响,因此了解其工作原理能够帮助我们更好地配置和优化ADC,以满足特定应用的需求。
带数字输出的ADC基本原理图
采样状态
电容充电至电压VIN,Sa切换至VIN,采样期间Sb开关闭合。
保持状态
输入断开,电容保持输入电压。Sb开关打开,然后S1-S11切换至接地且Sa切换至VREF。
逐次逼近
1)第一个逼近步骤:S1切换至VREF,VIN与VREF/2比较。
2)如果MSB = 0,则与¼VREF进行比较;S1切换回接地,S2切换至VREF。
3)如果MSB = 1,则与¾VREF进行比较;S1保持接地,S2切换至VREF。
重复如上步骤,直到LSB为止。
可以简单理解为二分法逐次进行输入电压与参考电压的比较。首次与VREF/2比较,下次比较根据上次比较结果决定;如果MSB=1,则与¾VREF比较;如果MSB=0,则与¼VREF比较;后面决定与1/8VREF 3/8VREF、5/8VREF、7/8VREF之一做比较,循环直到输出LSB为止。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !