我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 2634|回复: 6

[技术文章] DSP---PWM波形源码

[复制链接]

20

主题

1

回帖

72

积分

一级逆天

积分
72

社区居民

QQ
发表于 2015-4-23 23:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  DSP2812---PWM波形
// $          Date:   6/11/2009        整理:  eyes417      $
//###########################################################################
//
//   FILE :  Example_281xEvPwm.c
//
//  TITLE:  EV-A --- PWM波形程序
//
//                                   ASSUMPTIONS:
//   
//   As supplied, this project is configured for "boot to H0" operation.
//   Other then boot mode pin configuration, no other hardware configuration is required.
//
//###########################################################################
# include "DSP281x_Device.h"                        // DSP281x Headerfile Include File
# include "DSP281x_Examples.h"                      // DSP281x Examples Include File

void init_eva(void);
void main(void)
{
  InitSysCtrl();

// InitGpio(); 配置IO口功能为PWM模式
   EALLOW;
   GpioMuxRegs.GPAMUX.all = 0x00FF;        // EVA PWM 1-6  pins
   EDIS;

  DINT;                           //关CPU总中断
  InitPieCtrl();                 //初始化PIE控制寄存器
  IER = 0x0000;
  IFR = 0x0000;
  InitPieVectTable();            //初始化PIE中断向量表
  init_eva();                    //初始化EV-A
  EvaRegs.T1CON.bit.TENABLE=1;   //手工启动定时器
  
  EINT;        // 使能INTM(全局中断)
  ERTM;        // Enable Global realtime interrupt DBGM  
  for(;;);
}

//EV-A初始化
void init_eva(void)
{
  EvaRegs.T1PR = 37500;   //周期值--连续增减时,PWM频率=TCLK/(2*T1PR)---频率设为1K, PWM=75M/(2*37500)
  EvaRegs.T1CMPR = 0x3C00;          // Compare Reg--比较值
  EvaRegs.T1CNT = 0x0000;           //计数器初值
//连续增/减模式,x/1分频,内部时钟,使能比较,使用自己的周期,禁止定时器启动(等初始化全部完成后手工启动)
  EvaRegs.T1CON.all = 0x0802;
  EvaRegs.GPTCONA.bit.TCMPOE = 1;    //通过逻辑产生T1 PWM
  EvaRegs.GPTCONA.bit.T1PIN = 1;     //GP定时器1比较时低有效
  
//使能比较产生1--6 PWM波  1个比较单元控制2路互补的PWM输出,控制PWM占空比
//连续增减--低有效时:PWM占空比=CMPR1/T1PR,高有效时:PWM占空比=(T1PR-CMPR1)/T1PR
  EvaRegs.CMPR1 = 15000;           //第一路PWM占空比设为0.4,0.4=15000/37500
  EvaRegs.CMPR2 = 0x3C00;
  EvaRegs.CMPR3 = 0xFC00;

// output pin 1 CMPR1 - 高有效,output pin 2 CMPR1 - 低有效
// output pin 3 CMPR2 - 高有效,output pin 4 CMPR2 - 低有效
// output pin 5 CMPR3 - 高有效,output pin 6 CMPR3 - 低有效
  EvaRegs.ACTRA.all = 0x0666;          //比较方式控制寄存器,控制PWM引脚的 高/低 有效
  EvaRegs.DBTCONA.all = 0x0000;        //静止死区
  EvaRegs.COMCONA.all = 0xA600;        //比较控制寄存器--禁止空间矢量PWM模式
}
                    用示波器观察到的PWM波形

                               
登录/注册后可看大图



                               
登录/注册后可看大图

                              
                         总结:PWM波形产生流程
1):将I/O口设置为PWM引脚模式
2):设置装载TxCON,决定计数方式,启动比较操作
3):设置装载TxPR,决定PWM波形周期
4):初始化EvaRegs.CMPR1--3的值,每个比较单元控制2路互补的PWM输出,控制PWM占空比
5):EvaRegs.ACTRA比较方式控制寄存器,控制PWM引脚的 高/低 有效
6):EvaRegs.DBTCONA死区时间的设置
7):EvaRegs.COMCONA设置比较控制寄存器

附:
/*****************************死区寄存器配置************************************/
EvaRegs.DBTCONA.bit.DBT=5;                  //死区定时器周期为5
EvaRegs.DBTCONA.bit.EDBT1=1;             //死区定时器1使能
EvaRegs.DBTCONA.bit.DBTPS=3;              //死区定时器预定标因子,死区时钟为HSPCLK/8
回复

使用道具 举报

34

主题

610

回帖

2204

积分

二级逆天

积分
2204

社区居民新人进步奖终身成就奖

QQ
发表于 2016-11-26 14:36 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:初入少年
  • 打卡总天数:3
  • 打卡月天数:0
  • 打卡总奖励:7
  • 最近打卡:2025-10-19 23:16:23

7

主题

380

回帖

785

积分

二级逆天

积分
785

终身成就奖社区居民特殊贡献奖

QQ
发表于 2017-2-20 09:12 | 显示全部楼层
回复

使用道具 举报

6

主题

1728

回帖

1931

积分

二级逆天

积分
1931

终身成就奖优秀斑竹奖

QQ
发表于 2017-3-21 08:35 | 显示全部楼层
回复

使用道具 举报

发表于 2017-4-13 08:23 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:初入少年
  • 打卡总天数:2
  • 打卡月天数:0
  • 打卡总奖励:4
  • 最近打卡:2026-06-25 11:50:26

21

主题

887

回帖

1471

积分

1元学习PADS(1期)

积分
1471

终身成就奖优秀斑竹奖

QQ
发表于 2017-4-17 09:02 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:常住青年
  • 打卡总天数:17
  • 打卡月天数:0
  • 打卡总奖励:61
  • 最近打卡:2025-01-13 19:11:02

0

主题

8150

回帖

7628

积分

二级逆天

积分
7628

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2018-2-26 14:55 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请举报投诉

本站所有资料仅限参考学习交流,PCB原理图源码等所有资料不保证准确没问题,请不要用作生产。否则后果自负。

闽公网安备35062302000276号 | 闽ICP备2024076463号-1 | 论坛技术支持QQ群171867948 | 论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表