怎么实现dsp芯片输出死区时间可调的pwm波形

怎么实现dsp芯片输出死区时间可调的pwm波形,第1张

实现 DSP 芯片输出死区时间可调的 PWM 波形需要按照以下步骤进行 *** 作:

1. 选择适合的 DSP 芯片和开发板,如 TMS320F28335。

2. 根据具体需求编写 PWM 模块的程序。

3. 确定死区时间的控制方法。可以使用固定的时间,也可以通过 ADC 模块读取外部电压来动态调整死区时间。

4. 在程序中加入死区时间的计算和设置模块。

5. 配置 PWM 模块输出的周期、占空比和相位差。

6. 调试程序并验证输出波形的正确性。

具体实现方式需根据所选的 DSP 芯片和开发环境进行调整,建议参考相关资料或进行实验验证。

我简单说下吧

如果你使用的是TIC2000系列dsp,下述可作为参考

为了产生一个PWM信号,DSP的定时器定时周期应该和PWM的周期相等。另外需要对DSP的EVA/EVB模块中的比较单元的比较寄存器设定数值,这样该数值一直与定时器的计数器值相比较,按照一定的比较方式,PWM即产生跳变。通过此种方式,DSP的PWM管脚就会产生一个宽度与比较寄存器数值成比例的脉冲信号。在定时器重复定时的过程中就产生了PWM信号。

使用DSP比较单元产生PWM波形不需要硬件连接图,只需对DPS的相关寄存器进行配置就可以在输出端得到相应的PWM波形,其具体 *** 作过程如下:

1设置比较方式控制寄存器ACTRx

2如有必要,使能死区功能,配置死区控制寄存器DBTCONx

3对比较寄存器CMPRx赋值

4设置定时器寄存器T1CON(T3CON)并启动定时

5通过更新CMPRx的数值改变PWM占空比的大小

对于我所熟悉的2407 DSP 程序如下:

PWMINIT

LDP #0E1H

SPLK#0AH,MCRCPWM7,9

SPLK#0140H,MCRAPWM1,3

LDP #0E8H

SPLK#0,CMPR1

SPLK#0,CMPR2

SPLK#0H,ACTRA

SPLK#0H,DBTCONA

SPLK#0A600H,COMCONA

SPLK#2000,T1PR

SPLK#0,T1CNT

SPLK#0H,GPTCONA

SPLK#80H,EVAIMRA

SPLK#0FFFFH,EVAIFRA

SPLK#0FFFFH,EVAIFRB

SPLK#0FFFFH,EVAIFRC

LDP #0EAH

SPLK#0H,ACTRB

SPLK#0H,DBTCONB

SPLK#0,CMPR4

SPLK#0,CMPR5

SPLK#2000,T3PR

SPLK#0A600H,COMCONB

SPLK#0,T3CNT

SPLK#0FFFFH,EVBIFRA

SPLK#0FFFFH,EVBIFRB

SPLK#0FFFFH,EVBIFRC

RET

该段程序使用2407两个事件管理器模块的4个PWM输出引脚pwm1 pwm3 pwm7 pwm9进行pwm输出,定时器周期为2000,只要你将写入CMPR的数值改变 就可以得到不同占空比的PWM波形,不妨试一试,前提是DSP可以正常工作


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12085193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存