求助关于28335中文资料EPWMxSYNCO同步输出配置的问题

28335中ADC_DMA通道配置问题求助-电子产品世界论坛
28335中ADC_DMA通道配置问题求助
在关于DMA通道配置其中一个例程为:(注释自己加的,不知道对不,问题也在其中了)
DMACH1BurstConfig(15,1,10); &//每次burst传送的word个数为15,每次burst后源地址偏移1,目标地址偏移10
DMACH1TransferConfig(9,-15,(-150 + 1)); //一次传送中burst次数为9,后面两个怎么解释?为什么这样设置?
DMACH1WrapConfig(100,100,100,100); &//这个不是设置返回地址相关的额吗?为什么都设置为100?
后来又看了一个历程设置为:
DMACH1BurstConfig(3,1,10); //每次burst传送word个数为3,每次burst后源地址偏移1,目标地址偏移10
DMACH1TransferConfig(9,1,0);//一次传送中burst次数为9,完成一次burst后源地址偏移量(和上面的1有什么区别?),最后目标地址偏移为什么是0?
DMACH1WrapConfig(1,0,0,1); //为什么这次是这样设置返回地址的值?有什么限制吗?
拜托各位牛人帮忙了,小弟看了一天的DMA部分手册,实在是看不懂了。。。
关键词:&&&&&&&&
看这个三个函数的定义写了哪些位,然后对照器件手册中特定位含义的说明,就明白了函数的参数代表什么了:每个参数有注释的:
DMACH1BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep)
&&&&&&&& EALLOW;
&&&&&&&& // Set up BURST registers:
&&&&&&&& DmaRegs.CH1.BURST_SIZE.all =&&&&&&& &&&&&&&&&&&&&&& // Number of words(X-1)
x-ferred in a burst
&&&&&&&& DmaRegs.CH1.SRC_BURST_STEP =&&&&&&&&&&&&&&&&&&&&&&&&&& &&& // Increment source addr between each word
&&&&&&&& DmaRegs.CH1.DST_BURST_STEP =
&&&&&&&&&&&&& // Increment dest
addr between each word x-ferred
&&&&&&&& EDIS;
DMACH1WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16
&&&&&&&& EALLOW;
&&&&&&&& // Set up WRAP registers:
&&&&&&&& DmaRegs.CH1.SRC_WRAP_SIZE =&&&&&&&&&&&&&&&&&&&&&&&&&&&& // Wrap source
address after N bursts
&&& &&DmaRegs.CH1.SRC_WRAP_STEP
=&&&&&&&&&&&&&&&&&&&&&&&&&& &&& // Step for source wrap
&&&&&&&& DmaRegs.CH1.DST_WRAP_SIZE =&&&&&&&&&&&&&&&&&&&&&&&&&&&& // Wrap destination
address after N bursts
&&&&&&&& DmaRegs.CH1.DST_WRAP_STEP =&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& // Step for
destination wrap
&&&&&&&& EDIS;
DMACH1TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
&&&&&&&& EALLOW;
&&&&&&&& // Set up TRANSFER registers:
&&&&&&&& DmaRegs.CH1.TRANSFER_SIZE =& // Number of bursts per transfer, DMA
interrupt will occur after completed transfer
&&&&&&&& DmaRegs.CH1.SRC_TRANSFER_STEP =
&&&&&&&&&&&&&&&&&&&&& //
TRANSFER_STEP is ignored when WRAP occurs
&&&&&&&& DmaRegs.CH1.DST_TRANSFER_STEP =
&&&&&&&&&&&&&&&&&&&& //
TRANSFER_STEP is ignored when WRAP occurs
&&&&&&&& EDIS;
但是DMACH1TransferConfig(9,-15,(-150 + 1)); //一次传送中burst次数为9,后面两个怎么解释?为什么这样设置?
这个里面为负数的两个参数,代表指针增加/减小的步长,器件手册上用的十六进制有符号,例如0xF0000表示将地址减小4096.这里用负数赋值更容易理解
注释还是理解不好。。。这个貌似就是《TMS320F2833x DSP应用开发与实践》给的的例程。
1、就是说DMACH1TransferConfig(9,1,0); //一次传送中burst次数不是9而是10了对吗?后面的1指的是两次brust之间源地址的偏移量,但是最后一个目标地址偏移为什么设置为0?还是不太懂。。。
2、DMACH1WrapConfig(1,0,0,1);//这个还是不明白。按照程序中的数值关系,Wrap source address 为1,但是后面的Wrap destination address成0了,这样的目的是什么?
3、DMACH1WrapConfig子函数中的数值是根据什么定出来的呢?
void DMACH1BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep)
Bsize: 每一个脉冲传递的字的个数,实际脉冲数为bsize+1
Srcbstep:每传递一个字后,源地址A增量
Desbstep:每传递一个字后,目的地址A增量
void DMACH1TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
Tsize:每一帧的脉冲个数,脉冲递减到0时(即一帧传递完成,也是DMA传递完成),产生DMA中断。实际帧数为tsize+1
Srctstep:每个脉冲的最后一个字传递结束后,源地址A增量
Deststep:每个脉冲的最后一个字传递结束后,目的地址A增量
void DMACH1WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep)
Srcwsize:当已经传递的脉冲数为srcwsize+1的整数倍时,源地址(B)增加srcwstep(常为0),并装载入源地址A
Deswsize:当已经传递的脉冲数为deswsize+1的整数倍时,目的地址(B)增加deswstep(常为0),并装载入目的地址A
恩,谢谢啦!看了好几个程序的相关设置,不过还是觉得应该是DMACH1WrapConfig(1,0,1,0);合适点。另外今天明白了DMACH1WrapConfig(100,100,100,100);这样设置相当于不用Wrap功能了。DMACH1TransferConfig(9,1,0)中的transfer_size的大小是和burst_size相配合设定出来的。
匿名不能发帖!请先 [
Copyright (C) 《电子产品世界》杂志社 版权所有F28335中ePWM模块学习汇报64
上亿文档资料,等你来发现
F28335中ePWM模块学习汇报64
ePWM模块学习汇报; ePWM模块;1.TB(时间基准)模块2.CC(计数器比较)模; ePWM内部链接关系图; ePWM内部各子模块连接图; TB模块;?????TBCTL(控制寄存器)TBSTS(状;
?当TBCTL[PRDLD]=0时,TBPR; ?TBCTL[SYNCOSEL]=;?????????;00EPWMxSYNCI01CTR=zero1
ePWM模块学习汇报 ePWM模块1.TB(时间基准)模块 2.CC(计数器比较)模块 3.AQ(动作限定)模块 4.DB(死区控制)模块 5.PC( PWM斩波)模块 6.TZ(错误控制)模块 7.ET(事件触发)模块 ePWM内部链接关系图 ePWM 内部各子模块连接 图 TB模块? ? ? ? ? TBCTL(控制寄存器) TBSTS(状态寄存器) TBPRD(周期寄存器) TBCTR (计数寄存器) TBPHS(相位寄存器)
? 当TBCTL[PRDLD] = 0时,TBPRD影子寄存器使能。 当读和写TBPRD寄存器,在时基计数器为零时 (TBCTR = 0x0000),影子寄存器TBPRD (shadow)内 容转移到工作寄存器TBPRD (Active),默认TBPRD 影像寄存器处于使能状态。 ? 当TBCTL[PRDLD] = 1时,则进入立即装入模式, 则 读写TBPRD寄存器直接改变工作寄存器。 ? 当果TBCTL[PHSEN] =1时,当检测到输入同步脉冲 EPWMxSYNCI或者向TBCTL[SWFSYNC] 控制位写1产 生一个软件强制同步时,相位寄存器值装入计数寄 存器(TBPHS-&TBCTR). ? 若TBCTL[PHSEN] =0,则不动作。 ? TBCTL[SYNCOSEL]=? ? ? ? ? ? ? ? ?00 EPWMxSYNCI 01 CTR = zero 10 CTR = CMPB 11 EPWMxSYNCO同步输出无效 TBCTL[CM]= 00 上升计数模式 01下降计数模式 10增减计数模式 11 停止计数操作 增计数模式减计数模式增减计数模式 CC模块? CMPCTL (比较控制寄存器) ? CMPA (比较值寄存器A,有影子寄存器) ? CMPB (比较值寄存器B,有影子寄存器) CC计数器比较子模块 ? CMPA,用于设置EPWMxA的比较值,有影 子寄存器。 ? CMPB,用于设置EPWMxB的比较值,有影 子寄存器。 ? 当CMPCTL[SHDWBMODE] = 0时, 影子寄存器 使能则CMPCTL[LOADBMODE]= ? 00 在CTR = Zero ? 01 在CTR = PRD ? 10 在CTR = Zero 或 CTR = PRD ? 11 不动作 ? 影子寄存器CMPB(shadow)内容转移到工作 寄存器CMPB (Active) AQ模块? ? ? ? AQCTLA (输出A比较方式控制寄存器) AQCTLB (输出B比较方式控制寄存器) AQSFRC (软件强制控制寄存器) AQCSFRC (软件连续强制控制寄存器) AQ模块 ? AQCTLB设置EPWMB的比较方式有CBD、CBU、 CAD、CAU、PRD、ZRO,无影子寄存器,立 即装载 ? CBD为TBCTR(计数器)与CMPB在down计 数时相等使输出为不动作(00)或low(01) 或high(10)或反向(11) ? CBU为TBCTR(计数器)与CMPB在up计数时 相等使输出为不动作(00)或low(01)或 high(10)或反向(11) ? CAD为TBCTR(计数器)与CMPA在down计 数时相等使输出为不动作(00)或low(01) 或high(10)或反向(11) ? CAU为TBCTR(计数器)与CMPA在up计数时 相等使输出为不动作(00)或low(01)或high (10)或反向(11) ? PRD为TBCTR(计数器)与TBPRD(周期寄 存器)相等时使输出为不动作(00)或 low(01)或high(10)或反向(11) ? ZRO为TBCTR(计数器)计到零时使输出为 不动作(00)或low(01)或high(10)或反向 (11) ? AQCSFRC (软件连续强制控制寄存器)通 过AQSFRC(软件强制控制寄存器)的 RLDCSF配置为TBCTR(计数器)计到零时装 载AQCSFRC[RLDCSF] = ? 00 在CTR = Zero ? 01 在CTR = PRD ? 10 在CTR = Zero 或 CTR = PRD ? 11 直接进入工作寄存 ? 影子寄存器AQCSFRC(shadow)内容转移到工 作寄存器 AQCSFRC(Active) ? AQSFRC(软件强制控制寄存器)通过 (OTSFB、ACTSFB)设置EPWMB、 (OTSFA、)设置EPWMA启动一次强制 (ACTSFA=00)不动作、(01)置零、(10) 置高、(11)反向,当OTSFB、OTSFA被写1 时,动作一次,写0无效,无影子寄存器
DB模块? DBCTL(死区控制寄存器) ? DBRED(死区上升沿延时) ? DBFED(死区下降沿延时)
? DBCTL[IN_MODE) ? =(00)EPWMxA 该信号源上升沿和下降沿 延时,这种模式是默认模式 ? =(01)EPWMxA 该信号源下降沿延时, EPWMxB 在上升沿延时 ? =(10)EPWMxA 在上升沿延时, EPWMxB 在下降沿延时 ? =(11)EPWMxB 上升沿和下降沿延时 TZ模块? 当外部有错误信号产生时,对PWM输出进 行相应处理,置高,或拉低,或置为高阻 态或不动作,从而起到保护作用。该功能 也可以通过软件强制产生; ET模块? ? ? ? ? ETSEL(中断选择寄存器) ETPS(中断预设寄存器) ETFLG(中断标志寄存器) ETCLR(中断标志清除寄存器) ETCLR ETFRC(强制中断寄存器) 谢谢 包含各类专业文献、高等教育、中学教育、生活休闲娱乐、文学作品欣赏、幼儿教育、小学教育、应用写作文书、行业资料、各类资格考试、F28335中ePWM模块学习汇报64等内容。
 F28335中ePWM模块学习汇... 28页 1下载券 第七章 TMS320F28335的P... 41页 1下载券 EPWM 总结 13页 免费 28335_EPWM产生PWM 19页 1下载券 F28335中ePWM...  28335 ePWM 模块中产生 PWM 的必要配置 1 一个 ...TMS320F280X 系列 DSP 的 EPWM 讨论我们大家知道....EPWM 总结 13页 免费 DSP28335很好的资料 44页 5...  喜欢此文档的还喜欢 F28335中ePWM模块学习汇报 28页 2财富值 第七章 TMS320F28335的PWM... 72页 2财富值搜你所想,读你所爱 拒绝盗版,营造绿色文库
如要...  28335_EPWM产生PWM_计算机软件及应用_IT/计算机_专业资料。28335 ePWM 模块中产生...TMS320F280X 系列 DSP 的 EPWM 讨论我们大家知道. 等系列的 EVA....  除了拥有以上非常卓越的性能外, TMS320F28335 的 EPWM(Enhanced Pulse Width Modulator)模块中的死区(Dead-Band)模块具 有易于配置、可操作性强等突出优点,与 TMS...  DSP实验报告-基于CCSV4的F28335的学习和应用_工学_高等教育_教育专区。西安交通...第四部分 讲述 ePWM 模块的学习和使用,对于电气工程而言,会不可避免地接触和...  自而止到维护做用,J2EE 学习笔记(3) Struts Logic...TMS320F28335的 EPWM 如何软件强制开关状态 在 DSP...在基于改进的 PWM 模块的 C2000 DSP 中,如2833x ...  在 TMS320F28335DSP 中,每一个 EPWM 模块都包括定时器(Time-base)模块、计数...小学五年级英语教学工作总结 大学教师个人工作总结 小学英语教学教研工作总结文档...  DSP28335的普通EPWM的代码--原创_计算机软件及应用_IT/计算机_专业资料。DSP 28335...现在总结起来,还是要仔细读懂 28335 各个 模块的 datasheet,并且出了问题多注...DSP28335的EPWM同步问题-电源网
当前位置:
DSP28335的EPWM同步问题
阅读: 510
楼层直达:
TMS320x2833x, 2823x Enhanced Pulse Width Modulator (ePWM) Module
中使用EPWMxSYNCI: Synchronization Input Pulse 和Time-base synchronization input
output (EPWMxSYNCO) signals
,对应引脚为GPIO6(EPWMxSYNCI/EPWMxSYNCO)还有GPIO32和GPIO33。可以接外部脉冲来同步。另有EPWMxSYNCI
Synchronization Pulse:Writing a 1 to the TBCTL[SWFSYNC] control bit invokes
a software forced synchronization. This pulse is ORed with the synchronization
input signal, and therefore has the same effect as a pulse on
EPWMxSYNCI.nWhen BCLKSYNC = 0, the time-base clock of all ePWM modules is
stopped (default). When TBCLKSYNC = 1,all ePWM time-base clocks are started with
the rising edge of TBCLK aligned.所以就不必外接EPWMxSYNCI/EPWMxSYNCO
脉冲产生电路,直接TBCLKSYNC = 1,就可以同步了。大家如何看这个问题呢?
这个还真的是不知道的
··········
关于电源网
我们的服务
服务时间:周一至周五9:00-18:00
电源网版权
增值电信业务经营许可证:津B2-
网博互动旗下网站:}

我要回帖

更多关于 dsp28335视频教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信