day7 ADC模数转换

ADC简介

作用:采集传感器的数据,测量输入电压,检查电池电量剩余,检测温湿度等。

ADC性能指标

量程:能测量的电压范围

分辨率:ADC的分辨率通常以二进制数的位数表示,位数越多,分辨率越高,一般来说分辨率越高,转换时间越长。

转换时间:模拟输入电压允许的最大变化范围内,从转换开始到获得稳定的数字量输出所需要的时间称之为转换时间

day7 ADC模数转换_第1张图片

 STM32F0 - ADC特性

  • 12位精准度下转换速度可高达1MHz
  • 可配置的转换精度:6位、8位、10位、12位
  • 转换电压范围:0 ~ 3.6v、V SSA ~ V DDA
  • 供电范围:2.4v ~ 3.6v
  • 19个转换通道:16个外部通道、3个内部通道
  • 采样时间可配置
  • ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中

STM32F0-ADC时钟

APB时钟的2或4分频,最高14MHz

优点:不会有有时钟域之间的同步带来的抖动,出发时间和转换的起始时刻之间的延迟是确定的,从而保证转换之间的时间间隔是固定的

缺点:ADC的转换时间和系统时钟频率相关,收系统频率影响较大

片上14MHz HSI RC振荡器

优点:无论MCU的运行频率是多少,都可以保证最高的ADC工作频率可以使用自动节电模式(自动开启或关闭14MHz的内部振荡器)

缺点:触发信号的同步会带来抖动,触发时间和转换的起始时刻之间的延迟不确定

day7 ADC模数转换_第2张图片

 STM32F0-ADC通道的选择

19路复用通道

  • 16 个从 GPIO 引脚引入的模拟输入 (ADC_IN0...ADC_IN15)
  • 3 个内部模拟输入 ( 温度传感、内部参考电压、 VBAT 通道 )

     ADC 可以转换一个单一通道或自动扫描一个序列通道。被转换的通道序列必须在通道选择寄存器 ADC_CHSELR 中编程选择:每个模拟输入通道有专门的一位选择位 (CHSEL0...CHSEL18).

STM32F0-ADC转化模式

  1. 单通道单次转换模式(Single Channel Single Conversion Mode):在此模式下,ADC只转换一个通道的模拟输入,并在转换完成后停止。
  2. 单通道连续转换模式(Single Channel Continuous Conversion Mode):在此模式下,ADC连续地对一个通道的模拟输入进行转换,每次转换完成后自动开始下一次转换。
  3. 多通道单次转换模式(Multi-Channel Single Conversion Mode):在此模式下,ADC同时转换多个通道的模拟输入,但只进行一次转换,然后停止。
  4. 多通道连续转换模式(Multi-Channel Continuous Conversion Mode):在此模式下,ADC连续地对多个通道的模拟输入进行转换,每次转换完成后自动开始下一次转换。
  5. 间隔模式(Discontinuous Mode):在间隔模式下,ADC会按照预先设置的间隔进行转换。具体来说,ADC会在一次转换完成后暂停一段时间,然后再进行下一次转换。这个间隔时间可以通过配置寄存器来设置。间隔模式可以用于节省功耗,特别是在需要对多个通道进行转换时。通过设置适当的间隔时间,可以降低平均功耗,同时还可以控制采样速率

day7 ADC模数转换_第3张图片

 注:ADC通知应用每次转换结束(EOC)事件、ADC通知应用每次序列转换结束(EOS)事件

这些标志位都是在ADC 中断和状态寄存(ADC_ISR)中ADC_CFGR1可配置COUNT位 。

STM32F0-ADC转化时间

可编程采样时间 (SMP):

  • T Sampling 可配置:     SMP[2:0]@ADC_SMPR 
  • 需要和外部电路的输入阻抗匹配,采样时间适用于所有通道

 转化的时间

      T conversion 取决于转换精度: RES[1:0]@ADC_CFGR1

每个通道总的转换时间等于: T Sampling + T conversion
day7 ADC模数转换_第4张图片

 转换时间快速预览表:

不需要高转换精度的应用,可以通过降低精确度来提高转换速度。假设ADC模块工作在14MHz的最高工作频率下

day7 ADC模数转换_第5张图片

 STM32F0-ADC触发方式

软件触发 :软件设置ADC_CR的ADSTART=1 时,触发选择有效。

外部事件触发 :外部事件 ( 例如:定时器TRGO、输入引脚 ) 触发,可以设置触发源以及触发极性

day7 ADC模数转换_第6张图片

 day7 ADC模数转换_第7张图片

 STM32F0-ADC模拟看门狗

day7 ADC模数转换_第8张图片

 

检测待转换的模拟电压

  •      电压超出检测范围就置位AWD@ADC_ISR,并条件性地产生中断
  •      检测范围由上下门限寄存器指定、 12位的ADC_HTR和ADC_LTR有效值

模拟看门狗的使能控制

  •    AWDEN@ADC_CFGR1
  •       检测所有通道还是单个通道由AWDSEL@ADC_CFGR1决定
  •       检测哪个单个通道由AWDCH[4:0]@ADC_CFGR1决定

你可能感兴趣的:(LV23物联网ARM,开发,stm32,嵌入式硬件,单片机,c语言)