stm32的ADC理解

 一、简介

ADC是模拟-数字转换器(Analog-to-Digital Converter)的缩写,它是一种电子设备,用于将模拟信号转换为数字信号。这种转换对于现代电子系统中的数字处理至关重要,因为数字电路和微处理器只能处理数字信号。

工作原理:

  1. 采样:ADC在特定的时间间隔内对模拟信号进行采样,即测量信号在某一时刻的电压值。

  2. 量化:采样得到的值被量化为有限数量的级别。量化级别由ADC的分辨率决定,例如,一个8位的ADC可以提供256个量化级别(2^8)。

  3. 编码:量化后的值被编码成数字形式,通常是二进制格式。

重要参数:

  • 分辨率:ADC可以区分的最小电压变化。例如,8位ADC的分辨率是1/256伏特(如果参考电压是2.56伏特)。

  • 采样率:ADC每秒可以采样的次数,单位是赫兹(Hz)。采样率越高,可以处理的信号频率越高。

  • 精度:ADC的精度指的是其测量值与真实值之间的差异,包括量化误差、非线性误差、偏置误差等。

  • 输入范围:ADC可以处理的模拟信号的最大和最小电压值,通常称为参考电压或量程。

应用场景:

  • 传感器信号读取:如温度、压力、光强等传感器的模拟输出信号。

  • 音频处理:将模拟声音信号转换为数字信号,以便进行数字处理和存储。

  • 数据采集:在工业自动化和科研领域,用于采集各种模拟信号。

  • 信号处理:在信号处理系统中,用于信号的数字化,以便进一步的分析和处理。

常见类型:

  • 逐次逼近寄存器(SAR)ADC:一种常用的ADC类型,以其高速和相对较高的精度而闻名。

  • 流水线ADC:提供更高的采样率,但可能牺牲一些精度。

  • ΔΣ(Sigma-Delta)ADC:以其高分辨率和低频信号处理能力而知名。

  • 并行ADC:可以同时处理多个信号,适用于高速多通道应用。

ADC是数字系统和模拟世界之间的桥梁,对于实现现代电子设备的功能至关重要。

二、逐次逼近型ADC

这是一个ADC0809的ADC,我们STM32内部有18个通道,而这个只有8个通道

1.stm32ADC框图

16个IO口,IN0~IN15,两个内部通道,一个是内部温度传感器,另一个是参考电压

普通通道,多路开关只选择一路,而这里有多路,注入通道可以选择4通道,而规则通道可以选择16个。有什么用呢?举个例子,这就像是你去餐厅点菜,普通的ADC是,你指菜,老板给你做,然后做好了送给你。这里就是,你指定一个菜单,这个菜单最多可以填16个菜,然后你直接递个菜单给老板,老板就按照菜单的顺序依次做好,一次性给你端上来。可以大大提高效率。

1.1 规则组

一种是规则组菜单,可以同时上16个菜,这个规则组只有一个数据寄存器,就是这个桌子比较小,最多只能放一个菜,你如果上16个菜,那不好意思,前15个菜都会被挤掉,你只能得到第16个菜,所以对于规则组转换来说,如果使用这个菜单的话,最好配合DMA来实现。DMA是一个数据转运小都手,它可以在每上一个菜之后,把这个菜挪到其他地方去,防被覆盖

1.2  注入组

它相当于是餐厅的VIP座位,在这个座位上,一次性最多可以点4个菜,并且这里数据寄存器有4个,是可以同时上4个菜的,对于注入组而言,就不用担心数据覆盖的问题了

2.逐次逼近方法

逐次逼近方法(Successive Approximation Method)是一种用于模拟-数字转换(ADC)的技术,特别是在逐次逼近寄存器(Successive Approximation Register, SAR)ADC中使用。这种方法以其快速的转换速率和相对较高的精度而受到广泛应用。下面是逐次逼近方法的基本步骤:

  1. 初始化:在转换开始时,SAR寄存器被清零,模拟输入信号被采样并保持在一个采样保持电路中。

  2. 比较:ADC比较模拟输入信号与参考电压的一半。如果输入信号高于这个值,寄存器的最高位被设置为1;如果低于这个值,该位保持为0。

  3. 逐位逼近:接下来,ADC会逐位向下检查,每次将当前位与参考电压的相应比例进行比较。例如,如果当前位是1,ADC会比较输入信号与参考电压的1/4(如果总共有4位),如果输入信号高于这个值,则将当前位保持为1;如果低于这个值,则将该位设置为0。

  4. 更新寄存器:每次比较后,根据比较结果更新SAR寄存器中的相应位。

  5. 完成转换:当所有位都被检查和更新后,转换完成,SAR寄存器中的值就是模拟输入信号的数字表示。

  6. 输出结果:最后,SAR寄存器中的值被输出,表示模拟信号的数字等价。

逐次逼近方法的优点包括:

  • 速度快:由于每次只更新一个位,这种方法可以快速完成转换。
  • 精度高:SAR ADC可以达到相对较高的分辨率,因为它可以逐位逼近模拟信号的精确值。
  • 成本效益:SAR ADC通常比其他类型的ADC(如流水线ADC或ΔΣ ADC)更简单、成本更低。

