STM32F407VG

STM32F407VG模数转换精准采样速率的设计

作者:王涛范寒柏王磊

来源:《电子世界》2012年第15期

【摘要】本文通过分析ARM7最新型号芯片的片上资源,介绍了一种简单的实现精准采样的模数转换方法。本方法的突出优点是,最新型号的芯片主频高,模数转换的采样速率由片上定时器触发,是采样速率准确、稳定,不容易受到影响外部环境影响。对需要准确采样速率的模数转换场合提供依据。

【关键词】ARM7;模数转换;精准采样

1.引言

对模拟信号进行频谱分析时,一般需要对信号进行AD采样,并确定采样速率。而对频率分辨率较高的场合,对采样速率要求较为准确,但一般的模数转换器并不能保证准确的采样速率。由此,本文以STM32F407VG为模数转换器,介绍其设定出准确的采样速率的方案

[1][2]。

2.STM32F407VG资源

(1)STM32F407VG数模转换器

STM32F407VG数模转换器简称ADC,是12位逐次逼近模拟数字转换器,拥有多个通道,每个通道可以单次、连续、扫描或间接模式进行模数转换。转换又可分为规则转换和注入转换,这两种转换均可以由外部触发。在72MHz工作频率下,一次的模数转换的时间时间仅为1.17us。

(2)STM32F407VG直接存储器

STM32F407VG直接存储器简称DMA,DMA用来在外设和存储器之间或者存储器之间的高速数据传输。数据可以通过DMA快速移动,无须CPU干预,节省了CPU资源。拥有两个DMA控制器,DMA1有七个通道,DMA2有5个通道,每个通道专门原来管理来自于一个或多个外设对存储器访问的请求。同时还有一个仲裁器来协调各个DMA请求的优先权。

(3)STM32F407VG高级控制定时器

STM32F407VG高级控制定时器有两个,为别为TIM1和TIM8。这两个高级定时器由一个16位能够向上、向下、向上\向下自动装载计数器组成,并由一个可编程的预分频器驱动,预

分频系数可以从1~65535之间的任意数值,他们是完全独立的,不共享任何资源。在主要功能中,可以作为ADC注入触发的事件。

3.ADC定时采样设计思路

由上面的介绍可知,STM32F407VG的ADC可以进行注入转换,注入转换可以由定时器产生,ADC转换之后的结果可以通过DMA通道快速转移。由此,ADC精准采样的工作思路如图1所示。

由转换图知,只要保证了定时器的触发速度不大于ADC的转换速度,那么定时器的注入触发ADC转换就能够及时的采样数据,并保证了每次采样的间隔同时,也即能够由定时器的定时触发设定出精准的采样速率。

4.软件设计

(1)ADC初始化设定

ADC转换需要基准源、输入信号、转换时钟、转换方式、转换速率、转换的分辨率、转换结果数据对齐方式等,由此选择ADC基准源设定了内部基准源,接着设定输入信号的通道,开启转换的时钟,转换方式为定时器触发的注入的转换方式,并设定了定时器内部PWM 上升沿触发,转换速率设定了转换时钟的二分频,转换分辨率设定为12位,数据对齐方式为右对齐。

(2)定时器初始化设定

定时器初始化需要时钟、计数方式、内部Trig频率及咱空比等,这里我们只需要内部PWM的频率以及上升沿能够有效触发ADC转换即可,并且PWM的频率可以随时修改。

(3)DMA初始化设定

DMA数据转移涉及DMA通道的选择、数据的转移地址、数据缓存大小等,这里只要选对相应的ADC对应的DMA通道即可。

程序流程见图2。

5.结语

STM32F407VG模数转换器ADC具有的注入转换方式,可以配合自身的定时器TIM和快速数据转移的DMA请求进行精准的信号采样。本文对这三个资源进行分析的基础上给出了实现模数转换的精准采样的方案。为需要精准采样速率的数字信号处理过程提供了可靠保证。

相关主题
相关文档
最新文档