嵌入式——模拟/数字转换器(ADC)

目录

一、初识ADC

1.简介

2.特性整理

3.ADC特性参数介绍

4.常见ADC类型

(1)并联比较型

(2)逐次逼近型

二、ADC相关寄存器

1.控制寄存器 1(ADC_CR1)

2.控制寄存器 2(ADC_CR2)

3.采样时间寄存器 1(ADC_SMPR1)

4.采样时间寄存器 2(ADC_SMPR2)

5.规则序列寄存器 1(ADC_SQR1)

6.规则序列寄存器 2(ADC_SQR2)

7.规则序列寄存器 3(ADC_SQR3)

8.规则数据寄存器(ADC_DR)

9.注入序列寄存器(ADC_JSQR)

三、ADC结构

1.结构框图

2.输入通道

3.转换序列

(1)规则序列寄存器控制关系

(2)注入序列寄存器控制关系

4.触发源

5.转换时间

(1)ADC时钟设置

(2)设置转换时间

6.数据寄存器

7.中断

三、DMA功能

1.DMA请求(只适用于规则组)

2.单次转换模式

(1)规则组

(2)注入组

3.连续转换模式(只有规则组才能触发该模式)

(1)规则组

(2)注入组

4.扫描模式

5.不同组合的使用

四、ADC配置步骤(单通道ADC采集)


一、初识ADC

1.简介

        ADC(Analog-to-Digital Converter,模拟/数字转换器)。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。

嵌入式——模拟/数字转换器(ADC)_第1张图片

2.特性整理

嵌入式——模拟/数字转换器(ADC)_第2张图片

补:

(1)采样间隔可以按通道分别编程。

(2)规则转换和注入转换均有外部触发选项。

(3)规则通道转换期间有DMA请求产生。

(4)转换结束、注入转换结束和发生模拟看门狗事件时产生中断。

(5)从通道0到通道n的自动扫描模式。

(6)单次和连续转换模式。

3.ADC特性参数介绍

(1)分辨率:表示ADC能辦别的最小模拟量,用二进制位数表示,如:8、10、12、16位等。

(2)转换时间 :表示完成一次A/D转换所需要的时间,转换时间越短,采样率就可以越高。

(3)精度物理量的精准程度):最小刻度基础上叠加各种误差的参数,精度受ADC性能、温度和气压等影响。

(4)量化误差用数字量近似表示模拟量,采用四舍五入原则,此过程产生的误差为量化误差。

4.常见ADC类型

(1)并联比较型

嵌入式——模拟/数字转换器(ADC)_第3张图片

优点:转换速度快。

缺点:成本高、功耗高、分辨率低。

(2)逐次逼近型

嵌入式——模拟/数字转换器(ADC)_第4张图片

优点:结构简单、功耗低。

缺点:转换速度较慢。

特点分辨率和采样速度相互矛盾,分辨率越高,采样速度越低

二、ADC相关寄存器

