1. 前言$ V2 |1 R$ ~9 f6 \1 W 当前的数字电源设计中,ADC 与定时器是最重要的两个外设,算法基于 ADC 的采样结果来计算更新 PWM 输出,以实现环路控制。一般情况下使用定时器的复位/周期事件或是某个比较事件来触发 ADC 转换,然后在 ADC 转换完成中断中执行环路算法,让 ADC 的转换频率、算法执行频率与 PWM 频率保持一致。但是某些情况下 ADC 的转换频率或是环路计算频率跟不上 PWM 的频率,需要对 ADC 的触发进行分频,实现每 N 个 PWM 周期触发一次 ADC 转换。本文基于STM32G474 介绍在高精度定时器与高级控制定时器中如何实现 ADC 的触发分频。8 _# _& G9 D9 T" P+ e# K / _2 x$ R( q; e% K 3 e- e; E" z/ p8 E 2. 高精度定时器中 ADC 分频的实现1 G- S3 B. ?( L) _- W' s 在 G474 的高精度定时器中有多达 10 路的 ADC 触发信道,每个触发通道有多达 32 种触发源可以选择,PWM 发波可以与 ADC 触发非常灵活的关联。如下图为 hrtim_adc_trg1~hrtim_adc_trg4 与其对应可选触发源的框图。 ' [( C2 j# I4 y" H 6 E, C$ @" J+ m1 Y' e5 Y ) P% @# v4 l& r! i 高精度定时器中通过“ADC post-scaler”来实现 ADC 触发源的分频,配置 ADCxPSC[4:0]即可。如下图所示为在定时器工作在 up-counting 计数模式下,设置某个比较事件触发 ADC 转换,在 ADCxPSC[4:0]配置不同的值时实现 ADC 触发分频输出的示意图。 / ~0 Q2 i {: u, H% H 5 _8 f. ~( b2 `2 d, ]5 G) F; r, u w. g+ D" P" C& y 当定时器工作在 up-down counting 计数模式下时,对于设定的比较值或是 Roll-Over 都存在. t7 G, S. Q( ~4 f" k+ T4 n 两个点,所以首先还需通过设置 ADROM 来确定触发点,如下:% @* H6 e8 v/ \8 D! _: e! M ( a( D1 Z5 I( U" _/ J 如下图所示为在定时器工作在 up-down counting 计数模式下,设置某个比较事件触发 ADC 转换,在 ADCxPSC[4:0]与 ADROM[1:0]配置不同的值时实现 ADC 触发分频输出的示意图。- X4 |9 Z& c' j( I2 T : {" z9 V+ a3 l' |7 K! H. f& m 2 k4 U+ L( I: ~ 8 v' l: J/ \( l 完整版请查看:附件 4 i3 `2 h- w k! N, h 6 B! m% r/ C w- t 2 z, i; F) K# u3 ?; |6 G |
LAT1065_STM32G4中ADC触发分频的实现方式_v1.0.pdf
下载693.86 KB, 下载次数: 0
STM32固件库分享,超全系列整理
【经验分享】STM32G4_CORDIC与定点带符号整数数据格式
STM32的CAN FD位定时设置注意事项
基于STM32G474 中 Triggered-half 模式的实现
基于STM32G4的数字控制 15kW双向PFC
基于STM32G431简介
今天14:00 | 基于STM32的MATLAB电机控制方案直播
基于STM32G474外红外接收经验分享
STM32G431RBT6之Key模块入门
STM32G431RBT6--LED模块入门