- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32F103的ADC总结
STM32的ADC采样
难点:如何确定采样周期?如何配置相关寄存器?转换时间里的12.5是怎么来的?
一、基本概念:ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。采样周期一般来说=转换时间+读取时间。而转换时间=采样时间+12.5个时钟周期。采样时间是你通过寄存器告诉stm32采样模拟量的时间,设置越长越精确。
STM32的ADC模块各个通道对应的IO
注意:STM32F103系列最少都拥有2个ADC,STM32F103ZET6包含有3个ADC,STM32F103ZET6内部集成了12位的逐次逼近型模拟数字转换器,它有多大18个通道,可测量16个外部和2个内部信号源。
二、规则组和注入组
STM32的ADC通道分为规则组和注入组。因为ADC转换模块只有一个ADC功能核心,它能够支持这么多通道的数据转换,用的是分时复用的方法。分组的目的是为了赋予特定的ADC通道优先权。
比如,ADCx_IN2被分配到规则组,ADCx_IN3被分配到注入组,在IN2通道进行数据转换的过程中,外部信号触发了IN3通道的转换,则ADC功能核心将暂停IN2的转换,转去执行IN3的转换,完成转换后在回来执行IN2的转换。由此可知,注入组的通道具有优先转换权,可以打断规则组通道正在进行的转换。
三、STM32 ADC 采样 频率的确定
①、可编程的通道采样时间
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
转换时间里的12.5是怎么来的?
原子哥告诉我,ST固定死了的,咱们不用关心。
②、具体分析如下:
(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。
在用STM32的adc,9M采样时钟,12.5+1.5采样周期,会发现通道之间采样的数据会顺时针影响,即1通道会影响2通道,2通道会影响3通道,但2不会影响1通道,共采6路,6会影响1。
STM32 AD切换通道时,不需要关闭ADC。其实论坛里很多人用STM32 AD,切换通道时都没有说需要关闭ADC。
这种现象对
文档评论(0)