[STM32G4] STM32G4中ADC触发分频的实现方式学习分享

[复制链接]
1189|15
 楼主| forgot 发表于 2023-11-24 14:08 | 显示全部楼层 |阅读模式
本帖最后由 forgot 于 2023-11-24 14:12 编辑

      在基于 ADC 的采样结果来计算更新 PWM 输出,以实现环路控制系统中。由于某些情况下 ADC 的转换频率或是环路计算频率跟不上 PWM 的频率,需要对 ADC 的触发进行分频,实现每 N 个 PWM 周期触发一次 ADC 转换。
STM32G4中ADC触发分频的实现方式应用文档介绍了在高精度定时器与高级控制定时器中如何实现 ADC 的触发分频。

基本的实现方式如下:
• 高精度定时器中使用 ADC post-scaler 功能,依靠设置 ADCxPSC[4:0]与 ADROM[1:0]实现
• 高级控制定时器中,ADC 的触发源结合 RCR 或者触发沿选择实现。
LAT1065_STM32G4中ADC触发分频的实现方式_v1.0.pdf (693.86 KB, 下载次数: 7)

Bblythe 发表于 2024-7-21 07:07 | 显示全部楼层

超过变量128后必须使用compact模式编译
周半梅 发表于 2024-7-21 09:03 | 显示全部楼层

一般要进行内存优化,尽量提高内存的使用效率
Pulitzer 发表于 2024-7-21 10:06 | 显示全部楼层

让尽可能多的变量使用直接寻址,提高速度
童雨竹 发表于 2024-7-21 12:02 | 显示全部楼层

访问时采用不同的指令,所以并不会占用 RAM 空间
Wordsworth 发表于 2024-7-21 13:05 | 显示全部楼层

极限情况下可以定义的变量可占 247 个字节
Clyde011 发表于 2024-7-21 14:08 | 显示全部楼层

128以上的某些地址为特殊寄存器使用,不能给程序用
万图 发表于 2024-7-21 16:04 | 显示全部楼层

超出 120 个字节则必须用 idata 显式的指定为间接寻址
Uriah 发表于 2024-7-21 17:07 | 显示全部楼层

只要内存占用量不超过 256.0 就可以用 small 模式编译
帛灿灿 发表于 2024-7-21 19:03 | 显示全部楼层

small 模式下未指存储类型的变量默认为data型
大鹏2365 发表于 2024-7-28 23:26 | 显示全部楼层
在 STM32G4 系列微控制器中,ADC 的触发分频是一个非常重要的功能,特别是在需要将 ADC 转换与 PWM 输出周期进行同步时。
大鹏2365 发表于 2024-7-28 23:44 | 显示全部楼层
由于 ADC 的转换频率可能不符合 PWM 的周期要求,通过触发分频可以有效地解决这个问题。
yutingwei 发表于 2024-7-29 00:07 | 显示全部楼层
通过配置 ADC 的触发源和定时器,来控制 ADC 转换的频率,使其与 PWM 输出的频率不同步,以便能够满足系统的控制要求。
初级工程渣 发表于 2024-7-29 00:36 | 显示全部楼层
高精度定时器 (TIM1 或 TIM8) 可以配置为生成 ADC 的触发信号。使用 ADC post-scaler 功能来实现 ADC 触发分频。

ADCxPSC (ADC prescaler) 控制 ADC 触发的分频系数。
ADROM (ADC rotation mode) 控制 ADC 的触发周期。
lxs0026 发表于 2024-7-30 20:34 | 显示全部楼层
高级控制定时器 (如 TIM1、TIM8 或 TIM20) 可以通过设置触发模式和触发边沿来控制 ADC 的触发。
lxs0026 发表于 2024-7-30 20:36 | 显示全部楼层
配置定时器和 ADC 的时钟频率和触发源是关键,确保它们正确地匹配。
调整定时器的周期 以满足所需的 ADC 触发频率。
测试和验证 实际的 ADC 转换频率和 PWM 输出频率是否符合预期。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2112

主题

14683

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部