STM32 ADC转换时间

摘要:
STM32F103XX的ADC的采样时钟最快14MHz,最快采样率为1MHz。RCC_ADCCLKConfig;//72M/6=12,ADC最大时间不能超过14MADC转换时间:有如下公式:TCONV=采样时间+12.5个周期其中12.5个周期是采集12位AD时间是固定的,另外一个采样时间可以取下面几个参数由SMPx[2:0]寄存器控制,每个通道可以单独配置。其实我们要了解,真正决定ADC转换速度的不是系统时钟72MHz而是不超过14MHz的ADCCLK。当我们配置系统时钟为72MHz的时候ADCCLK最大为12MHz.所以转换速度稍微慢了。

STM32F103XX的ADC的采样时钟最快14MHz,最快采样率为1MHz。

ADC时钟:

这个ADC时钟是从哪来的呢。我们看下面这个STM32的时钟结构图:

STM32 ADC转换时间第1张

我们大多使用STM32的最快PCLK2系统时钟72MHz。

ADCCLK的时钟由72MHz的6分频能瞒住14MHz以下的要求 为12MHz。

RCC_ADCCLKConfig(RCC_PCLK2_Div6); //72M/6=12,ADC最大时间不能超过14M

ADC转换时间:

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

其中12.5个周期是采集12位AD时间是固定的,另外一个采样时间可以取下面几个参数由SMPx[2:0]寄存器控制,每个通道可以单独配置。

000:1.5周期

100:41.5周期

001:7.5周期

101:55.5周期

010:13.5周期

110:71.5周期

011:28.5周期

111:239.5周期

当我们选择1.5周期时。转换时间 = 1.5+12.5 = 14周期。

当时钟配置为12MHz时 转换时间 = 14/12 = 1.167us.

其中有人就有疑问 为什么系统时钟72MHz 竟然达不到手册上说的1MHz- 1us的采样 。

其实我们要了解,真正决定ADC转换速度的不是系统时钟72MHz 而是不超过14MHz的 ADCCLK。 当我们配置系统时钟为72MHz的时候 ADCCLK 最大为12MHz.所以转换速度稍微慢了。

当我们把系统时钟设置为56MHz的时候,经过4div正好为14MHz,此时就能达到1us的采样。但是测试发现如果按照最快速度转换ADC结果不是很准确。

---------ForeverLongo

免责声明:文章转载自《STM32 ADC转换时间》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用BitviseSSH免root实现Windows vs Linux的文件互传kali linux 入门(1) 基于win10和docker的环境搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

STM32新的IDE -- stm32cubeIde 点亮个LED灯

此IDE是基于eclipse开发的,一键式安装,内部集成了cubeMx;首先去官网下载:https://www.stmicroelectronics.com.cn/content/ccc/resource/technical/software/sw_development_suite/group0/0d/3e/69/1b/13/74/44/8e/stm32...

基于STM32的USB枚举过程学习笔记(转)

之前使用ST官方的库以及网络的资料,完成了使用USB HID类进行STM32和PC机的通讯。由于其他原因并没有深入的分析,虽然实现了功能,但是关于USB设备的枚举,以及具体的通讯方式都没有清晰的概念,所以现在回头重新学习USB相关知识。主要参考资料是《圈圈教你玩USB》、USB枚举过程图解,ST官方的USB HID例程。 一,USB数据包    1.   ...

STM32 驱动1602液晶

利用STM32f103c8t6单片机驱动1602A液晶进行显示功能 上图即为写入信息后的效果图 本人用的是STM32的核心系统,无任何外设 库函数:3.5版本的库函数 驱动模式:采用4线驱动模式 供电:STM32采用3.3v供电,1602液晶采用5v供电(如果采用3.3v供电,只能显示背光,其他数据均无法显示) 上图所示的杜邦线的连接方法:RS->...

STM32---喜提点灯

一:编译第一个程序 intmain()  //主函数 { } voidSystemInit()  //在执行主函数前,会被调用。不进行实现。在启动文件中被调用 { } ; Reset handler Reset_Handler PROC EXPORT Reset_Handler...

STM32系统时钟RCC(基于HAL库)

基础认识 为什么要有时钟: 时钟就是单片机的心脏,其每跳动一次,整个单片机的电路就会同步动作一次。时钟的速率决定了两次动作的间隔时间。速率越快,单片机在单位时间内所执行的动作将越多。时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏,决定cpu速率。 为什么这么多个时钟源: STM32系统是复杂的,高精度、低精度、...

【转】STM32: 一种计算CPU使用率的方法及其实现原理

1 前言出于性能方面的考虑,有的时候,我们希望知道CPU的使用率为多少,进而判断此CPU的负载情况和对于当前运行环境是否足够“胜任”。本文将介绍一种计算CPU占有率的方法以及其实现原理。2 移植算法2.1 算法简介此算法是基于操作系统的,理论上不限于任何操作系统,只要有任务调度就可以。本文将以FreeRTOST为例来介绍本算法的使用方法。本文所介绍的算法出...