stm32cubemx ADC+TIM+DMA超频采样

Posted 四臂西瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32cubemx ADC+TIM+DMA超频采样相关的知识,希望对你有一定的参考价值。

ADC+TIM+DMA采集交流(三)

少年,你渴望力量吗?

前言

本文主要讲解ADC超频工作。

所需工具:

  • 开发板:STM32F103RCT6
  • STM32CubeMX
  • IDE: Keil-MDK

相关文章:

原理简介

F1中文参考手册上写道ADC的始终不得超过14M,实际使用中是可以超过的,产商在写手册时都会有一定的保留值,稍微超过一点没问题,不只是ADC的时钟,系统总时钟72M也是可以超频到80多兆,甚至是100多兆。

当然不推荐超频过多,保留值是出于使用稳定性,安全性的考虑。超频超越的过多或者是超频工作太久,单片机都是有可能出现罢工的。

超频是什么意思_超频的好处和坏处_超频的作用-与非网 (eefocus.com)

开启超频

在上一篇文章的工程基础上进行修改。先把定时器的触发频率调节到1.5M。

下面是时钟树的配置。

没有什么不一样的地方。因为cubemx是不允许我们超频的,如果超频就会报错,比如下面修改ADC Prescaler的分频强行改成18M。

冒红了吧,超频需要在keil里面通过编程更改。我们改回12M时钟。生成工程。

在main.c文件下找到SystemClock_Config函数,再在函数末尾处找到

PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;

这里的DIV6对应的正是cubemx时钟树里面的ADC Prescaler,这里目前是6分频,我们把他改成2分频,ADC的时钟就是36M了。

PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;

现在ADC理论上的采样率上限为
36 M 1.5 + 12.5 ≈ 2.57 M \\frac36M1.5+12.5\\approx2.57M 1.5+12.536M2.57M
时钟开太高对单片机不好,平时4分频超到18M就行了,不必超到36M,我可不想让他英年早逝。

注意SystemClock_Config不在begin和end之间,会在cubemx生成工程时被更改

实测

ADC采样率1.5M,信号发生器产生150khz的正弦信号,单片机采集后打印到VOFA上。可以看到一个周期确实是10个点。

后记

本文章收录于:

唐承乾的电赛小站

本文为系列文章中的冰山一角,欢迎进入小站查看。

配套程序:

ADC+TIM+DMA超频采样 0积分下载

以上是关于stm32cubemx ADC+TIM+DMA超频采样的主要内容,如果未能解决你的问题,请参考以下文章

STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx

STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx

STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx

STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx

STM32cubemx教程 DAC+TIM+DMA

STM32CubeMX使用之DMA方式使用ADC