3.10 可编程增益放大器 PGA
3.10.1 说明
HC32F460 系列 MCU 集成了可编程增益放大器 PGA,能对模拟信号进行放大处理,可节省MCU 外接运算放大器的硬件成本。PGA 电路先将模拟信号进行放大,然后再将放大后的模拟信号输出至 ADC 模块进行采样转换。
注意:
-
只有 ADC1 支持 PGA;
-
PGA 通道直接与模拟输入引脚对应,其对应引脚映射的通道必须被 ADC1 序列 A 或序列B 的通道选择寄存器选中,才可对该模拟输入进行放大。
3.10.2 应用
用户可根据实际的应用场景,选择合适的放大倍数,对模拟输入进行放大。模拟输入电压和放大倍数必须满足如下条件:
0.1*VCCA/Gain <= VI <= 0.9*VCCA/Gain
其中,VCCA 是模拟电源电压,Gain 是放大倍数,VI 是模拟输入电压,具体请参考用户手册PGA 相关部分。关于 PGA 的配置和用法,请参考例程 adc_12_adc1_pga。
3.11 协同模式
HC32F460 系列 MCU 具有两个 ADC 模块,可使用 ADC 协同工作模式。在协同工作模式下,转换启动只能由 ADC1 的触发源触发启动,且软件启动无效。
协同模式可配置为以下四种协同模式:
单次并行触发模式
单次延迟触发模式
循环并行触发模式
循环延迟触发模式
注意:
-
协同模式只能由 ADC1 配置;
-
设置为协同工作模式的 ADC,其配置(扫描模式、分辨率和数据对齐方式等)应尽量相同;具体通道无需相同,但是通道数量及对应采样时间应相同;
-
使用单次触发时,请将协同工作模式的 ADC 设置为序列 A 单次扫描或循环扫描;使用循环触发模式时,请设置为序列 A 单次扫描;
-
禁止多个 ADC 模块同时对一个模拟输入进行采样;
-
请严格按照用户手册协同模式相关部分的说明,来设置采样时间(ADC_SSTR 寄存器)和协同模式控制寄存器 ADC_SYNCCR 的 SYNCDLY。
-
请禁止序列 B,以免打乱同步。
3.11.1 单次并行触发模式
3.11.1.1 说明
该模式下,ADC1 序列 A 的触发条件同时触发处于协同工作模式的所有 ADC 模块, ADC1 序列 A 的触发条件只触发处于协同工作模式的 ADC 模块一次,这些 ADC 模块在采样转换一次后,是否停止,视其序列 A 扫描模式而定。
3.11.1.2 应用
并行触发的特点是,处于协同工作模式的 ADC 能同时对各自的模拟输入进行采样转换。例如,测量单相或三相瞬时电功率并绘制其曲线:Pn(t) = Un(t) × In(t)。在这种情况下,应同时测量电压和电流,然后计算瞬时功率,即电压 Un(t) 与电流 In(t)的乘积。要测量单相电功率,可将 ADC1 的一个通道和 ADC2 的一个通道配合使用,一个通道测量电压,一个通道测量电流,如图 3-9;要测量三相电功率,可将 ADC1 的三个通道和 ADC2 的三个通道配合使用,三个通道测量电压,三个通道测量电流。
如果只需要测量某一时刻的瞬时功率,使用单次并行触发模式即可;如果要连续测量,可结合定时器使用,用定时器定时触发该协同模式,或结合序列 A 连续扫描模式,或用循环并行触发模式,具体可根据需要的扫描频率等需求选择合适的解决方法。
3.11.2 单次延迟触发模式
3.11.2.1 说明
ADC1 序列 A 的触发条件触发 ADC1 后,经过设定的延迟后触发 ADC2 启动采样转换。ADC1 序列 A 的触发条件只触发处于协同工作模式的 ADC 模块一次,这些 ADC 模块在采样转换一次后,是否停止,视其序列 A 扫描模式而定。
3.11.2.2 应用
结合序列 A 连续扫描模式,可实现对同一模拟输入的高频采样。例如,如果要转换的信号的最大频率为 2.5MHz,则采样率应该大于或等于该信号频率的二倍(符合香农采样定理)。
由于一个 ADC 的最大采样率为 2.5MSPS,达不到采样定理的要求。此时,可通过这种方式将采样率提高到 5MSPS。关键设置如下:
1.
设置 ADC 时钟为 60MHz;
2.
ADC1 和 ADC2 设置扫描模式为序列 A 连续扫描;
3.
ADC1 和 ADC2 配置同一个模拟输入,并设置相同的采样周期数 ADC_SSTR = 11;
4.
配置同步模式为单次延迟触发,并设置同步延迟时间 ADC_SYNCCR.SYNCDLY = 12。
注意:
- 不要为了更高的采样率而缩减采样时间 ADC_SSTR,采样时间过短可能会使转换结果的
误差超出误差值的设计范围。
建议:强烈建议使用 DMA 而非中断,以免数据丢失。
3.11.3 循环并行触发模式
3.11.3.1 说明
该模式下,ADC1 序列 A 的触发条件同时触发处于协同工作模式的所有 ADC 模块。若设置为单次并行触发,那么所有 ADC 模块在转换一次后就停止转换(如果扫描模式是序列 A 单次扫描);若设置为循环并行触发,在 ADC1 序列 A 的触发条件同时触发处于协同工作模式
的所有 ADC 模块后,每经过指定延迟之后,所有 ADC 模块会再次同时触发转换,如此循环,直到用户主动软件停止 ADC1 模块或禁止协同模式。
3.11.3.2 应用
如果需要连续测量某模拟信号,可使用该模式,比如前面的测量电功率的应用。
3.11.4 循环延迟触发模式
3.11.4.1 说明
ADC1 序列 A 的触发条件触发 ADC1 之后,每经过设定的延迟后,依次循环不断触发 ADC2、ADC1、ADC2……,直到用户主动软件停止 ADC1 模块或禁止协同模式。
3.11.4.2 应用
该模式适用用于一些,需要对模拟输入进行循环交替采样而对采样率要求不是很高的应用。这里简单介绍下循环延迟触发模式采样率的计算方法。
假设如下条件:
1.
ADC 时钟为 60MHz;
2.
采样时间 ADC_SSTR 设置为 11;
3.
由 17.3.8 节和 17.4.16 节相关要求,SYNCDLY 可设置为 17。
4 总结
本应用笔记简要介绍了 HC32F460 系列 ADC 模块的各种功能以及可能的应用场景,并给出了ADC 模块应用的基本流程,还提供了一种测试高频采样率的方法,在实际开发中,用户可根据具体应用场景按需配置和应用 ADC 模块。