STM32: ADC采样频率及相应时间的确定

2023-05-16

转载自:http://m.elecfans.com/article/594153.html

一、STM32 ADC 介绍

  STM32 ADC 是一个12 位精度、 一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

  ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。转换时最快为1us,当ADC的输入时钟超过14MHz 时其会损失一些精度。当然如果可以达到我们的精度,输入时钟高点也没事。

  在网上看到一回答ADC不超过14MHz 的答案:资料上的都是推荐,事实上很多芯片的设计都是有超额余量的,很多人都会超额的利用这些资源,并且很好的工作。

  若所看的程序频率是超过14M,也没有错,可能作者的目的在于快速而宁愿损失一些精度,ADC的分辨率是12位,若是超过这个频率也是工作的,只不过采样到的精度可能仅到10位,若这个已到 作者的要求,也无错误之说了。

  1、看参考手册,确定ADC 的时钟以及通道采样时间:

  1)ADC 时钟 ADC 接在APB2 上,APB2的时钟为72MHz,通过分频的方式给ADC 提供时钟,预分频主要有2、4、6、8 四种分频方式。

  2)通道采样时间 通道采样时间会影响采样的精度。

  2、转换时间

  公式:TCONV = 采样时间+ 12.5 个周期

  例如:当

  ADCCLK=14MHz和1.5周期的采样时间

  TCONV = 1.5 + 12.5 = 14

  周期=1μs

  例如:当ADCCLK=14MHz 和1.5 周期的采样时间 TCONV = 1.5 + 12.5 = 14 周期 = 1μs

  1)一般情况,如果是软件启动,那么转换时间即是采样周期。

  2)若通过定时器进行触发启动ADC,则还需要加上定时器的相关时间。

  3、确定采样率

  1)如果我们的输入信号是 20KHz (周期为 50us),若要将它恢复出来,一个周期最少采样20个点,此时采样率要达到400KHz,所以ADC的采样率必须在400KHz 以上。为

  了达到最好的精度,我们选取ADC时钟为12MHz,即6分频。在12MHz 以及保证采样率的情况下,采样时间越长其,准确性就越好。

  可以计算 2.5us = (12.5 + 采样时间)/ 12MHz ,可以求得采样时间为17.5;所以采样时间的选择必须小于等于17.5个周期,才能保证采样率在400KHz 以上。所以我们可以选

  择1.5、7.5、13.5,为获得更高的精准度,我们可以选择13.5个周期。

  切记采样点数必须达到要求。

