赞
踩
目录
本文主要介绍STM32H750外设ADC之过采样器的相关内容,包括:采样器的工作流程、各种类型的工作模块下采样器的配置和工作原理。
过采样单元会进行数据预处理,以减轻 CPU 的负担。过采样单元还能处理多个转换,并计算多
个转换结果的平均值,得到数据宽度增大(高达 26 位)的单个数据(16 位值, OSR = 1024)。
它提供的结果采用以下形式,其中的 N 和 M 可以进行调整:
允许通过硬件执行以下功能:
计算平均值、降低数据速率、改进 SNR 以及基本滤波。过采样率 N 通过 ADCx_CFGR2 寄存器中的 OSR[9:0] 位进行定义,范围为 2x 到 1024x。
分频系数 M 通过向右移位来实现(最多可移 10 位),并且通过 ADCx_CFGR2 寄存器中的
OVSS[3:0] 位定义。
求和单元可得出多达 26 位( 1024 x 16 位结果)的结果,结果可左移或右移。如果选择右
移,则会使用移位后剩下的最低有效位四舍五入为最接近的数值,然后将得到的结果传输到
ADCx_DR 数据寄存器中。
位 25:16 OSR[9:0]:过采样率 (Oversampling ratio)
此位域由软件置 1 和清零,用于定义过采样率。
0: 1x(不进行过采样)
1: 2x
2: 3x
...
1023: 1024x位 8:5 OVSS[3:0]:过采样右移 (Oversampling right shift)
此位域由软件置 1 和清零,用于定义应用到原始过采样结果的右移位数。
0000:不右移
0001:右移 1 位
0010:右移 2 位
0011:右移 3 位
0100:右移 4 位
0101:右移 5 位
0110:右移 6 位
0111:右移 7 位
1000:右移 8 位
1001:右移 9 位
1010:右移 10 位
1011:右移 11 位
采用 10 位右移和四舍五入进行过采样得到的 16 位结果
过采样模式下的转换时序不会发生变化:
在整个过采样序列中,采样时间保持不变。每完成N 次转换都会提供新数据,等效延迟等于 N x TCONV = N x (tSMPL + tSAR)。
各标志的置位情况如下:
每个采样阶段后都会将采样阶段结束标志 (EOSMP) 置 1
如果过采样结果可用,每完成 N 次转换都会发生转换结束事件 (EOC)
过采样数据序列完成后(即 N x 序列长度次转换之后),会发生序列结束事件 (EOS)
在过采样模式下,大部分 ADC 工作模式都会保留:
单次转换或连续模式转换
可由软件或触发器启动 ADC 转换
ADC 在转换过程中停止(中止)
通过 CPU 或 DMA 在支持溢出检测的情况下读取数据
低功耗模式 (AUTDLY)
可编程分辨率:在这种情况下,会按照与 16 位转换相同的方式对分辨率降低的转换值
(根据 ADCx_CFGR 寄存器中的 RES[2:0] 位)进行累加、截断、四舍五入和移位。
模拟看门狗功能会保留( AWDSGL 位和 AWDEN 位),但存在以下区别:
• 会忽略 RES[2:0] 位,始终会使用完整的 26 位值 HTRx[25:0] 和 LTRx[25:0] 进行比较。
• 在移位之前会对过采样累加值进行比较。
注意的问题:
移位位数较大时必须多加留意,因为这样会缩小比较范围。例如,如果过采样结果移了 4 位,得到 12 位右对齐数据,那么只能对 8 个数据位执行有效的模拟看门狗比较。比较操作会在ADCx_DR[11:4] 与 HT[0:7]/LT[0:7] 之间进行,并且 HT[11:8]/LT[11:8] 必须保持复位状态。
平均值计算单元还可用于基本滤波,虽然它不是非常强大的滤波器(衰减缓慢、停止频段衰减受限),但可用作陷波滤波器,用于抑制恒定的寄生频率(通常来自电源或切换模式电源)。为此,可使用 ADCx_CFGR2 中的 TROVS 位使能特定的不连续模式,以获得由用户定义、且与转换时间本身无关的过采样频率。
位 9 TROVS:已触发常规过采样 (Triggered Regular Oversampling)
此位由软件置 1 和清零,以使能已触发过采样
0:会在触发后连续完成某一通道的所有过采样转换
1:某一通道的每个过采样转换都需要重新触发
如果 TROVS 位置 1,则会忽略 DISCEN 位的内容,并将该位视为 1。
在过采样模式下,注入定序器和常规定序器可以执行不同操作。如果两个定序器必须同时使用,则可为它们使能过采样并设定一些限制条件(与唯一的累加单元相关)。
常规过采样模式位 ROVSM 定义了常规过采样序列在被注入转换中断的情况下如何恢复。
– 在连续模式下,会从上一有效数据开始重新累加(在由于注入触发而发出的转换中止请求之前)。这样可确保在任何注入频率下均可而完成过采样(假设触发之间至少可完成一次常规转换);
– 在恢复模式下,会从 0 开始重新累加(会忽略之前的转换结果)。该模式可确保所有用于过采样的数据在单个时隙内进行了背靠背转换。需要注意的是,注入触发周期必须超过过采样时长。如果该条件未得到满足,将无法完成过采样,常规定序器将被禁用。
常规过采样模式( 4x 过采样率)原理框图
注入过采样模式位 JOVSE 专为注入定序器中的转换使能过采样。
对常规通道和注入通道进行过采样可以将 ROVSE 和 JOVSE 位都置 1。在这种情况下,常规过采样模式会强制进入恢复模式(忽略 ROVSM 位)。
位 1 JOVSE:注入过采样使能 (Injected Oversampling Enable)
此位由软件置 1 和清零,用于使能注入过采样。
0:禁止注入过采样
1:使能注入过采样
注: 仅当 ADSTART=0 且 JADSTART=0 时(这可确保当前未进行任何转换),才允许通过软件对此位执行写操作
位 0 ROVSE:常规过采样使能 (Regular Oversampling Enable)
此位由软件置 1 和清零,用于使能常规过采样。
0:禁止常规过采样
1:使能常规过采样
注: 仅当 ADSTART=0 且 JADSTART=0 时(这可确保当前未进行任何转换),才允许通过软件对此位执行写操作
已触发常规模式下支持注入转换。在这种情况下,必须禁止注入过采样模式,并且会忽略ROVSM 位(强制进入恢复模式)。 JOVSE 位必须复位。
可以对自动注入序列进行过采样,并将所有转换结果存储在寄存器中以保存 DMA 资源。使用该模式的前提条件是常规和注入过采样均激活: JAUTO = 1、 ROVSE = 1 且 JOVSE = 1,不支持其他组合。在自动注入模式下,会忽略 ROVSM 位。
此外,还可以使用 TROVS 位使能触发模式。在这种情况下, ADC 必须进行如下配置:JAUTO=1、 DISCEN=0、 JDISCEN=0、 ROVSE=1、 JOVSE=1 且 TROVSE=1。
对于注入同步模式和常规同步模式,可在以双重 ADC 配置运行时使能过采样。在这种情况下,必须将两个 ADC 编程为使用完全相同的设置(包括过采样)。
使能常规过采样或注入过采样时( ROVSE = 1 或 JOVSE = 1),不支持所有其他双重 ADC模式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。