嵌入式硬件篇---ADC模拟-数字转换


文章目录


前言

以上就是今天要讲的内容,本文仅仅简单介绍了STM32中ADC模拟-数字转换的实现。


第一部分:STM32 ADC的主要特点

1.分辨率

分辨率:STM32的ADC通常具有12位、10位、8位或6位的分辨率。这意味着它们可以将模拟信号分为212、210、28或26个不同的电平。

2.多通道

多通道:STM32微控制器通常具有多个模拟输入通道,允许同时或分时转换多个信号。

3.转换模式

单次转换模式:ADC只执行一次转换 。

连续转换模式:ADC连续执行转换,不需要软件干预。

4.转换速度

转换速度:STM32的ADC转换速度可以从几微秒到几十微秒不等,具体取决于MCU型号和配置。

5.触发源

触发源:转换可以由软件触发,也可以由外部事件(如定时器捕获事件)触发。

6.数据对齐

数据对齐:数据可以在左对齐或右对齐的格式中读取。

7.温度传感器和Vrefint通道

温度传感器和Vrefint通道:某些STM32微控制器内置了温度传感器和内部参考电压(Vrefint)通道,可以直接连接到ADC。

第二部分:STM32 ADC的工作流程:

1.配置ADC

  1. 选择ADC通道。
  2. 设置分辨率。
  3. 选择转换模式(单次或连续)。
  4. 配置触发源。
  5. 设置采样时间(对于不同通道可能不同)。
  6. 启动ADC校准(如果需要):校准是为了提高转换精度。

2.启动ADC转换

  1. 在单次转换模式下,通过软件命令启动转换。
  2. 在连续转换模式下,转换会自动开始。
  3. 读取转换结果:转换完成后,结果存储在ADC数据寄存器中,可以通过软件读取。
  4. 中断和DMA:转换完成后,可以配置ADC产生中断或直接使用DMA(直接内存访问)将转换结果传输到内存中,减少CPU的负担。

第三部分:ADC转化

1.抽样

对模拟信号进行采样(间隔固定周期),获得在时间上离散的信号(抽样信号)

2.量化

本质:根据某一标准进行分级

通过提高分辨率,实现准确的ADC转换

3.编码

将量化结果进行编码存储

第四部分:额外小知识

  1. 数字信号:高电平或者低电平
  2. 模拟信号:任意的电压值
  3. STM32中使用逐次逼近法来实现模拟数字转化(通过二分比较来判断大小)将比较结果存储到专门存储比较结果的数据寄存器中,通过归一化转化及乘以参考电压来实现结果值获取
  4. STM32会通过存储待测电压于电容上实现提高测量准确率的效果
  5. STM32F103有16个GPIO口能进行电压值采样工作(16个ADC外部通道);但在STM32F103C8T6上只前10个ADC外部通道,但有两个内部通道来采集芯片内部的电压值(内部的芯片传感器上、内部的参考电压上)
  6. STM32存在连个ADC转换通道
  7. STM32的内部参考电压会比外部参考电压更准确,因此可以使用对内部参考电压的ADC测量反推实际的参考电压进而实现更准确的ADC测量
  8. ADC实现方法:Pipeline ADC、逐次逼近ADC、Sigma-Delta ADC,这三种ADC实现方法的分辨率逐渐提高同时采样速度逐渐下降

总结

以上就是今天要讲的内容,本文仅仅简单介绍了STM32中ADC模拟-数字转换的实现。

相关推荐
Zw-awa3 小时前
编码器读到的到底是什么:从脉冲到速度
stm32
炸膛坦客3 小时前
单片机开发工具篇:(十四)配置输出 .map 文件及其本地路径
c语言·单片机·嵌入式硬件
by209994 小时前
学会使用std::string类,并理解其内部是如何管理字符串的详细阐述(上)
c++·笔记·字符串·类和对象·string
笨笨饿4 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
青柠之夏cc5 小时前
AI与教育:个性化学习助手让“因材施教“成为现实,但代价是隐私?
人工智能·学习
笑鸿的学习笔记5 小时前
C++笔记之大块顺序写
java·c++·笔记
for_ever_love__5 小时前
机器学习入门——手写线性回归与梯度下降
人工智能·python·学习·机器学习·线性回归
在猴站学算法5 小时前
(SQL注入学习)无回显的报错注入(Error-Based)
学习·网络安全·sql注入·ctf竞赛
hahaha60166 小时前
色彩恒常性概述
人工智能·嵌入式硬件·数码相机·计算机视觉
我叫洋洋6 小时前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路