二、采样频率的确定

  1.首先确定ADC 的时钟,这里需要看你的RCC的设置。在采用固件库的基础上,设定ADC的采样频率相对来说是很容易的。

  (1)由时钟控制器提供的ADCCLK 时钟和PCLK2(APB2 时钟)同步。CLK 控制器为ADC 时钟提供一个专用的可编程预分频器。

  (2) 一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同

  RCC_HCLKConfig(RCC_SYSCLK_Div1);

  RCC_PCLK2Config(RCC_HCLK_Div1);

  RCC_PCLK1Config(RCC_HCLK_Div2);

  (3)在时钟配置寄存器(RCC_CFGR) 中 有 为ADC 时钟提供一个专用的可编程预分器

  位15:14 ADCPRE:ADC预分频

  由软件设置来确定ADC时钟频率

  00:PCLK2 2分频后作为ADC时钟

  01:PCLK2 4分频后作为ADC时钟

  10:PCLK2 6分频后作为ADC时钟

  11:PCLK2 8分频后作为ADC时钟

  我们可对其进行设置 例如:

  RCC_ADCCLKConfig(RCC_PCLK2_Div4);

  另外 还有 ADC 时钟使能设置

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2 |

  RCC_APB2Periph_GPIOC, ENABLE);

  (4)采样时间和转换时间

  ADC 使用若干个ADC_CLK 周期对输入电压采样,采样周期数目可以通过

  ADC_SMPR1 和ADC_SMPR2 寄存器中的SMP[2:0]位而更改。每个通道可以以

  不同的时间采样。

  总转换时间如下计算:

  TCONV = 采样时间+ 12.5 个周期

  例如:

  当ADCCLK=36MHz 和239.5 周期的采样时间

  TCONV = 239.5 + 12.5 = 252周期 = 7μs

  若你采样的是1KHz的正弦波信号,采样了10000个点,则其中就有70个周期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32: ADC采样频率及相应时间的确定 的相关文章

  • ZYNQ UltraScale 双核裸跑 / 裸跑 + Linux

    1 背景提出 某项目对中断延迟有很高的要求 xff0c 客户的构架为 xff1a PPC 43 Vxworks 延迟时间大概 xff1a 10us 因硬件设计原因 xff0c 还可以更小 我们在Linu系统下测试中断延迟大概几百us 而且这
  • ZYNQ有两个CPU?(一)——AMP搭建

    ZYNQ有两个CPU xff1f xff08 一 xff09 AMP搭建 罗宾老师 嵌入式教师 码峰社QQ群541931432
  • 一个复杂的nf_conntrack实例全景解析

    本文关注两点 xff0c 一点是细节 xff0c 另外一点是概览 xff1a 细节 xff1a 一个完整的关于nf conntrack和NAT互动的例子概览 xff1a 关于人云亦云的讽刺 近期搜集了一些关于iptables xff0c N
  • python subprocess.Popen的使用

    python中的subprocess Popen xff08 xff09 使用 从python2 4版本开始 可以用subprocess这个模块来产生子进程 并连接到子进程的标准输入 输出 错误中去 xff0c 还可以得到子进程的返回值 s
  • FreeRTOS系列|任务堆栈

    任务堆栈 运行freertos系统的大部分都是资源有限的MCU xff0c 所以对于RAM我们都要考虑尽量的节省 xff0c 避免资源浪费 下面将会基于Cortex M3内核的STM32F103型MCU来介绍FreeRTOS任务栈大小的确定
  • Tricore内核上下文切换机制CSA--Apple的学习笔记

    动机 FreeRTOS在port c中都是和内核相关的 xff0c 我就是想了解清楚TC2上下文切换的机制 所以看pxPortInitialiseStack函数 xff0c 里面主要是初始化CSA xff0c 在FreeRTOS任务创建函数
  • SPI通信协议详解

    SPI是Serial Peripheral Interface的缩写 xff0c 意即串行外设接口 SPI是一种高速的 全双工 同步通信总线 xff0c 常用于处理器与板载外设 xff08 比如Flash存储器 实时时钟芯片 AD DA芯片
  • 省教育厅关于印发《湖北省义务教育阶段信息技术课程指导意见(试行)》的通知

    鄂教幼高 2016 4号 各市 州 县教育局 xff1a 21世纪以来 xff0c 信息技术迅猛发展 xff0c 深刻地改变着人们的学习 生产 生活和社会交往方式 xff0c 人类社会已快速进入信息化社会 信息素养是当代社会公民所必备的基本
  • 计算机与信息技术常用小工具

    一 图片编辑工具 xff1a Photoshop Photoshop主要处理以像素所构成的数字图像 使用其众多的编修与绘图工具 xff0c 可以有效地进行图片编辑工作 ps有很多功能 xff0c 在图像 图形 文字 视频 出版等各方面都有涉
  • 计算机业务学习心得体会及辅助资料

    教师业务学习心得体会 我校在2019年年末举行了一次全校性的教师业务学习活动 xff0c 在本次业务学习后业务水平取得了长足的进步和提升 xff0c 发现了一些不足 xff0c 获得了一些新的东西 xff0c 亦总结了一些心得和体会 xff
  • 归并排序 详解

    注 xff1a 内容 xff0c 图片来自于慕课网liuyubobobo老师的课程 官方代码链接 xff1a https github com liuyubobobo Play with Algorithms 算法复杂度 xff1a O x
  • 关于MSP432单片机的吐槽【2021电赛A题】

    一 选题 全国大学生电子设计竞赛刚刚完赛 xff0c 本人选做的是A题 xff1a 失真度测量装置 当时选题的时候看到它附带了说明 xff1a 一定要使用TI公司的MCU以及它的片内ADC xff0c 不得使用其他片外ADC 和数据采集模块
  • 实现TCP并发服务器---IO多路复用

    实现TCP并发服务器 IO多路复用 1 服务器模型 1 1 概念 服务器模型主要分为两种 xff0c 循环服务器 xff0c 并发服务器 循环服务器 xff1a 服务器在同一时间只能处理一个客户端的请求 并发服务器 xff1a 服务器在同一
  • STM32串口发送中断踩坑

    今天想测试下Modbus设备 xff0c 手上暂时没有串口转485的模块 xff0c 就打算用手上的stm32f042的开发板做个串口转485模块 如下所示 但是软件实际开发过程中 xff0c 遇到了麻烦 现象 在打开串口接收中断时 xff
  • 十六进制转十进制(c语言)

    输入的十六进制数 xff0c 通过字符型存放在a 数组中 首先将字符型转为int型 xff08 将a转为10等等 xff09 存放在b 数组中 在与10 n相乘在相加得出结果 include lt stdio h gt include lt
  • 对视频图像进行OSD叠加

    频叠加就是将图片和文字信息叠加到视频信号中 xff0c 如电视台的LOGO xff0c 电影的字幕 xff0c 电视机的菜单 xff0c 都是通过视频叠加的形式显示在视频图像中的 区别于用于专业影视编辑行业的字幕叠加器 xff0c 字符叠加
  • VS2019 C#开发手机App环境配置和开发

    参考链接 xff1a https www dianyuan com eestar article 1284 html 上位机开发人员 xff0c 想开发APP xff0c 从头学Java xff0c 需要花的时间成本太大 xff0c 最近网
  • 华为手机通过ADB禁止系统更新和卸载自带软件

    参考链接 xff1a 电源网 刚买华为手机最烦的是每天都提示系统更新 xff0c 就算设置不提醒 xff0c 过两天又开始提醒 xff0c 不死不休 xff0c 最后还是一次手误最终还是让它得逞了 xff0c 自动更新了 xff0c 下面就
  • C#利用Socket实现C/S模式通信

    参考链接 xff1a https www dianyuan com eestar article 1330 html 首先我们要了解一下几点内容 xff1a 1 Tcp IP协议是什么 xff1f 2 Socket是什么 xff1f 3 s
  • OpenCV 图像处理 灰度化、二值化与加噪

    参考链接 xff1a https www dianyuan com eestar article 1414 html 因为要自动检测裂缝 xff0c 就考虑到了图像的二值化处理 xff0c 虽然C 可以实现二值化处理 xff0c 但是是逐个

