打印
[技术问答]

可以使用PDMA传输ADC的结果到PWM调节占空比吗?

[复制链接]
931|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)决定

使用特权

评论回复
5
tiakon| | 2025-1-17 17:42 | 只看该作者
PDMA可以在外设和内存之间直接传输数据,无需CPU干预。通过PDMA,可以将ADC的结果直接传输到PWM的比较寄存器,从而动态调节占空比

使用特权

评论回复
6
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)。传输模式:设置为单次传输或循环传输(根据需求选择)。

使用特权

评论回复
7
suiziq| | 2025-1-17 21:13 | 只看该作者
确保ADC的结果与PWM比较寄存器的位宽匹配。如果ADC的结果位数小于PWM比较寄存器的位宽,可能需要对数据进行扩展或缩放。

使用特权

评论回复
8
清芯芯清| | 2025-1-17 22:48 | 只看该作者
ADC的结果可能需要经过缩放或映射,以适应PWM占空比的范围

使用特权

评论回复
9
gra22ce| | 2025-1-18 09:11 | 只看该作者
如果ADC的结果是12位(04095),而PWM的比较寄存器是16位(065535),可以将ADC结果左移4位

使用特权

评论回复
10
wamed| | 2025-1-18 12:03 | 只看该作者
如果对实时性要求较高,建议使用循环传输模式,并确保PDMA的优先级足够高。

使用特权

评论回复
11
一切D都好| | 2025-1-18 14:07 | 只看该作者
硬件支持,确保所使用的MCU支持ADC和PWM之间的PDMA传输。某些MCU可能需要特定的外设组合才能实现此功能

使用特权

评论回复
12
Stahan| | 2025-1-19 23:24 | 只看该作者
这个确实可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

188

主题

3325

帖子

8

粉丝