我按照《TMS320x2802x,2803x Piccolo Enhanced Pulse Widt hModulator (ePWM) Module》LiteratureNumber:SPRUGE9E 中的例程进行了设置
所用软件为CCS5.5 下载器:xds100v2 芯片:TMS320F28035 Pin80
据体设置代码如下:
//=====================================================================
// Configuration
//=====================================================================
// Initialization Time
//========================// EPWM Module 1 config
EPwm1Regs.TBPRD= 800; // Period = 1600 TBCLKcounts
EPwm1Regs.TBPHS.half.TBPHS = 0; // Set Phaseregister to zero
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Symmetrical mode
EPwm1Regs.TBCTL.bit.PHSEN= TB_DISABLE; // Master module
EPwm1Regs.TBCTL.bit.PRDLD= TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // Sync down-stream module
EPwm1Regs.CMPCTL.bit.SHDWAMODE= CC_IMMEDIATE; //修改了shadow模式
EPwm1Regs.CMPCTL.bit.SHDWBMODE= CC_IMMEDIATE;
EPwm1Regs.CMPCTL.bit.LOADAMODE= CC_CTR_ZERO; // load on CTR=Zero
EPwm1Regs.CMPCTL.bit.LOADBMODE= CC_CTR_ZERO; // load on CTR=Zero
EPwm1Regs.AQCTLA.all= 0; // set actions for EPWM1A //设里修改了a
EPwm1Regs.AQCTLB.all = 0;
EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; // enable Dead-band module
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
EPwm1Regs.DBFED= 50; // FED = 50 TBCLKs
EPwm1Regs.DBRED= 50; // RED = 50 TBCLKs
// EPWM Module 2 config
EPwm2Regs.TBPRD= 800; // Period = 1600 TBCLKcounts
EPwm2Regs.TBPHS.half.TBPHS = 0; // Set Phaseregister to zero
EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Symmetrical mode
EPwm2Regs.TBCTL.bit.PHSEN= TB_ENABLE; // Slavemodule
EPwm2Regs.TBCTL.bit.PRDLD= TB_SHADOW;
EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // sync flow-through
EPwm2Regs.CMPCTL.bit.SHDWAMODE= CC_IMMEDIATE; //修改了shadow模式
EPwm2Regs.CMPCTL.bit.SHDWBMODE= CC_IMMEDIATE;
EPwm2Regs.CMPCTL.bit.LOADAMODE= CC_CTR_ZERO; // load on CTR=Zero
EPwm2Regs.CMPCTL.bit.LOADBMODE= CC_CTR_ZERO; // load on CTR=Zero
EPwm2Regs.AQCTLA.all = 0; // set actions for EPWM2A //设里修改了动作
EPwm2Regs.AQCTLB.all = 0;
EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; // enable Dead-band module
EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
EPwm2Regs.DBFED= 50; // FED = 50 TBCLKs
EPwm2Regs.DBRED= 50; // RED = 50 TBCLKs
// EPWM Module 3 config
EPwm3Regs.TBPRD= 800; // Period = 1600 TBCLKcounts
EPwm3Regs.TBPHS.half.TBPHS = 0; // Set Phaseregister to zero
EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Symmetrical mode
EPwm3Regs.TBCTL.bit.PHSEN= TB_ENABLE; // Slavemodule
EPwm3Regs.TBCTL.bit.PRDLD= TB_SHADOW;
EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // sync flow-through
EPwm3Regs.CMPCTL.bit.SHDWAMODE= CC_IMMEDIATE; //修改了shadow模式
EPwm3Regs.CMPCTL.bit.SHDWBMODE= CC_IMMEDIATE;
EPwm3Regs.CMPCTL.bit.LOADAMODE= CC_CTR_ZERO; // load on CTR=Zero
EPwm3Regs.CMPCTL.bit.LOADBMODE= CC_CTR_ZERO; // load on CTR=Zero
EPwm3Regs.AQCTLA.all = 0; // set actions for EPWM3A //设里修改了动作
EPwm3Regs.AQCTLB.all = 0;
EPwm3Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; // enable Dead-band module
EPwm3Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active Hi complementary
EPwm3Regs.DBFED= 50; // FED = 50 TBCLKs
EPwm3Regs.DBRED= 50; // RED = 50 TBCLKs
// Run Time (Note: Example execution of one run-time instant)
//=========================================================
EPwm1Regs.CMPA.half.CMPA = 600; // adjust duty for output EPWM1A
EPwm2Regs.CMPA.half.CMPA = 600; // adjust duty for output EPWM2A
EPwm3Regs.CMPA.half.CMPA = 600; // adjust duty for output EPWM3A
EPwm1Regs.CMPB = 600; // adjust for output EPWM1A
EPwm2Regs.CMPB = 600; // adjust for output EPWM2A
EPwm3Regs.CMPB = 600; // adjust for output EPWM3A
//测试输出
EPwm1Regs.AQCTLA.all =0x60; EPwm1Regs.AQCSFRC.all = 0x4; //设置 EPWM1 A输出,B关闭(持续强制输出低)
EPwm2Regs.AQCTLB.all =0x60; EPwm2Regs.AQCSFRC.all = 0x1; //设置 EPWM2 A关闭(持续强制输出低),B输出
EPwm3Regs.AQCSFRC.all = 0x05;//关闭epwm3
我只对程序作了一些小小的修改。但是输出却还是只有EPWM1通道 而且只有A,B引脚刚好是反相的。
请问我是什么地方设置 有误么?还是对程说明书的理解有误。