关于28335各个模块的理解
更新时间:2023-11-25 07:58:01 阅读量: 教育文库 文档下载
- 关于28377的书推荐度:
- 相关推荐
PWM的使用
// 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 Compare values
EPwm1Regs.CMPA.half.CMPA = EPWM_CMPAB; // Set compare A value
// EPwm1Regs.CMPB = EPWM_CMPAB; // Set Compare 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 Compare 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-compare (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.5ms。
Counter-compare (CC) module为比较器模块有
CMPCTL (比较控制寄存器)设置CMPA、CMPB的重载模式 CMPAHR(高速PWM用),
CMPA(比较值寄存器A)设置EPWMxA的比较值,有影子寄存器。 CMPB(比较值寄存器B)设置EPWMxB的比较值,有影子寄存器。 本程序只应用了CMPA,设置计数器到零时重载CMPA。 Action-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(中断预设寄存器)xxxCNT记录时间发生次数,当与xxxPRD相等时,发出中断信号,xxxCNT停止计数,当标志为清除时xxxCNT置零重新计数
ETFLG(中断标志寄存器)状态标志位,中断时为1 ETCLR(中断标志清除寄存器)写1清除相应标志位 ETFRC(强制中断寄存器)写1强制相应中断发生
本程序选择SOCA触发ADC转换,TBCTR=0位中断事件源,xxxPRD为1。
TMS320F28335定时器配置简介
写在最前,不喜请略过。本博文的主要内容已在QQ空间、人人网、网易博客、百度空间等平台发表过,作者为Mr_D_prince(斌斌-龙臻),也就是本人,前两者均为我在非技术论坛的昵称。在技术论坛我更喜欢newofcortexm3这个昵称,原因无他,我就是个技术新人。之所以文章类型为什么是整理,是因为博文的主要内容均来自TI相关的技术手册,我只是做了下解读或者整理。
TMS320F28335的CPU Time有三个,分别为Timer0,Timer1,Timer2,其中Timer2是为操作系统DSP/BIOS保留的,当未移植操作系统时,可用来做普通的定时器。这三个定时器的中断信号分别为TINT0, TINT1, TINT2,分别对应于中断向量INT1,INT13,INT14。图1为定时器的结构框图,图中TIMH:TIM为计数寄存器,PRDH:PRD为周期寄存器,AH:A的形式表示一个32位的寄存器,是由两个16位的寄存器构成,AH是高16位,A是低16位。
CPU定时器的计数复位时,计数寄存器TIMH:TIM加载周期寄存器PRDH:PRD的值,经历一个计数器时钟时,TIMH:TIM内的值就减1,一直减到0,这时产生定时器周期中断事件,并重新装载PRDH:PRD的值,重新开始计数。置于每隔多少时间,定时器计数器才会减1由预定标寄存器TPRH:TPR来决定。TPRH和TPR这两个寄存器由两部分组成,高8位为定时器预定标计数器PSC,低8位是定时器分频TDDR。也即是说,TPRH是由PSCH和TDDRH构成,而TDDR由PSC和TDDR构成。且其工作的原理与定时器计数器类似,复位时,PSCH:PSC加载TDDRH:TDDR的值,然后经过一个CPU时钟,PSCH:PSC的值减1,当PSCH:PSC的值减到0时,会再次装载TDDRH:TDDR的值,并且产生一个计数器时钟,TIMH:TIM减1。
正在阅读:
关于28335各个模块的理解11-25
如何布置各形式会议场地05-17
小兔过生日作文500字06-21
货币时间价值在企业中的应用11-26
亳州市大寺高级职业中学计算机教学培训计划09-27
了不起的爸爸作文500字06-25
职业生涯人物访谈(教师)01-18
Nqscqa财务分析习题四06-25
外国新闻事业史笔记(已整理)10-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 模块
- 各个
- 理解
- 关于
- 28335