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

STM32外设详解——ADC

来源:铁头山羊

基本概念

①ADC是模数转换器的统称,stm32f103c8t6内部集成了2个12位主次逼近型ADC,外设名称为ADC1、ADC2。

② 采样深度为12位意味着ADC可以将0~3.3V的模拟电压等比转换为0~4095的数字值(分割为2的12次方份)。采样深度表示用多少位二进制数来表示一个采样点,采样深度越深转换结果越精细。

③不同类型ADC的对比

④内部等效集成电路模型

采样原理

基本结构框图

 太复杂了简化一下

ADC有两种使用(触发采样)方式,常规序列与注入序列,外设检测到输入脉冲之后会开始采集。

采样时间与转换时间

逐次逼近型ADC的电压信号采样原理和使用砝码天平称重十分类似,砝码的来源是VSS引脚(夹带个私货,高精尖的东西推荐大家使用高精度基准芯片,而不是简单用Π型滤波器和VCC连上)。12位的二进制数值中高位的“1”就好比较重的砝码,低位的“1”就好比较轻的砝码。采样时间就相当于放重物的时间,转换时间相当于调整砝码的时间。

ADC的时钟源

从时钟树上可以判断出来,ADC1与ADC2外设挂载在APB2上。

但是出于对采样精度的考量,ADC和APB2总线之间隔着一个分频器,分频后ADC接收的时钟信号不能超过14MHz。注意ADC的采样时间与转化时间都是时钟周期的倍数。

计时方式

假设输入ADC的时钟频率就是14MHz,那么时钟周期就是1/14M=1/14us。如果我们设置采样时间为0.1us,那么就可以设置为1.5个时钟周期(1.5 cycle),转换时间也是同理。

转换时间的计算方式

固定值如上图片所示

采样时间的计算方式

“开关”、“电容”都是上述采样保持电路中的模型,电容两端的电压和充电电压之间存在误差,但是充电时间越长误差就越小,所以采样时间越长误差就越小。

但我们也不能无限延长采样时间,采样误差应该小于ADC分辨率的四分之一。

带内阻的信号源框图

由于采样保持电容和信号源内阻是串联关系,内阻越大充电电流就越小,充电速度也就越低,采样时间也就越长。

最佳采样时间计算公式:

其中Radc约等于1KΩ,Cadc约等于8pF,N是采样深度,此处为12,综上推导出:

简化运算的方法:把Ts转换成us的数值直接和ADC时钟频率的M数相乘

注意ADC的实际采样时间只有几个固定挡位,参考ADC->Parameter Settings->ADC_Regular_ConversionMode->Rank->Sampling Time

ADC单通道转换

注意CubeMX选项卡里面的ADC_Regular_ConversionMode,这个选项用来配置ADC中和常规序列相关的寄存器,从上至下分别是转换通道数量、外部触发转换源以及外部触发转换检测边沿。


http://www.kler.cn/news/341398.html

相关文章:

  • 如何通过实践项目来提升网络安全工程师的实战能力?
  • Vue 脚手架学习
  • 基于Springboot海宝海鲜餐厅系统JAVA|VUE|SSM计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解
  • 【2024年最新】基于springboot+vue的垃圾分类网站lw+ppt
  • Excel-查找和引用数据-VLOOKUP 和 HLOOKUP 函数
  • 【Qt学习笔记】setModal()(模态对话框)
  • 探索 PixiJS:强大的 2D 图形渲染库
  • 【AI人脸融合】FaceFusion 3.0一键整合包,支持AI视频/图片人脸融合、数字人视频、表情修复、年龄修改等
  • C++ 算法学习——1.3 拓扑排序
  • Scratch编程乐园:提供学习、创建和分享Scratch作品的最佳平台
  • git 克隆时,SSL 连接失败解决方案
  • c语言中,数组指针、指针数组、函数指针、指针函数
  • 网络基础知识笔记(一)
  • Pytorch常见坑(不断更新)
  • YOLOv10改进,YOLOv10添加CA注意力机制,二次创新C2f结构,助力涨点
  • Kubernetes-Kind篇-01-kind搭建测试集群
  • TryHackMe 第6天 | Web Fundamentals (一)
  • chatGPT模型接口分享
  • SpringBoot中间件Docker
  • 【优选算法】(第二十篇)