STM32ADC采样时间、采样周期、采样频率计算方法

发布者:数据迷航者最新更新时间:2018-10-08 来源: eefocus关键字:STM32  ADC  采样时间  采样周期  采样频率 手机看文章 扫描二维码
随时随地手机看文章

ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。采样周期一般来说=转换时间+读取时间

 

。而转换时间=采样时间+12.5个时钟周期。采样时间是你通过寄存器告诉STM32采样模拟量的时间,设置越长越精确

一 STM32 ADC采样频率的确定

1. :先看一些资料,确定一下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)16.7 可编程的通道采样时间

ADC 使用若干个ADC_CLK 周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位而更改。每个通道可以以不同的时间采样。

 

总转换时间如下计算:

TCONV(转换时间) = 采样时间+ 12.5 个周期

例如:

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

TCONV = 1.5 + 12.5 = 14周期= 1μs

SMPx[2:0]:选择通道x的采样时间

这些位用于独立地选择每个通道的采样时间。在采样周期中通道选择位必须保持不变。

000:1.5周期100:41.5周期

001:7.5周期101:55.5周期

010:13.5周期110:71.5周期

011:28.5周期111:239.5周期

注:

– ADC1的模拟输入通道16和通道17在芯片内部分别连到了温度传感器和VREFINT。

– ADC2的模拟输入通道16和通道17在芯片内部连到了VSS。

2. 具体分析如下:

(1)我们的输入信号是50Hz (周期为20ms),初步定为1周期200个采样点,(注:一周期最少采20个点,即采样率最少为1k) ,每2个 采样点间隔为 20ms /200 = 100 us

ADC可编程的通道采样时间 我们选最小的 1.5 周期,则 ADC采样周期一周期大小为

100us /1.5=66us 。 ADC 时钟频率为 1/66us =15 KHz。

ADC可编程的通道采样时间 我们选71.5 周期,则 ADC采样周期一周期大小为

(100us /71.5) 。 ADC 时钟频率为 7.15MHz。

(2)接下来我们要确定系统时钟:我们 用的是 8M Hz 的外部晶振做时钟源(HSE),估计得 经过 PLL倍频 PLL 倍频系数分别为2的整数倍,最大72 MHz。为了 提高数据 计算效率,我们把系统时钟定为72MHz,(PLL 9倍频)。则PCLK2=72MHz,PCLK1=36MHz;

我们通过设置时钟配置寄存器(RCC_CFGR) 中 有 为ADC时钟提供一个专用的可编程预分器,将PCLK2 8 分频后作为ADC 的时钟,则可知ADC 时钟频率为 9MHz

从手册可知: ADC 转换时间:

STM32F103xx增强型产品:ADC时钟为56MHz时为1μs(ADC时钟为72MHz为1.17μs)

(3)由以上分析可知:不太对应,我们重新对以上中 内容调整,提出如下两套方案:

方案一:我们的输入信号是50Hz (周期为20ms),初步定为1周期2500个采样点,(注:一周期最少采20个点,即采样率最少为1k) ,每2个 采样点间隔为 20ms /2500 = 8 us

ADC可编程的通道采样时间 我们选71.5周期,则 ADC采样周期一周期大小为

8us /71.5 。 ADC时钟频率约为 9 MHz。

将PCLK2 8 分频后作为ADC 的时钟,则可知ADC 时钟频率为 9MHz

方案二:我们的输入信号是50Hz (周期为20ms),初步定为1周期1000个采样点,(注:一周期最少采20个点,即采样率最少为1k) ,每2个 采样点间隔为 20ms /1000= 20 us

ADC可编程的通道采样时间 我们选239.5周期,则 ADC采样周期一周期大小为

20us /239.5 。 ADC时钟频率约为 12 MHz。

将PCLK2 6 分频后作为ADC 的时钟,则可知ADC 时钟频率为 12MHz


关键字:STM32  ADC  采样时间  采样周期  采样频率 引用地址:STM32ADC采样时间、采样周期、采样频率计算方法

上一篇:stm32PWM输入模式测量脉冲速度和占空比
下一篇:STM32F103RCT6之FLASH读写操作

