你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 ADC的采样周期确定

[复制链接]
阿松松 发布时间:2015-1-6 13:28
嗯,如何映射到自己的项目实际应用中去,还需要大家活学活用

一 STM32 ADC 采样 频率的确定
先看一些资料,确定一下STM32 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


收藏 1 评论4 发布时间:2015-1-6 13:28

举报

4个回答
ataudio 回答时间:2015-1-6 13:51:18
做个记号,现在的应用涉及到了采样率调整。采样率到底如何根据配置参数计算出来的,有没有详细的过程说明?
阿松松 回答时间:2015-1-6 13:52:58
ataudio 发表于 2015-1-6 13:51
做个记号,现在的应用涉及到了采样率调整。采样率到底如何根据配置参数计算出来的,有没有详细的过程说明? ...

唉,没有唉,我们都是按部就班的来,不懂计算原理,头疼
ataudio 回答时间:2015-1-6 14:24:52
从手册资料上查看过,但是计算出来的采样率总是不能和默认的2.4M匹配,还没想明白为什么。
阿松松 回答时间:2015-1-6 14:40:02
ataudio 发表于 2015-1-6 14:24
从手册资料上查看过,但是计算出来的采样率总是不能和默认的2.4M匹配,还没想明白为什么。 ...

我设置42MHz,肯定不匹配啊,实际用起来却也没问题,不知道后期会不会出bug

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版