C6455初始化(2)

2019-04-08 22:08

可以使用指定的传输任务完成来触发新的EDMA通道提交传输请求 3:手动触发或CPU触发

通过修改事件设置寄存器,使用CPU手动触发一个传输请求。 初始化QDMA传输主要有2种方式: 1:自动触发传输请求

在QCHMAPn中写入对应的触发字 2:链接触发传输请求

当链接发生的时候写入触发字触发传输 常用寄存器描述:

DCHMAPn:设置信道与PaRAM Set的对应关系,如DCHMAP48赋值为0x00000020指代

的就是将信道48与PaRAM Set 1对应

EESR,EESRH:事件使能设置寄存器组,指代的是0-63事件 IESR;中断使能设置寄存器,用于设置是否使能中断

DMAQNUMn:事件队列寄存器,用于设置事件/信道与传输队列(queue)之间的关系 EMCR,EMCRH:事件丢失清除寄存器,有事件在传输的过程中被侦测到丢失,将在EMR,

EMRH寄存器中对应位设置为1,不能自动清除掉,必须在寄存器EMCR,EMCRH设置清除

ICR,ICRH:中断清除寄存器,在传输的过程中被侦测到发生中断,将在IPR,IPRH寄存

器中对应位设置为1,不能自动清除掉,必须在寄存器ICR,ICRH设置清除

结合例子说明EDMA寄存器的基本设置: 1:EDMA3CC_DCHMAP48 = 0x00000020;

功能:这里写入DCHMAP48中的PAENTRY位置为1,指代的是将PaRAM Set 1映射到48信道/事件,这里的事件与信道是一一对应的,但是PaRAM与信道是可编程的。 注:信道48指代的是GPIO 事件0,实际中需要根据上面的设置来确定。 2:EDMA3CC_EESRH = 0x00010000; 功能:使能信道/事件48。

3:EDMA3CC_IESR = 0x00000003; 功能:使能TCC0和TCC1中断。

4:EDMA3CC_DMAQNUM6 = 0x00000000;

功能:在DMAQNUM6寄存器中设置事件48放置在队列(queue0)中。 5:pEDMA3CC_PaRAM = EDMA3CC_PaRAM1;

功能:设置了pEDMA3CC_PaRAM为一个指向结构体的指针,用于设置PaRAM参数。 6:pEDMA3CC_PaRAM->OPT = 0x00100004;

功能:设置OPT参数,传输完成时产生中断,实行AB同步。 7:pEDMA3CC_PaRAM->SRC = EMIFA_CE4_BASE_ADDR; 功能:设置数据源地址。

8:pEDMA3CC_PaRAM->BCNT_ACNT = 0x00800008;

功能:设置BCNT和ACNT大小,这里BCNT为128,ACNT为8,单位byte。 9:pEDMA3CC_PaRAM->DST = FPGA_DATA_PING; 功能:设置目标地址。

10:pEDMA3CC_PaRAM->DSTBIDX_SRCBIDX = 0x00080008;

功能:设置DSTBIDX和SRCBIDX,用于源区域取数据和目标区域放数据时候数据存放形式时使用。

11:pEDMA3CC_PaRAM->BCNTRLD_LINK = 0x00804060;

功能:当一个传输完成的时候自动链接下一个PaRAM地址。 12:pEDMA3CC_PaRAM->DSTCIDX_SRCCIDX = 0x0;

功能:设置DSTCIDX和SRCCIDX,用于源区域取数据和目标区域放数据时候数据存放形式时使用。由于CCNT为1,所以没有CCNT数据块之间的变化,无论源还是目标区域,这里设置为0;

13:pEDMA3CC_PaRAM->RSVD_CCNT = 0x00000001;

功能:设置CCNT大小,这里仅有一个块,设置CCNT为1。

附2:PLL功能描述及设置

PLL用于6455芯片产生内部工作或外设相应的时钟,PLL包含有可配置的倍频和分频控制器,PLL控制器提供灵活的倍频器和分频器用于调整输入的时钟,调整后的时钟将被送入DSP核,外设和DSP的其他模块。

PLL控制器包含一个输入和多个输出时钟。 CLKIN:外部晶振输入时钟

AUXCLK:直接从CLKIN引入的信号时钟

SYSCLK1 to SYSCLK16:系统域时钟,每一个包含自己的分频器

PLL工作于旁路模式bypass mode和PLL 模式PLL mode,工作模式决定与寄存器PLLCTL中的PLL enable bit和PLLENSRC bit,6455默认的工作模式是旁路模式bypass mode。 旁路模式指的是外部输入的时钟不经过倍频和分频器的处理,直接进入各个子系统时钟域进行处理,PLL模式指的是外部输入的时钟要经过倍频和分频器的处理,完成后的时钟进入各个子系统时钟域进行再处理。 寄存器及相应bit位说明:

