梁工 发表于 2024-11-22 16:49:17

Ai8051U- DMA支持高速高级PWM-HSPWMA例程:输出SPWM经过滤波可以得到正弦波

Ai8051U-DMA支持高速高级PWM-HSPWMA@120MHz
输出演示程序:输出SPWM经过滤波可以得到正弦波

先别修改程序, 直接下载"Obj"里的"pwm.hex"测试,
下载时选择主频40MHz.
本例子演示使用HSPWMA DMA方式输出一个正弦波(SPWM),
DMA启动后自动装载60点正弦波的占空比,
装载完成后进入DMA中断重启DMA即可连续输出正弦波。
DMA中断取反P3.4来指示DMA中断频率=P3.4频率*2.。
本例主频FOSC=40MHz, PLL为120MHz给HSPWM做时钟,
PWM周期=2000, 则PWM频率=120000KHz/2000=60KHz,
60点正弦波, P3.4输出方波频率为500Hz.
PWM接滤波电路用示波器即可观察到正弦波。
P1.0或P1.1(互补) 输出正弦波频率为1000Hz, 两节无源二阶RC滤波参数: 5.1K+20nF串联 51K+2nF.
P1.2或P1.3(互补) 输出正弦波频率为2000Hz, 两节无源二阶RC滤波参数: 5.1K+10nF串联 51K+1nF.
P1.4或P1.5(互补) 输出正弦波频率为3000Hz, 两节无源二阶RC滤波参数: 5.1K+6.8nF 串联 51K+680pF.
P1.6或P1.7(互补) 输出正弦波频率为4000Hz, 两节无源二阶RC滤波参数: 5.1K+4.7nF 串联 51K+470pF.

本例子PWM输出IO:
PWM4N PWM4P    PWM3N PWM3P    PWM2N PWM2P    PWM1N PWM1P
P1.7P1.6   P1.5P1.4   P1.3P1.2   P1.1P1.0


两节无源二阶RC滤波电路:


Ai8051U-DMA支持高速高级PWM-HSPWMA@120MHz
输出演示程序:输出SPWM经过滤波可以得到正弦波
程序源码,分4个程序,分别是:
1路、2路3路、4路HSPWM DMA输出SPWM:




神农鼎 发表于 2024-12-10 11:41:36







香河英茂工作室 发表于 2024-12-28 11:27:15

感谢分享

香河英茂工作室 发表于 2025-1-3 14:07:15

感谢分享,是哪个开发板型号呀?

梁工 发表于 2025-1-3 14:18:37

香河英茂工作室 发表于 2025-1-3 14:07
感谢分享,是哪个开发板型号呀?

不是开发板上的,有MCU就可以实现。

proktv 发表于 2025-4-24 17:46:04

{:shengli:}

keke 发表于 2025-6-4 21:28:19

感谢分享,学习PWM
页: [1]
查看完整版本: Ai8051U- DMA支持高速高级PWM-HSPWMA例程:输出SPWM经过滤波可以得到正弦波