随机推荐

  • ROC-RK3328-CC 开发板开箱和上手指南

    参考链接 xff1a https www dianyuan com eestar article 1424 html RK3328处理器采用了64位A53架构四核处理器 xff0c 主频为1 5GHz xff0c GPU则采用了Mali 4
  • C#中AForge库调节视频亮度、饱和度等属性

    参考链接 xff1a https www dianyuan com eestar article 1479 html 之前工作中需要调节摄像头的亮度 饱和度调节 xff0c 之前一直通过调用AForge的调节控件才能调节 xff0c 虽然可
  • Ubuntu下安装和配置Qtcreator5.15版本

    Qt选择 在官方的声明中 xff0c Qt5 15是Qt5 x的最后一个LTS版本 xff0c 增加了即将在2020年底推出的Qt6的部分新特性 xff0c 为了之后的新版本有更好的兼容性 xff0c 选择了Qt5 15 下载Qt 对于普通
  • python 获取文件夹下的文件名操作(两种)

    一 相对路径 文件存储的想对路径路径 path 61 39 data 0 39 os walk 是一个生成器 xff0c 返回三个值 xff1a 根目录 xff0c 根目录下的目录和文件列表 folder 61 os walk path 3
  • 1、串口(UART/COM/TTL/RS232/RS485)

    目录 串口简介 串行通讯制式 UART 2 1 简介 2 2 电平标准 TTL RS232 RS485 2 3 电平转换 xff08 重点讲解RS232 TTL xff09 USB转TTL USB转RS232 USB转RS485 RS232
  • 集成Python和QML

    Qt包括QML作为一种声明性地描述用户界面并使用JavaScript作为其中的脚本语言的手段 可以编写完整的独立QML应用程 序 xff0c 或将它们与C 43 43 结合使用 PyQt5允许QML以完全相同的方式与Python集成 特别是
  • 个人小型管理服务器 SVN的安装和使用方法

    1 下载TortoiseSVN客户端 官网下载地址 Downloads TortoiseSVN 注意下载跟你电脑位数匹配 64位 32位 的安装包 在页面的下面你还可以找到语言包 如图 下载完成后 应该有这些安装包 如图 接下来我们安装To
  • Ubuntu20.04下安装QtCreator 5.14.2(安装/卸载/创建快捷键/添加收藏)

    原文链接 xff1a https www dianyuan com eestar article 2864 html 都是自己原创 xff0c 发这里提高下知名度 xff0c 也帮助需要的人 一 Qt和Qt Creator的区别 Qt是C
  • WPF中自定义双滑块Slider

    项目中遇到需要双滑块的情况 xff0c 可以网上的基本都是单滑块的样式和例子 xff0c 但是双滑块的很少 xff0c 后来终于在网上找到一个大神的帖子 xff0c 通过修改和完善终于符合自己的需求 xff0c 可后来再查看代码的时候好像又
  • C#通过API对硬件进行禁用和启用

    慢慢的随着年龄的增长 xff0c 脑子越来越不够用 xff0c 而自己的收藏栏也越来越杂乱 xff0c 虽然现在的网上要啥都有 xff0c 但是没有经过自己亲手实验和整理总结 xff0c 下次需要的时候一切又要从头开始 xff0c 而电子星
  • Ubuntu下如何获取usb相机的PID/VID并打开指定的相机

    项目需求控制和打开两个USB摄像头 xff0c 并且根据相机的PID和VID来打开指定的相机 xff0c 来区分主副相机 xff0c 在Windows下可以通过AForge Video DirectShow库来实现 xff0c 但是Ubun
  • ubuntu在arm平台下编译安装opencv(亲测可用)

    X86平台安装很多软件一句话就可以搞定 xff0c 非常方便 xff0c 但是在arm平台一个简单的软件安装起来都非常费尽 xff0c 一个软件安装就要折腾好几天 下面就把安装opencv的过程记录下来 一 通过pip安装opencv xf
  • ubuntu在arm平台下编译安装Qt5.15.2和PySide2(亲测可用)

    一 安装Qt5 15 2 1 下载源码首先在官网下载Qt5 15 2的源码 xff1a https download qt io archive qt 5 15 5 15 2 single 2 先安装编译qt的环境 sudo apt get
  • ubuntu20.04安装cmake详细教程

    一 命令行安装 xff08 这种直接安装cmake xff0c 其实安装的版本都太老了 xff0c 这种方式不推荐 xff09 sudo apt install cmake 二 Cmake源码编译安装 1 更新一下g 43 43 已经安装请
  • ubuntu20.04编译安装qt5.14.2和qtcreator4.12.0

    编译qt5 14 2 本来编译安装的是qt5 15 2 xff0c 编译安装ok xff0c 一切就绪 xff0c 安装qtcreator安装后一直报错 xff0c 以下插件有错误 xff0c 无法载入 xff1a QmlDesigner
  • PX4飞控的PPM接收机

    xff08 一 xff09 原理图 xff1a PX4飞控的PPM输入捕获由协处理器完成 xff0c 接在A8引脚 xff0c 对应Timer1的通道1 xff08 二 xff09 PPM协议 xff1a PPM的每一帧数据间隔为20ms
  • WPF DocumentViewer控件如何隐藏搜索栏/工具栏/部分按钮

    WPF DocumentViewer中默认是显示工具栏和搜索栏的 xff0c 如果想隐藏工具栏和搜索栏 xff0c 可以通过以下代码实现 lt DocumentViewer gt lt DocumentViewer Resources gt
  • 什么是stl? 如何使用stl?

    1 什么是STL xff1f STL Standard Template Library 是C 43 43 的标准模板类库 STL是一个功能强大的基于模板的容器库 xff0c 通过直接使用这些现成的标准化组件可以大大提高算法设计的效率和可靠
  • STM32F4+LAN8720A+STM32CubeMX+Lwip 网络通讯(以太网通讯)小实例

    一 目标实现 通过网络通信的方式 xff0c 当上位机发出对应指令给STM32 xff0c STM32根据收到的指令来执行对应的操作 xff08 例如 xff1a 亮灯 灭灯 闪灯等 xff09 还有可以将STM32连上路由器 xff0c
  • STM32: ADC采样频率及相应时间的确定

    转载自 xff1a http m elecfans com article 594153 html 一 STM32 ADC 介绍 STM32 ADC 是一个12 位精度 一种逐次逼近型模拟数字转换器 它有多达18个通道 xff0c 可测量1