1:PLLCTL:PLL控制寄存器,用于设置工作模式

PLLENSRC:PLL源使能比特,置0表示使能PLLEN 比特位,这时设置PLLEN才有效,

置1时直接选择外部时钟源为输入,即旁路模式,此时设置PLLEN没有效果。

PLLRST: PLL复位比特,该比特在初始化设置的时候使用。

PLLEN: PLL使能比特,该比特设置选用旁路模式还是PLL模式,该模式设置的前提

是PLLENSRC比特位必须为0,否则设置不起作用。

2:PLLM:倍频控制寄存器,用于设置倍频系数

PLLM: 5-0比特位设置倍频系数,最大可以设置64倍。 3:PREDIV:预分频控制寄存器,用于倍频后的分频

PREDEN: 预分频使能比特,如果系统工作在PLL模式下,不管是否分频,该位必须设

置为1,否则没有时钟输出。

RATIO: 预分频系数比特,控制分频比例,最大可设置32分频。 4:PLLDIVn:各个子系统分频控制寄存器,n为1-16。

DnEN: 第n个子系统分频器使能,如果要使用该子系统时钟输出,不管是否分频,

该比必须设置为1.

RATIO: 子系统分频系数比特,控制分频比例,最大可设置32分频。 5:PLLCMD:PLL控制器指令寄存器,用于初始GO OPERATION操作

GOSET: 设置为1表示开始初始化GO OPERATION操作,设置为0没有效果。 6:ALNCTL:PLL对齐控制寄存器,

ALNn: 比特位0-15指代的是1-16个子系统域是否对齐,设置为0表示在GO

OPERATION操作期间该子系统时钟与其他系统时钟不必对齐,设置为1表

示在GO OPERATION操作期间该子系统时钟与其他系统时钟对齐。

7:DCHANGE:子系统时钟状态改变寄存器,用于指示是否在GO OPERATION期间改变

子系统时钟频率。

SYSn: 设置为1表示在GO OPERATION期间子系统时钟将变为由分频器寄存器

更改以后的时钟,设置为0表示不更改,在结束的时候才更改。

8:CKEN:AUXCLK使能标志寄存器,用于控制是否使能AUXCLK。 AUXEN:设置0不使能,设置为1使能。

以上是所需要设置的寄存器,下面的是状态寄存器:

9:PLLSTAT:GO OPERATION操作状态寄存器,标识GO OPERATION操作是否在进行。 10:CKSTAT:标识AUXCLK时钟是否开启。 11:SYSTAT:标识个子系统时钟是否开启。

初始化过程:

PLL和PLL控制器在重置以后可由程序初始化,PLL控制寄存器仅仅有CPU或仿真设置, 其他主机如HPI或PCI不能设置PLL控制寄存器,并且初始化应该在程序运行的开始,在设置其他外设之前设置。 一,PLL模式下的初始化: 1:关闭中断寄存器CSR。

2:PLLCTL第5位置0,使能PLLEN。 3:设置为旁路模式。

4:执行空语句,根据要求等待4个最慢周期。 5:写入PLLRST = 1。 6:执行输入倍频频率。

7:设置使能,同时设定预分频比例。

8:执行GO OPERATION是否完成的判断。 9:设置个子系统输出使能及设定分频比例。 10:开启GO OPERATION 状态。 11: 检测GO OPERATION状态是否完成,即,检测赋值过程是否完成,因为GO OPERATION是赋值过程的标识。

12:空操作,等待PLL正确重置,128周期。 13:最后使能PLL mode。 14:使能中断寄存器CSR。 二,旁路模式下的初始化: 1:关闭中断寄存器CSR。

2:PLLCTL第5位置0,使能PLLEN。 3:设置为旁路模式。

4:执行空语句,根据要求等待4个最慢周期。 5:写入PLLRST = 1。

6:设置个子系统输出使能及设定分频比例。 7:开启GO OPERATION 状态。 8: 检测GO OPERATION状态是否完成,即,检测赋值过程是否完成,因为GO OPERATION是赋值过程的标识。

9:空操作,等待PLL正确重置,128周期。 10:最后使能PLL mode。

11:使能中断寄存器CSR。

注:旁路模式下的初始化与PLL模式的初始化区别在于旁路模式无需设置倍频及预分频。


C6455初始化(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:沥青砼面层摊铺抗离析QC小组[1]

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: