历史上的今天
今天是:2024年12月03日(星期二)
2020年12月03日 | STM32 ADC转换时间
2020-12-03 来源:eefocus
STM32F103XX的ADC的采样时钟最快14MHz,最快采样率1MHz。
ADC时钟:
这个ADC时钟是从哪来的呢。我们看下面这个STM32的时钟结构图:

我们大多使用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结果不是很准确。
史海拾趣
|
原文: 学习方法真的至关重要么 前面已经提到我作为老师经常遇到学生问“老师,这个方法真的有用么?”其 实,我知道学生的问题不止这一个,他们还有更进一步的问题。当然,只有聪明 的人才去关心方法,这没什么不对。然而,学生总是过分关心自 ...… 查看全部问答> |
|
我用的是WinCE5.0的系统,使用的BVDMAIN的bsp。 在driver里面有一个DMA文件夹,里面有一些使用DMA时相关的函数。还有一个例程代码。 但是我用例程代码调试,总是不成功。 请教一下是什么原因,谢谢 代码如下: #define FPGA_DMA_BUFFER_SI ...… 查看全部问答> |
|
本人第1次用CE。。。。 刚装好platform builder时。马上Build了一个NK。BIn 放在目标机上可以好好的运行。目标机上的media player可以打开windows media server编码出来的WMV9的MMS流。 后来我更改了一些东西。。。再BUILd就打不能MMS流了。。连 ...… 查看全部问答> |
|
本人用F412做仪表,设置一个按键P16来关机,关机后进入LPM4,同时设定IO口中断,结果发现进入休眠以后P1IE莫名其妙地被清零,硬件仿真的时候读出来的P1IE为0,从而导致不能再次开机,修改内存把它改为0x40(BIT6)后才能进入中断唤醒,再次进入休眠 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:47 编辑 、基本仪器清单 20MHz普通示波器(双通道,外触发输入,有X轴输入) 60MHz双通道数字示波器 低频信号发生器(1Hz~1MHz) 标准高频信号发生器(1MHz~30MHz,可输出1mV小信号) 函数发生器(10 M ...… 查看全部问答> |
|
我在书上抄的一段程序 #include \"io430.h\" #include<msp430x44x.h>#define Const 100vodi SoftDelay(int Factor){int i,j;for(i=0;i<Factor;i++) for(j=0;j<Const;j++); }void main(void){ _NOP(); SoftDelay ...… 查看全部问答> |
|
白光LED属于电压敏感型的器件,在实际工作中是以20mA的电流为上限,但往往会由于在使用中的各种原因而造成电流增大,如果不采取保护措施,这种增大的电流超过一定的时间和幅度后LED就会损坏。 造成LED损坏的原因主要有:   ...… 查看全部问答> |




