您现在的位置是:首页 >技术杂谈 >7 ADC(一)网站首页技术杂谈

7 ADC(一)

唱跳ROS 2023-06-04 04:00:02
简介7 ADC(一)

7 ADC

ADC简介

ADC(Analog-Digital Converter)模拟-数字转换器
ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁
12位(0-2^(12-1))逐次逼近型ADC,1us转换时间(1MHz,32ADC最快转换率)
输入电压范围:0~3.3V,转换结果范围:0~4095
18个输入通道,可测量16个外部(GPIO口)和2个内部信号源(内部温度传感器,内部参考电压1.2V)
规则组(常规使用)和注入组(突发事件)两个转换单元
模拟看门狗自动监测输入电压范围(高于或低于阈值时,看门狗会触发中断)

STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道

逐次逼近型ADC

在这里插入图片描述

逐次逼近型ADC的工作原理基于二分搜索算法,每次比较都会将待测信号范围逐渐逼近。

7.1 ADC模拟转换器

ADC框图

ADC基本结构

在这里插入图片描述

第一步:RCC开启时钟,开启GPIO和ADC的时钟,ADCCLK分频器配置
第二部:配置GPIO,把需要用的GPIO口配置成输入模式
第三步:配置多路开关,把左边的通道接入到右边的规则组列表里
第四步:配置ADC转换器,用结构体来配置(AD转换器、AD数据寄存器、触发控制等)
第五步,调用ADC_Cmd(),开启ADC

1)输入通道(GPIO、温度、电压)

在这里插入图片描述

2)四种转换模式(点菜模式)

•单次转换,非扫描模式

在这里插入图片描述

•连续转换,非扫描模式

在这里插入图片描述

•单次转换,扫描模式

在这里插入图片描述

•连续转换,扫描模式

在这里插入图片描述

3)触发控制
在这里插入图片描述

4)数据对齐
在这里插入图片描述

一般采用右对齐

5)转换时间

AD转换的步骤:采样,保持,量化,编码

STM32 ADC的总转换时间为:
	TCONV = 采样时间 + 12.5个ADC周期

例如:当ADCCLK=14MHz,采样时间为1.5个ADC周期
	TCONV = 1.5 + 12.5 = 14个ADC周期 = 1μs
  1. 采样:将模拟信号按照一定的时间间隔采集成离散的数字信号,即将连续的信号转换成离散的信号。
  2. 保持:将采样得到的数字信号保持在一个电容或者存储器中,以便于后续的处理。
  3. 量化:将保持的数字信号按照一定的规则进行量化,即将连续的信号离散化为一定数量的离散值。量化的过程会引入误差,这个误差被称为量化误差。
  4. 编码:将量化后的数字信号编码成为二进制数,以便于数字系统的处理和传输。常见的编码方式有二进制补码编码、格雷码编码等。

ADC周期越短,转换速度越快,但是精度可能会有所降低

6)校准

ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差

建议在每次上电后执行一次校准

启动校准前, ADC必须处于关电状态超过至少两个ADC时钟周期

硬件电路

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。