[技术问答] 可以使用PDMA传输ADC的结果到PWM调节占空比吗?

[复制链接]
1740|11
 楼主| 稳稳の幸福 发表于 2024-10-18 21:52 | 显示全部楼层 |阅读模式
AD, ADC, DM, DMA, PWM
比如用电位器调节PWM,ADC检测电位器的位置,通过PDMA传递ADC的检测结果给PWM,来调节占空比。比如用来调节电机速度。
miltk 发表于 2025-1-17 14:10 | 显示全部楼层
是的,可以使用PDMA将ADC(模数转换器)的结果传输到PWM(脉宽调制)模块,从而动态调节PWM的占空比。这种设计在实时控制系统中非常常见,例如电机控制、LED调光等场景。
pe66ak 发表于 2025-1-17 15:17 | 显示全部楼层
ADC用于将模拟信号(如电压、电流)转换为数字信号。ADC转换完成后,结果会存储在ADC数据寄存器中。
eleg34ance 发表于 2025-1-17 16:33 | 显示全部楼层
PWM通过调节占空比(高电平时间与周期的比值)来控制输出信号的平均电压。占空比的值通常由PWM的比较寄存器(PWM Compare Register)决定
tiakon 发表于 2025-1-17 17:42 | 显示全部楼层
PDMA可以在外设和内存之间直接传输数据,无需CPU干预。通过PDMA,可以将ADC的结果直接传输到PWM的比较寄存器,从而动态调节占空比
gongqijuns 发表于 2025-1-17 20:19 | 显示全部楼层
设置ADC的采样通道、采样频率和分辨率。配置ADC为单次采样或连续采样模式。使能ADC的转换完成中断或DMA请求。设置PWM的频率和占空比范围。配置PWM的比较寄存器(PWM Compare Register)为可写模式。使能PWM输出。设置为ADC数据寄存器的地址(ADC_DR)。目标地址:设置为PWM比较寄存器的地址(PWM_CR)。传输长度:设置为1(每次传输一个ADC结果)。触发方式:设置为ADC转换完成触发(ADC_EOC)。传输模式:设置为单次传输或循环传输(根据需求选择)。
suiziq 发表于 2025-1-17 21:13 | 显示全部楼层
确保ADC的结果与PWM比较寄存器的位宽匹配。如果ADC的结果位数小于PWM比较寄存器的位宽,可能需要对数据进行扩展或缩放。
清芯芯清 发表于 2025-1-17 22:48 | 显示全部楼层
ADC的结果可能需要经过缩放或映射,以适应PWM占空比的范围
gra22ce 发表于 2025-1-18 09:11 | 显示全部楼层
如果ADC的结果是12位(04095),而PWM的比较寄存器是16位(065535),可以将ADC结果左移4位
wamed 发表于 2025-1-18 12:03 | 显示全部楼层
如果对实时性要求较高,建议使用循环传输模式,并确保PDMA的优先级足够高。
一切D都好 发表于 2025-1-18 14:07 | 显示全部楼层
硬件支持,确保所使用的MCU支持ADC和PWM之间的PDMA传输。某些MCU可能需要特定的外设组合才能实现此功能
Stahan 发表于 2025-1-19 23:24 来自手机 | 显示全部楼层
这个确实可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

204

主题

3450

帖子

8

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