STM32 ADC 采样频率的确定

发布者:leader5最新更新时间:2015-08-12 来源: eefocus关键字:STM32  ADC  采样频率 手机看文章 扫描二维码
随时随地手机看文章
(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 分频后作为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  采样频率 引用地址:STM32 ADC 采样频率的确定

上一篇:STM32系列ADC采样频率及相应时间的确定
下一篇:关于STM32 ADC_速度问题

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

stm32 ucos LED灯延时闪烁+按键闪烁+串口输出
#include main.h #include stdio.h USART_InitTypeDef USART_InitStructure; #define RCC_KEY1 RCC_APB2Periph_GPIOD #define GPIO__KEY1_Port GPIOD #define KEY1 GPIO_Pin_3 #define RCC_KEY@ RCC_APB2Periph_GPIOA #define GPIO_KEY2_Port GPIOA #define KEY2 GPIO_Pin_8 #define RCC_KEY3 RCC_APB2Periph_GPIOC #de
[单片机]
一文解析STM32启动流程
可执行程序 - cpu执行第一条用户代码 这个流程中着重讲述的是 HEX 文件如何被烧写到 STM32 内部的指定地址处。(烧写到 STM32 中的可执行文件不仅只有 HEX 格式,还有 axf、bin。针对不同格式的可执行文件,用不同的工具进行烧写)。 而本篇文章将要详细地描述一个流程: cpu执行第一条用户代码 - 调用 __main 函数- __rt_entry - main函数 这里需要注意一下,__main 是 c 库中的一个函数,和 main 函数是有区别的!!! 启动文件内容描述 上图中的汇编关键字最好记住,因为比较常用。 在此基础上,我们继续深入一点。 DCD指令 STM32 启动文件中使用 DCD 指令的
[单片机]
一文解析<font color='red'>STM32</font>启动流程
怎样去设计一种基于STM32单片机的智能手环脉搏心率计步器
一:功能 基于STM32单片机智能手环心率计步器体温显示设计 本设计由STM32F103C8T6单片机核心板电路+ADXL345传感器电路+心率传感器电路+温度传感器+lcd1602电路组成。 1、通过重力加速度传感器ADXL345检测人的状态,计算出走步数、走路距离和平均速度。 2、通过心率传感器实时检测心率,通过温度传感器检测温度。 3、lcd1602实时显示步数、距离和平均速度、心率以及温度值。 二:电路图 三:源代码 #include led.h #include delay.h #include sys.h #include usart.h #include #include t
[单片机]
怎样去设计一种基于<font color='red'>STM32</font>单片机的智能手环脉搏心率计步器
STM32+OLED巧妙显示汉字英文
目标:实现OLED_Print函数,可以在OLED屏幕上显示中英文和符号混合的任意字符串 汉字编码原理 ASCII码显示的原理这里不再说明,一般的OLED例程都有使用方法。下面说一下中文编码的原理。 在keil的环境使用的是GBK或者GB2312的编码方式,GBK编码汉字使用两个字节: 第一个字节为区码,第二个好像叫段码,区码是大于127的,段码不一定。 具体编码方式可以查阅资料: 下面编写一个简单的程序进行验证: int main(void) { char *s = 哈h ; int i; delay_init(); //延时函数初始化 NVIC_Configurat
[单片机]
STM32+OLED巧妙显示汉字英文
STM32晶振不起振
1.外部晶振虚焊 2.外部晶振的电容不匹配,可能是器件盒里面混入了大容值电容 3.芯片挂了 4.STM32f103有内部晶振。刚刚上电时,所有Clock都是源于内部晶振,所以当片内没有程序或内部程序没有使能外部晶振时,外部晶振是不会起振的。 在RCC_Configuration(void)看相关设置,有没有启动外部晶振HSE. PS:如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法:  2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。  2.2)分别重映射OSC_
[单片机]
stm32tim定时器AutoReload和pwm输出Pulse的关系
老是理不清定时器的自动重装载和PWM通道Pulse的关系 先说PSC和AutoReload的关系 PSC是预分频 ST32F103频率可以上到72M 举个例子: 72000000/72=1M 1/1M=1/1000000=0.000001秒 预分配会影响自动重装载的计数速度 比如上面计算的,他可以0.000001s计一个数 当计到AutoReload的值时,就会产生一个中断 /*中断回调函数*/ pwm的脉冲数Pulse: 在AutoReload的计数周期内,设置脉冲的多少。 比如说舵机 要20ms的周期,那么根据公式: 定时器时间=1/(时钟频率/预分频/计数周期) 20ms=1/(72000000/
[单片机]
stm32tim定时器AutoReload和pwm输出Pulse的关系
如何在vscode上面开发stm32
vscode具有强大的代码编辑功能,自动补全代码,高亮代码看起来非常舒服,而 Keil 虽然也很强大,但是代码补全没有vsCode用起来舒服,如果能在vscode上面开发 stm32 将会非常舒适。两者界面对比图 现在有一款插件可以满足以上需求--keilAssistant 1.安装插件。搜索keilAssistant,安装 2.在扩展配置里面修改keil路径(也就是keil安装路径里面的UV4.exe) 3.编译工程 编译成功,也可以烧写程序。 注意:1如果编译显示如图 是kei路径写错了,一定要把exe文件写上,下图是写好的路径,每个人安装路径不同。
[单片机]
如何在vscode上面开发<font color='red'>stm32</font>
基于ISA总线的ADC板卡设计
摘要:以AD574为A/D转换核心,研制了基于ISA总线的32通道12位ADC板卡,并给出硬件电路和软件流程。 关键词:AD574 A/D转换 ISA总线 1 引言 模数转换器是工业测量和控制系统中数据采集子系统的重要部件,它是测控现场的模拟信号源与数字计算机之间的接口,其任务是把现场中连续变化的被测信号转换成离散信号,再由工控计算机作进一步的数据处理。这就要求系统将所采集的模拟数据信号尽可能真实地、不失真地显示给控制人员,为此,笔者研制了基于ISA总线的A/D转换板卡。该板卡以AD574为A/D转换核心,在ISA总线技术的基础上,利用较少的外围元件来实现多通道、高精度的A/D转换。该板卡具有32路单端信号输入,电压范围为0
[传感技术]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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