文档详情

关于某28335各个模块地理解

cn****1
实名认证
店铺
DOC
95KB
约10页
文档ID:491450780
关于某28335各个模块地理解_第1页
1/10

wordPWM的使用// Configure ePWM1  // Setup TBCLK   EPwm1Regs.TBPRD = EPWM_TIMER_TBPRD;           // Set timer period 1500/2 TBCLKs   EPwm1Regs.TBPHS.half.TBPHS = 0x0000;           // Phase is 0   EPwm1Regs.TBCTR = 0x0000;                 // Clear counter         // Set pare values   EPwm1Regs.CMPA.half.CMPA = EPWM_CMPAB;     // Set pare A value//   EPwm1Regs.CMPB = EPWM_CMPAB;               // Set pare B value      // Setup counter mode   EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up down      EPwm1Regs.TBCTL.bit.PHSEN = TB_ENABLE;      // enable phase loading use for sync   EPwm1Regs.TBCTL.bit.PHSDIR=TB_UP;   EPwm1Regs.TBCTL.bit.SYNCOSEL=TB_SYNC_IN;      EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2+TB_DIV4+TB_DIV4;  // TBClock ratio = SYSCLKOUT/(2*HSPCLKDIV*   EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;  //   2^CLKDIV)   // Setup shadowing   EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;//   EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;   EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;  // Load on Zero //  EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;     // Set actions   EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;       // Set PWM1A on event A, up count   EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;      // Clear PWM1A on event A, down count  // EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR;     //Clear  PWM1B on event A, up count  // EPwm1Regs.AQCTLB.bit.CAD = AQ_SET;      //  Set PWM1B on event A, down count   // Set DeadBand   EPwm1Regs.DBCTL.bit.IN_MODE=DBA_ALL;   EPwm1Regs.DBCTL.bit.POLSEL=DB_ACTV_HIC;   EPwm1Regs.DBCTL.bit.OUT_MODE=DB_FULL_ENABLE;   EPwm1Regs.DBRED=Dbred;      // Dead-band rising edge delay   EPwm1Regs.DBFED=Dbfed;      // Dead-band falling edge delay   // Set Trip Zone   EPwm1Regs.TZSEL.bit.OSHT1=TZ_ENABLE;   EPwm1Regs.TZCTL.bit.TZA=TZ_FORCE_LO;   EPwm1Regs.TZCTL.bit.TZB=TZ_FORCE_LO;      // Interrupt where we will change the pare Values   EPwm1Regs.ETSEL.bit.SOCBSEL= ET_CTR_ZERO;// Select start ADC (EPWMxSOCB) on Zero event   EPwm1Regs.ETSEL.bit.SOCBEN= Enable;           // Enable     EPwm1Regs.ETPS.bit.SOCBPRD=ET_1ST;主要注意的就是EPWM的死区子模块。

由比拟器产生A,B个比拟信号进入动作限定子模块,并且出来EPWMxA〔1〕与EPWMxB〔1〕两路信号,然后进入死区模块对于死区模块是双输入双输出的,输入为EPWMxA〔1〕与EPWMxB〔1〕,输出为EPWMxA〔2〕与EPWMxB〔2〕,其中〔2〕的信号可以由〔1〕的其中一个或者两个共同产生对于我的使用时为了产生SVPWM去控制IPM,因此需要互补信号,只要用EPWMxA〔1〕去产生EPWMxA〔2〕与EPWMxB〔2〕一个ePWM module包括Time-base (TB) module,Counter-pare (CC) module,Action-qualifier (AQ) module,Dead-band (DB) module,PWM-chopper (PC) module,Event-trigger (ET) module,Trip-zone (TZ) module等七个模块正常的发出PWM波要配置TB、CC、AQ、DB、ET等五个模块Time-base (TB) module为定时器模块,有TBCTL〔控制存放器〕配置定时器的时钟、计数模式、同步模式TBSTS〔状态存放器〕TBPHSHR〔高速PWM用〕TBPHS〔相位存放器〕计数器的起始计数位置,例如存放器为0x0100如此计数器从0x0100开始计数TBCTR〔计数器〕TBPRD〔周期存放器〕设置计数器的计数周期。

只有TBPRD〔周期存放器〕有影子存放器本程序的设置为count-up-and-down mode计数模式,相位为零,ePWM2 、ePWM3、 ePWM4、 ePWM5、 ePWM6通过ePWM1的计数器到零时进展同步,计数周期为0.5msCounter-pare (CC) module为比拟器模块有CMPCTL 〔比拟控制存放器〕设置CMPA、CMPB的重载模式CMPAHR〔高速PWM用〕,CMPA〔比拟值存放器A〕设置EPWMxA的比拟值,有影子存放器CMPB〔比拟值存放器B〕设置EPWMxB的比拟值,有影子存放器本程序只应用了CMPA,设置计数器到零时重载CMPAAction-qualifier (AQ) module比拟方式预设模块AQCTLA 〔输出A比拟方式控制存放器〕设置EPWMA的比拟方式有CBD、CBU、CAD、CAU、PRD、ZRO,无影子存放器,立即装载AQCTLB 〔输出B比拟方式控制存放器〕设置EPWMB的比拟方式有CBD、CBU、CAD、CAU、PRD、ZRO,无影子存放器,立即装载AQSFRC 〔软件强制控制存放器〕设置AQCSFRC重载方式〔RLDCSF〕,通过〔OTSFB、ACTSFB〕设置EPWMB、〔OTSFA、ACTSFA〕设置EPWMA启动一次强制置位无效、置零、置高、反向,当OTSFB、OTSFA被写1时,动作一次,写0无效,无影子存放器AQCSFRC 〔软件连续强制控制存放器〕可以强制EPWMA、EPWMB的输出为low或high或AQCSFRC不起作用,有影子存放器,当存放期被加载后的第二个时钟开始作用,如TBCLK=0时加载,TBCLK=1时开始起作用说明:CBD为TBCTR〔计数器〕与CMPB在down计数时相等使输出为low或high或反向或不动作CBU为TBCTR〔计数器〕与CMPB在up计数时相等使输出为low或high或反向或不动作CAD为TBCTR〔计数器〕与CMPA在down计数时相等使输出为low或high或反向或不动作CAU为TBCTR〔计数器〕与CMPA在up计数时相等使输出为low或high或反向或不动作PRD为TBCTR〔计数器〕与TBPRD〔周期存放器〕相等时使输出为low或high或反向或不动作ZRO为TBCTR〔计数器〕计到零时使输出为low或high或反向或不动作注意:以上均是相等时起作用,其它时间不管,只有AQCSFRC〔软件连续强制控制存放器〕持续起作用如同时出现比拟如此优先级如图例:CMPA=100,CMPB=100,up计数,EPWMA初始为低,CAU设置高,CBU设置低,当TBCTR计到100时,CAU、CBU同时作用,根据优先级,EPWMA输出低。

当CMPA=100,CMPB=110,其它不变,当TBCTR计到100时,EPWMA输出高,计到110时EPWMA输出低本程序只应用了EPWMA输出通过Dead-band (DB) module产生互补的PWM波形Action-qualifier (AQ) module比拟方式预设模块配置如下:AQCTLA 〔输出A比拟方式控制存放器〕的CAU置高,CAD置低,其它无效在初始化中配置AQCSFRC 〔软件连续强制控制存放器〕通过AQSFRC〔软件强制控制存放器〕的RLDCSF配置为TBCTR〔计数器〕计到零时装载,根据需要每次中断配置CSFA置高、置低或软件连续强制无效其优先级最高,强制时CAU置高,CAD置低不起作用,无效时CAU置高,CAD置低起作用AQSFRC〔软件强制控制存放器〕的ACTSFA配置为置低,当本周期软件连续强制无效时,向OTSFA写1,保证有效高周期的起始是低状态,防止上一周期完毕时为高Dead-band (DB) module死区模块DBCTL〔死区控制存放器〕设置S5,S4,S3,S2,S1,S0开关选择的DBRED〔死区上升沿延时〕上升沿延时时间DBFED〔死区下降沿延时〕下降沿延时时间本程序的设置为S5=0,S4=0,S3=1,S2=0,S1=1,S0=1;延时时间为5us。

EPWMxA= EPWMxA in,EPWMxB为EPWMxA in的反向Event-trigger (ET) module中断事件模块ETSEL〔中断选择存放器〕使能与事件源选择〔SOCA触发ADC转换,SOCB触发ADC转换,中断〕ETPS〔中断预设存放器〕xxxT记录时间发生次数,当与xxxPRD相等时,发出中断信号,xxxT停止计数,当标志为去除时xxxT置零重新计数ETFLG〔中断标志存放器〕状态标志位,中断时为1ETCLR〔中断标志去除存放器〕写1去除相应标志位ETFRC〔强制中断存放器〕写1强制相应中断发生本程序选择SOCA触发ADC转换,TBCTR=0位中断事件源,xxxPRD为1TMS320F28335定时器配置简介写在最前,不喜请略过本博文的主要内容已在空间、人人网、网易博客、百度空间等平台发表过,作者为Mr_D_prince〔斌斌-龙臻〕,也就是本人,前两者均为我在非技术论坛的昵称在技术论坛我更喜欢newofcortexm3这个昵称,原因无他,我就是个技术新人之所以文章类型为什么是整理,是因为博文的主要内容均来自TI相关的技术手册,。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档