然而,逐次逼近方法也有一些局限性:

  • 转换速率:虽然逐次逼近方法比直接ADC快,但它的转换速率可能不如某些其他类型的ADC。
  • 线性度:SAR ADC可能在某些情况下受到非线性误差的影响,特别是在参考电压不稳定或输入信号变化迅速时。

逐次逼近方法是一种在许多应用中广泛使用的ADC转换技术,特别是在需要快速、高精度转换的场合。

复制再试一次分享

三、触发转换部分

也就是这里

一般有两种触发

1. 软件触发

一种是软件触发,就是你在程序中手动调用一条代码,就可以启动转换了

2. 硬件触发

也就是这里的资源,注入组和规则组,触发源主要来自定时器,有定时器的各个通道,还有TRGO定时器主模式的输出。定时器可以通向ADC、DAC这些外设,用于触发转换。那因为ADC经常需要过一个固定时间段转换一次,比如每隔1ms转换一次。正常的思路就是,用定时器,每隔1ms申请一次中断。在中断里手动开始一次转换,这样也是可以的。但是频繁进中断对我们的程序是有一定影响的。比如你有很多中断都需要频繁进入,会影响主程序执行。而且不同中断之间,由于优先级的不同,会导致某一些中断不能及时响应。如果触发ADC的中断不能及时响应。那我们ADC的转换频率就肯定会产生影响了。所以对于这种需要频繁进中断,并且在中断里只完成了简单工作的情况。一般都会有硬件的支持。  

四、ADC的基本结构

斜杆代表有多个通道

1.输入通道

ADC通道和引脚复用的关系

2.单次转换,非扫描模式

3.连续转换,非扫描模式

4.单次转换,扫描模式

5.连续转换,扫描模式

6 EOC信号

在电子设备和微控制器中,EOC 通常代表 "End Of Conversion"(转换结束)。这是一个信号或标志位,用于指示一个转换过程,如模数转换(ADC)或数模转换(DAC),已经完成。以下是关于EOC信号的一些详细信息:

  1. 转换完成指示:在ADC模块中,当模拟信号转换为数字值的过程完成后,EOC信号会被置为高电平或设置为一个标志位。

  2. 中断触发:EOC信号可以配置为触发中断,这样当转换结束时,微控制器可以立即响应,执行相关的中断服务程序。

  3. 状态监测:软件可以通过检查EOC标志位来确定转换是否已经完成,从而决定是否可以开始下一次转换或进行数据处理。

  4. 同步操作:在需要同步多个转换操作的系统中,EOC信号可以用于确保所有相关的转换都已经完成,然后才继续执行下一步操作。

  5. 提高效率:使用EOC信号可以提高系统的效率,因为它允许微控制器在等待转换完成的同时执行其他任务,而不是空闲等待。

  6. DMA请求:在某些系统中,EOC信号还可以触发DMA(直接内存访问)操作,将转换结果自动传输到内存中。

  7. 低功耗模式:在低功耗应用中,EOC信号可以用来唤醒微控制器,仅在转换完成后进行数据处理,从而减少能耗。

  8. 错误检测:如果转换过程中发生错误,EOC信号的生成可能会受到影响,因此它也可以用于错误检测。

在STM32微控制器中,EOC信号通常与ADC模块紧密相关,并且可以通过ADC的控制和状态寄存器进行配置和管理。开发者需要根据具体的应用需求来决定如何处理EOC信号,以实现高效的数据处理和系统响应。

五、触发控制

六、数据对齐

ADC是12位的,他的转换结果就是12位的一个数据,但是这个数据寄存器16位的,两者存在一个数据对齐的问题,一般用右对齐。

七、转换时间 

 

八、校准

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在STM32中,ADC_InitTypeDef结构体用于定义ADC的工作模式。该结构体包含了以下参数:ADC_Mode(工作模式)、ADC_ScanConvMode(扫描模式)、ADC_ContinuousConvMode(连续转换模式)、ADC_ExternalTrigConv(外部触发转换)、ADC_DataAlign(数据对齐方式)和ADC_NbrOfChannel(通道数量)。\[1\] 另外,当提到ADC的时候,常常会问到是10位、12位还是16位的分辨率是什么意思。10位表示ADC的输出范围为0-1023,12位表示ADC的输出范围为0-4095,16位表示ADC的输出范围为0-65534。这些数字表示了ADC的分辨率,即将输入电压转换为数字值的精度。较高的分辨率可以提供更精确的测量结果。\[2\] 在选择ADC时,除了要考虑分辨率和参考电压外,还需要考虑一些性能指标。这些性能指标会影响采集精度,包括速度等。虽然可以通过后期算法校准来提高精度,但这些性能指标是硬件基础,需要在选择ADC时考虑。\[3\] #### 引用[.reference_title] - *1* [STM32_ADC初始化参数说明以及常用的固件库](https://blog.csdn.net/weixin_44636409/article/details/118686477)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32 ADC 有关精度参数的理解(ET、EO、EG、ED、EL)](https://blog.csdn.net/qq_25727979/article/details/123837032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值