推荐阅读最新更新时间:2024-03-16 16:15

Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发
概述 Windows下使用Keil MDK5进行 STM32F407VET6 的开发和编译, 配合ST-LINK工具进行烧录, 使用标准外设库SPL. STM32F407硬件环境 主要参数 STM32F407VET6 Arm Cortex-M4 168MHz Max Clock Speed 512k flash 192k ram LQFP 100 pins Backup SRAM 4k STM32F407VET6 Black Board 开发板 具体说明可以查看 https://stm32-base.org/boards/STM32F407VET6-STM32-F4VE-V2.0.html ST-Link 编程器 使用
[单片机]
Keil MDK <font color='red'>STM32</font>系列(三) 基于标准外设库SPL的STM32F407开发
基于STM32单片机启动文件的作用和启动过程解析
一、启动文件的作用是: 1.初始化堆栈指针SP; 2.初始化程序计数器指针PC; 3.设置堆、栈的大小; 4.设置异常向量表的入口地址; 5.配置外部SRAM作为数据存储器(这个由用户配置,一般的开发板可没 有外部SRAM); 6.设置C库的分支入口__main(最终用来调用main函数); 7.在3.5版的启动文件还调用了在system_stm32f10x.c文件中的 SystemInit()函数配置系统时钟,在旧版本的工程中要用户进入 main函数自己调用SystemInit()函数。 至此可以总结一下STM32的启动文件和启动过程。首先对栈和堆的大小进行定义,并在代码区的起始处建立中断向量表,其第一个表项是栈顶地址,
[单片机]
基于<font color='red'>STM32</font>单片机启动文件的作用和启动过程解析
一个严谨的STM32串口DMA发送&接收(1.5Mbps波特率)机制
1 前言 直接存储器访问(Direct Memory Access),简称 DMA。DMA 是 CPU 一个用于数据从一个地址空间到另一地址空间“搬运”(拷贝)的组件,数据拷贝过程不需 CPU 干预,数据拷贝结束则通知 CPU 处理。 因此,大量数据拷贝时,使用 DMA 可以释放 CPU 资源。DMA 数据拷贝过程,典型的有: 内存— 内存,内存间拷贝 外设— 内存,如 uart、spi、i2c 等总线接收数据过程 内存— 外设,如 uart、spi、i2c 等总线发送数据过程 2 串口有必要使用 DMA 吗 串口(uart)是一种低速的串行 异步通信 ,适用于低速通信场景,通常使用的 波特率 小于或等于 115200bps。
[单片机]
stm32 KEIL软件设置程序烧写起始地址
STM32系列的mcu,这儿以cortex-M4为例,我们在线调试时,一般会设置程序烧写起始地址和大小。这个大小一般是0x08000000,也就是内部flash的映射地址。不过有些产品是从0x08020000开始的,这是为什么呢?是因为在0x08000000-0x08020000这段空间放的是引导程序,也就是引导程序是从0x08000000开始存放,一般而言,引导程序最终也是要跳转到主app执行的,对于我们这儿而言,就是引导程序会跳转到0x08020000继续执行,而主工程代码是从0x08020000开始存放的,所以就这样串联起来了。 这儿可以看到我们设置的程序烧写的地址和大小,这个的设置是要和use memory la
[单片机]
<font color='red'>stm32</font> KEIL软件设置程序烧写起始地址
STM32 FSMC接口驱动TFT-LCD设计
0 引言 随着电子产品的不断更新,各种显示界面的开发越来越多,由于TFT彩屏的性价比高,因而被广泛用在各种电子设备上作为显示屏。目前驱动TFT彩屏的方案有很多,可以用底端单片机驱动一个终端类型的液晶模组,这种模组价格比较贵,当然用起来还是很方便的。 只要单片机通过串口或并行口向TFT发送几个字节的命令,就能在屏幕上显示你需要的效果。本设计利用STM32 的FSMC 总线直接驱动TFT 数字彩屏。这种方案对相应的寄存器进行配置后就可以自动向TFT数字彩屏发送数据,无需CPU参与,让CPU有足够时间来处理其他程序。 1 STM32 简介 STM32 是基于ARM 内核Cortex-M3 的32 位微控制器系列。Cortex-M3
[单片机]
<font color='red'>STM32</font> FSMC接口驱动TFT-LCD设计
STM32网络ETH
芯片是:STM32F207VCT6 本人主要介绍STM32F207VCT6的ETH部分,基本是把ETH部分英文翻译一下,加上自己的理解。 1、基础介绍 通过DMA控制器进行介质访问控制 这部分内容应用于STM32F20X和STM32F21系列,其他的 不适用 28.1 以太网简介 部分版权 2004 2005 新思科技(美国公司)。所有权利保留,使用需要认可。 借助STM32F20X和STM32F21的以太网外设可接受和发送数据按照IEE 802.3-2002标准 以太网提供一个完整的、灵活的外设去满足不同应用和要求。它支持与外部相连(PHY)的两个标准的工业接口:默认情况使用在IEEE802.3规范找中定义
[单片机]
<font color='red'>STM32</font>网络ETH
STM32(二)之GPIO操作(1)——之输入输出操作
GPIO是通用输入输出的简称,换句话说,其为MCU可控制的引脚,MCU通过GPIO引脚来与外部设备连接,从而实现与外部通讯、控制以及数据采集的功能。本文以STM32的GPIO为例子来介绍GPIO。 上图所示, 第一部分保护二极管及上下拉电阻 如图所示为保护二极管,用于防止引脚过高或过低的外部电压输入,当引脚的外部电压高于VDD时,上方的二极管导通,当引脚电压低于Vss时,下方的二极管导通,从而便可防止不正常的电压输入GPIO而烧毁内部芯片。但是STM32的引脚不应外接大功率的驱动器件。而第一部分和第七部分之间为上拉电阻和下拉电阻,用于GPIO设置时用于设置上下拉电阻。 第二部分:推挽输出和
[单片机]
采用STM32 单片机的太阳能LED街灯解决方案
  随着化石类能源的日益减少,以及温室气体的过度排放导致全球变暖问题越来越受到重视,人们一方面在积极开发各类可再生新能源,另一方面也在倡导节能减排的绿色环保技术。太阳能作为取之不尽、用之不竭的清洁能源,成为众多可再生能源的重要代表;而在照明领域,寿命长、节能、安全、绿色环保、色彩丰富、微型化的LED固态照明也已被公认为世界一种节能环保的重要途径。太阳能-LED街灯同时整合了这两者的优势,利用清洁能源以及高效率的LED实现绿色照明。   本文介绍的太阳能-LED街灯方案,能自动检测环境光以控制路灯的工作状态,最大功率点追踪(MPPT)保证最大太阳能电池板效率,恒电流控制LED,并带有蓄电池状态输出以及用户
[电源管理]
采用<font color='red'>STM32</font> 单片机的太阳能LED街灯解决方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved