当前位置: 首页 > news >正文

stm32_ADC电源、通道、工作模式

0、ADC功能框图

1、ADC的电源

1.1、工作电源

VSSA=VSS,VDDA=VDD,简单来说,通常stm32是3.3V,ADC的工作电源也是3.3V;

1.2、参考电压

VREF+和VREF-并不一定引出,取决于封装,如果没有引出则VREF+连接到VDDA、VREF-连接到VSSA。

在不要求精度的情况下,VREF+可直接接到VDDA,想要精确测量,可外接基准源(比如TL431);

附一个精确的参考电压3.3V的电路,R4和R5之间是2.5V,所以VREF+等于2.5V*(2.4K+7.5K)/7.5K=3.3V; (误差来源:431基准源的2.5V,R4和R5电阻的精度)

1.3、输入模拟电压

ADC 输入范围:VREF-≤VIN VREF+

通常VREF+是3.3V,那么输入的引脚电压就要在0V~3.3V之间,对应这分辨率下的上下限。

比如12位分辨率,就是0V~3.3V对应AD值是0~4095.

2、ADC的通道

2.1、ADC输入的19个通道

16 个来自GPIO端口ADCx_IN1~IN15

3个内部通道,1个内部温度传感器、1个VREFINT、1个接到 VBAT引脚 。(这3个通道只在主 ADC1 外设上可用

ADCx_IN1~IN15,ADC是有3个的,ADC1、ADC2、ADC3,所以ADCx_IN1~IN15并不意味着只有16个IO口,例如stm32f407igt6如下:

2.2、规则通道和注入通道

2.2.1、规则/注入通道和上面19个通道的关系

看框图,不管是规则通道和注入通道,都是19通道中经过复选其中的1个通道。

2.2.2、1次只能转换1个通道,如何利用多个通道?

按照事先配置的顺序去执行,比如你想转换ADC1_IN2、ADC1_IN10、ADC1_IN5,那么就是这3个通道轮流,就可以检测到多个通道了,这就是序列。

既然为序列,那就有长度和顺序,由寄存器来设置。

规则序列寄存器(最多16个通道):ADC_SQR1、ADC_SQR2、ADC_SQR3

注入序列寄存器(最多4个通道):ADC_JSQR

2.2.3、为什么要有注入通道?

比如通常只想检测ADC1_IN2、ADC1_IN10、ADC1_IN5,但当有某个事件发生时,你想去看一下ADC1_7的值,注入通道相当于插队/中断,停下规则通道的转换,去转换注入通道,完成后再继续规则通道;

除了上面这种特定事件的触发,还有一种叫“自动注入”,在规则通道转换完之后自动去转换注入通道,目的是加长检测序列,16+4相当于最多可支持20个序列;

2.2.4、如何启动规则/注入通道转换

软件触发、事件触发(定时器触发、IO口触发);

功能框图中蓝紫色下方的部分就是事件触发的具体可选项;

3、工作模式

下面的单次、连续、扫描、不连续转换有些可以组合使用。

首先看两个寄存器字段,SWSTART和CONT。

SWSTART,软件置1开始转换,然后硬件清0。

CONT,软件置1和清0,置1后会一直转换。

3.1、单次转换(CONT = 0)

不管规则通道里有几个通道,当前转换完之后就会停止。

如果是开启了扫描模式,那么第一个通道转换完停止后,下一次开启转换SWSTART会转换第二个通道。

如果没有开启扫描模式,那么下一次开启转换SWSTART会继续转换第一个通道。

3.2、连续转换(CONT = 1)

不管规则通道里有几个通道,当前转换完之后立刻开启下一次转换。

如果是开启了扫描模式,那么第一个通道转换完,开始第二个通道直到最后一个通道,并且继续下一轮转换。

如果没有开启扫描模式,那么会不断转换第一个通道。

3.3、扫描模式

逐个扫描规则/注入序列中的通道。

如上所述,扫描模式可以搭配单次转换、连续转换。

3.4、不连续转换模式

每次触发转换规则组/注入组中的一部分,规则/注入序列转换到最后一个产生EOC.

由于是每次触发,所以对于单次转换CONT = 0,如果配置为连续转换就失去了不连续转换模式的意义。

http://www.lryc.cn/news/126796.html

相关文章:

  • Vue编程式路由导航
  • LVS-DR模式
  • 详细介绍生成对抗网络 (GAN) 的原理和基于Pytorch源码的实现
  • 高性能数据处理选型
  • 【深入理解C语言】-- 关键字2
  • Java进阶(3)——手动实现ArrayList 源码的初步理解分析 数组插入数据和删除数据的问题
  • 若依前端npm run dev启动时报错
  • 实战项目:基于主从Reactor模型实现高并发服务器
  • iTOP-RK3568开发板ubuntu环境下安装Eclipse
  • 大气热力学
  • 【RabbitMQ】消息队列-RabbitMQ篇章
  • W5100S-EVB-PICO 做UDP Server进行数据回环测试(七)
  • Redis如何处理内存溢出的情况?
  • 高效数据传输:轻松上手将Kafka实时数据接入CnosDB
  • 【探索Linux】—— 强大的命令行工具 P.3(Linux开发工具 vim)
  • AgentBench::AI智能体发展的潜在问题一
  • 【2023年11月第四版教材】《第5章-信息系统工程之软件工程(第二部分)》
  • OpenCV(二)——图像基本处理(二)
  • Redis—缓存
  • 第三章 图论 No.10无向图的双连通分量
  • Java学习手册——第二篇面向对象程序设计
  • Redis实战:Redis的安装及简单使用
  • Linux学习之初识Linux
  • 神经网络基础-神经网络补充概念-29-为什么使用深层表示
  • 2023最新水果编曲软件FL Studio 21.1.0.3267音频工作站电脑参考配置单及系统配置要求
  • 边缘计算:下一代计算模式的突破
  • 连接不上手机,adb devices为空:
  • vuex学习总结
  • 11. Docker Swarm(二)
  • 注册中心Eureka和Nacos,以及负载均衡Ribbon