1.控制寄存器 1(ADC_CR1

嵌入式——模拟/数字转换器(ADC)_第5张图片

        位19:16(DUALMOD[3:0] ):双模式选择。

        位8(SCAN):扫描模式。(该位由软件设置和清除

2.控制寄存器 2(ADC_CR2

嵌入式——模拟/数字转换器(ADC)_第6张图片

        位22(SWSTART):开始转换规则通道。(由软件设置该位以启动转换,转换开始后硬件马上清除此位。该位用于启动一组规则通道的转换

        位20(EXTTRIG):规则通道的外部触发转换模式。(由软件设置和清除,用于开启或禁止可以启动规则通道组转换的外部触发事件。)

        位19:17( EXTSEL[2:0] ):选择启动规则通道组转换的外部事件。

        位15(JEXTTRIG):注入通道的外部触发转换模式。

        位11(ALIGN):数据对齐。

        位8(DMA):直接存储器访问模式。

        位3(RSTCAL):复位校准。

        位2(CAL):A/D校准。

        位1(CONT):连续转换。

        位0(ADON):开 / 关 A/D转换器。(当该位为 ‘0’时,写入 ‘1’将把ADC从断电模式下唤醒。当该位为 ‘1’时,写入 ‘1’将启动转换。)

3.采样时间寄存器 1(ADC_SMPR1

嵌入式——模拟/数字转换器(ADC)_第7张图片

4.采样时间寄存器 2(ADC_SMPR2

嵌入式——模拟/数字转换器(ADC)_第8张图片

5.规则序列寄存器 1(ADC_SQR1)

嵌入式——模拟/数字转换器(ADC)_第9张图片

6.规则序列寄存器 2(ADC_SQR2)

嵌入式——模拟/数字转换器(ADC)_第10张图片

7.规则序列寄存器 3(ADC_SQR3)

嵌入式——模拟/数字转换器(ADC)_第11张图片

8.规则数据寄存器(ADC_DR

嵌入式——模拟/数字转换器(ADC)_第12张图片

9.注入序列寄存器(ADC_JSQR)

嵌入式——模拟/数字转换器(ADC)_第13张图片

三、ADC结构

1.结构框图

嵌入式——模拟/数字转换器(ADC)_第14张图片

嵌入式——模拟/数字转换器(ADC)_第15张图片

2.输入通道

嵌入式——模拟/数字转换器(ADC)_第16张图片

3.转换序列

        A/D转换被组织为两组:规则组(常规转换组)和注入组(注入转换组)规则组最多可以有16个转换,注入组最多有4个转换

嵌入式——模拟/数字转换器(ADC)_第17张图片

(1)规则序列寄存器控制关系

嵌入式——模拟/数字转换器(ADC)_第18张图片

(2)注入序列寄存器控制关系

嵌入式——模拟/数字转换器(ADC)_第19张图片

注入序列的转换顺序是从JSQx[4:0]( x=4 - JL[1:0] )开始。

4.触发源

   触发转换的方法有两种:

(1) ADON位触发转换仅限F1系列):当ADC_CR2寄存器的ADON位为1时,再单独给ADON位写1,只能启动规则组转换

(2) 外部事件触发转换:分为规则组外部触发和注入组外部触发。

规则组外部触发

嵌入式——模拟/数字转换器(ADC)_第20张图片

注入组外部触发

嵌入式——模拟/数字转换器(ADC)_第21张图片

5.转换时间

(1)ADC时钟设置

嵌入式——模拟/数字转换器(ADC)_第22张图片

(2)设置转换时间

采样时间 可通过 SMPx[2:0]位设置,x=0~17

嵌入式——模拟/数字转换器(ADC)_第23张图片

例:ADC时钟频率为12MHz时,ADC最短的转换时间是多少?

6.数据寄存器

嵌入式——模拟/数字转换器(ADC)_第24张图片

ADCx_CR2寄存器ALIGN位 设置数据对齐方式( 右对齐或者左对齐 )

嵌入式——模拟/数字转换器(ADC)_第25张图片

嵌入式——模拟/数字转换器(ADC)_第26张图片

7.中断

        规则和注入组转换结束时能产生中断,当模拟看门狗状态位被设置时也能产生中断。它们都有独立的中断使能位。

嵌入式——模拟/数字转换器(ADC)_第27张图片

三、DMA功能

1.DMA请求(只适用于规则组)

        规则组每个通道转换结束后,除了可以产生中断外,还可以产生DMA请求,我们利用DMA及时把转换好的数据传输到指定的内存里,防止数据被覆盖。

2.单次转换模式

        ADC只执行一次转换。该模式既可通过设置ADC_CR2寄存器的ADON位只适用于规则通道)启动,也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。

(1)规则组

转换结果被储存在16位ADC_DR寄存器中,EOC(转换结束)标志位被置1。如果设置了EOCIE位,则产生中断。然后ADC停止。

(2)注入组

转换结果被储存在16位的ADC_DRJx寄存器中,JEOC(转换结束)标志位被置1。如果设置了JEOCIE位,则产生中断。然后ADC停止。

3.连续转换模式(只有规则组才能触发该模式)

        当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2寄存器上的ADON位启动,此时CONT位是1。

(1)规则组

        转换数据被储存在16位的ADC_DR寄存器中,EOC(转换结束)标志被置1。如果设置了        ,则产生中断。

(2)注入组

转换数据被储存在16位的ADC_DRJx寄存器中,JEOC(注入转换结束)标志被置1。如果设置了JEOCIE位,则产生中断。     

自动注入:将 JAUTO位 置 1。

4.扫描模式

        此模式用来扫描一组模拟通道。扫描模式可通过设置ADC_CR1寄存器的SCAN位来选择。

        当这个位被置1,ADC会扫描所有被ADC_SQRx寄存器(对规则通道)或ADC_JSQR(对注入通道)选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。

        如果设置了 CONT位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。

        这个位被置 0,ADC只会对ADC_SQRx寄存器(对规则通道)或 ADC_JSQR(对注入通道)选中的第一个通道进行转换。

5.不同组合的使用

嵌入式——模拟/数字转换器(ADC)_第28张图片

比较少用的模式:不连续采样模式(间断模式),只适用在扫描模式下。

四、ADC配置步骤(单通道ADC采集)

1. 配置ADC工作参数、ADC校准 :HAL_ADC_Init()、 HAL_ADCEx_Calibration_Start()

嵌入式——模拟/数字转换器(ADC)_第29张图片

嵌入式——模拟/数字转换器(ADC)_第30张图片

嵌入式——模拟/数字转换器(ADC)_第31张图片

嵌入式——模拟/数字转换器(ADC)_第32张图片

2. ADC MSP初始化:HAL_ADC_Msplnit()( 配置NVIC、CLOCK、GPIO等)

3. 配置ADC相应通道相关参数:HAL_ADC_ConfigChannel()

嵌入式——模拟/数字转换器(ADC)_第33张图片

4. 启动A/D转换:HAL_ADC_Start()

嵌入式——模拟/数字转换器(ADC)_第34张图片

5. 等待规则通道转换完成:HAL_ADC_PollForConversion() (等待规则通道转换完成)

嵌入式——模拟/数字转换器(ADC)_第35张图片

6. 获取规则通道A/D转换结果:HAL_ADC_GetValue()

嵌入式——模拟/数字转换器(ADC)_第36张图片


可以参考这篇文章:

     嵌入式——模拟/数字转换器(ADC)补充

http://t.csdnimg.cn/c4Oiwicon-default.png?t=N7T8http://t.csdnimg.cn/c4Oiw

你可能感兴趣的:(单片机,stm32,嵌入式硬件,笔记,ADC)