STM32-adc

adc : analog digital converter : 模拟信号转换成数字信号

变化的电压信号,,, 转换成数字信号

12位,,逐次逼近型adc

采样深度:用多少位2进制来表示采样转换结果

12位二进制数 表示 采样的转换结果,,,

一般adc,,都是10位,12为,,一些高端的adc是用的14位,16位

逐次逼近型:

逐次逼近型: 里面有比较器,,, 从最高的一位开始,,依次往后加,,类似天平慢慢增加砝码

采样保持电路:


adc多路复用 : 只使用一个adc,,同时去转换多个模拟输入

adc1对应的引脚

常规序列: 后面开关,采样的闭合时间,,,,,,,,,

regular sequence

常规序列: 依次往后执行,,往后闭合开关,采样

外部触发一次之后,, 常规序列就会被一次采样一遍

注入序列:

结果寄存器

通道更少,,,注入序列数字为4,,,4个通道,, 每一个通道有一个单独的寄存器,,,

常规序列只有一个结果寄存器、

注入序列优先级比 常规序列高

常规序列: regular channel group

电位器,光敏电阻,,温度,,电压检测

注入序列 :injected channel group

电机控制 : pwm某时刻,,精确采样电流

电机,数字电源,高频控制


采样时间

转换时间

adc时钟频率,,要小于 14MHz... 这是stm32F1系列,对adc时钟的要求,,

adc内部不是瞬间转换的,,,

它内部有: 采样保持电路,比较器,,SAR逐次逼近逻辑,,这些都需要时间稳定,,

如果adc时钟太快,,

采样时间 = cycles × 时钟周期

采样时间是55.5个时钟周期,,,

教程里面说的us,,是根据一个固定的时钟周期,,计算出来的

12MHz ===》 4.6us ===》 6分频 ,,, 72/6

转换时间

转换时间一共要计算12个bit位,,每一个bit位需要消耗一个时间周期

总时间 = 采样时间 + 12.5 cycles

SAR ADC 逐次逼近型ADC,,内部不是一下子算出结果,,而是一位一位比较

0.5个周期: 启动比较器,锁存结果,SAR状态切换,,数据同步等


信号源内阻:

内阻越大,充电时间越长,,采样时间越长

·光敏传感器:

转换时间 12.5cycle

采样时间 10.24cycle

常规序列的单通道转换 : 就是只测一个通道,,,

常规序列

注入序列

控制采样开关,闭合的顺序和闭合的时间

eoc: end of convert 转换完成,,, 常规序列转换完成之后,标志位为1

JEOC: inject end of convert ,,, 注入序列转换完成,,标志位为1

DR :data register

JDR : inject data register

一般使用右对齐,,,右对齐好算


adc的参数:

  • 连续模式 continue mode : adc转换完了一次后,会自动再次开始转换,,不用你手动触发,,,采完一次,,立即开始下一次

    想实时监测,,比如电位器,电压,波形,传感器

  • 对齐方式

    默认取右对齐,,有时候只想取高8为,,可以设置为左对齐

  • 扫描模式 :scan mode : adc会自动按顺序转换多个通道,,,不开扫描模式,,,adc只会转换一个通道,,, 开启扫描模式会一个一个检查

  • 自动注入 auto injected

    注入组: injected group

    常规组转换完成后,,,自动触发 注入组转换,,,即regular完成,,,自动开始injected

    如果不开启自动注入,,regular和injected 完全独立,,,自动注入,,一般 电击FOC才大量使用

  • 外部触发信号 : external trigger

    由外部事件来启动adc转换,,,而不是cpu手动启动

    • 普通方式: 软件触发,,,, cpu手动让adc开始
    • 外部触发 : adc不再自己开始,,而是等待某个事件,,比如:定时器,,pwm,,exti,,TIM_CC,TIM_TRGO
      比如,定时固定拍照

复制代码
校准,, adc会自己测量内部误差,,自动补偿

,,官方推荐,,上电后校准一次

芯片里面只能存01的数字量,,不能直接存浮点数的电压,,adc会自动转换成 01数字量,,,,可以根据01的数字量还原多少电压

相关推荐
【云轩】4 小时前
如何设计一台能模拟电机的电子负载:一个硬件工程师的实战笔记
笔记·嵌入式硬件
SmartRadio4 小时前
STM32WLE5 LoRa Smart TDMA 完整协议栈实现(工程级可直接编译)-【1】
javascript·stm32·单片机·嵌入式硬件·lora·自组网·smart tdma
Jason_zhao_MR6 小时前
纳秒级抖动×24小时零丢帧:RK3576工业级EtherCAT主站全拆解
大数据·人工智能·单片机·嵌入式
Deitymoon8 小时前
FreeRTOS——中断实验
stm32·单片机
嵌入式×边缘AI:打怪升级日志8 小时前
# 超声波测距 — HC-SR04 + 定时器输入捕获
单片机·定时器·超声波
yugi9878388 小时前
STM32 串口计算器实现
stm32·单片机·嵌入式硬件
狂奔v蜗牛9 小时前
压敏电阻的使用
嵌入式硬件
科芯创展9 小时前
XZ4115B工作电压6-40V 输出电流1.2A 降压恒流LED驱动芯片
stm32·单片机·嵌入式硬件
涂山苏苏⁠10 小时前
stm32之SPI
stm32