C6455初始化.doc_第1页
C6455初始化.doc_第2页
C6455初始化.doc_第3页
C6455初始化.doc_第4页
C6455初始化.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6455初始化流程(DSP_FFT)第一步:首先设置PLL控制寄存器参考文档:SPRUE56,见附录2针对本例的设置如下,其他应用可参考。PLLM_val = 20; 扩频20倍。PREDIV_val =1; 预分频设置为1,不预分频。PLLDIV4_val = 8; 设置输出4为8分频;PLLDIV5_val = 4; 设置输出5为4分频;以下是PLL初始化过程:1:CSR &=(0x1);功能:关闭中断。2:PLLCTL_1 &= (0x00000020); 功能:PLLCTL第5位置0,使能PLLEN。3:PLLCTL_1 &= (0x00000001);功能:设置为旁路模式。4:for (i=0 ; i100 ; i+);功能:执行空语句,根据要求等待4个最慢周期。5:PLLCTL_1 |= 0x00000008;功能:写入PLLRST = 1。6:PLLM_1 = PLLM_val - 1;功能:执行输入频率20倍频,在寄存器中的19代表20倍频,因此要减一。7:PREDIV_1 = (PREDIV_val - 1) | 0x8000;功能:设置使能,同时设定预分频比例。8:while( (PLLSTAT_1) & 0x00000001);功能:执行GO OPERATION是否完成的判断。9:PLLDIV4_1 = (PLLDIV4_val - 1) | 0x8000;功能:设置输出4使能及设定分频比例。10:PLLDIV5_1 = (PLLDIV5_val - 1) | 0x8000;功能:设置输出5使能及设定分频比例。11:PLLCMD_1 |= 0x00000001;功能:开启GO OPERATION 状态。12:while( (PLLSTAT_1) & 0x00000001);功能:检测GO OPERATION状态是否完成,即,检测赋值过程是否完成,因为GO OPERATION是赋值过程的标识。13:for (i=0 ; iOPT = 0x00100004;功能:设置OPT参数,传输完成时产生中断,实行AB同步。31:pEDMA3CC_PaRAM-SRC = EMIFA_CE4_BASE_ADDR;功能:设置数据源地址。32:pEDMA3CC_PaRAM-BCNT_ACNT = 0x00800008;功能:设置BCNT和ACNT大小,这里BCNT为128,ACNT为8,单位byte。33:pEDMA3CC_PaRAM-DST = FPGA_DATA_PING;功能:设置目标地址。34:pEDMA3CC_PaRAM-DSTBIDX_SRCBIDX = 0x00080008;功能:设置DSTBIDX和SRCBIDX,用于源区域取数据和目标区域放数据时候数据存放形式时使用。35:pEDMA3CC_PaRAM-BCNTRLD_LINK = 0x00804060;功能:当一个传输完成的时候自动链接下一个PaRAM地址。36:pEDMA3CC_PaRAM-DSTCIDX_SRCCIDX = 0x0;功能:设置DSTCIDX和SRCCIDX,用于源区域取数据和目标区域放数据时候数据存放形式时使用。由于CCNT为1,所以没有CCNT数据块之间的变化,无论源还是目标区域,这里设置为0;37:pEDMA3CC_PaRAM-RSVD_CCNT = 0x00000001;功能:设置CCNT大小,这里仅有一个块,设置CCNT为1。以下部分是实现连续数据传输时的设置。pEDMA3CC_PaRAM = EDMA3CC_PaRAM2;pEDMA3CC_PaRAM-OPT = 0x00100004; /TCINTEN=1;TCC=0;SYNCDIM=1;pEDMA3CC_PaRAM-SRC = EMIFA_CE4_BASE_ADDR;pEDMA3CC_PaRAM-BCNT_ACNT = 0x00800008; /ACNT=8;BCNT=128;pEDMA3CC_PaRAM-DST = FPGA_DATA_PING;pEDMA3CC_PaRAM-DSTBIDX_SRCBIDX = 0x00080008; pEDMA3CC_PaRAM-BCNTRLD_LINK = 0x00804060; /LINK=4060, PaRMA SET 3pEDMA3CC_PaRAM-DSTCIDX_SRCCIDX = 0x0;pEDMA3CC_PaRAM-RSVD_CCNT = 0x00000001;pEDMA3CC_PaRAM = EDMA3CC_PaRAM3;pEDMA3CC_PaRAM-OPT = 0x00101004; /TCINTEN=1;TCC=1;SYNCDIM=1;pEDMA3CC_PaRAM-SRC = EMIFA_CE4_BASE_ADDR;pEDMA3CC_PaRAM-BCNT_ACNT = 0x00800008; /ACNT=8;BCNT=128;pEDMA3CC_PaRAM-DST = FPGA_DATA_PONG;pEDMA3CC_PaRAM-DSTBIDX_SRCBIDX = 0x00080008; pEDMA3CC_PaRAM-BCNTRLD_LINK = 0x00804040; /LINK=4040, PaRMA SET 2pEDMA3CC_PaRAM-DSTCIDX_SRCCIDX = 0x0;pEDMA3CC_PaRAM-RSVD_CCNT = 0x00000001;注:于前面的不同仅仅在于目标地址及链接参数的设置。38:EDMA3CC_EMCR = 0xFFFFFFFF;EDMA3CC_EMCRH = 0xFFFFFFFF;EDMA3CC_ICR = 0xFFFFFFFF;EDMA3CC_ICRH = 0xFFFFFFFF;功能:对两组标识寄存器组进行清理。39:CSR|= 0x1;功能:初始化设置完成,开启中断。附1:EDMA数据传输增强型存储器访问EDMA控制器是6455DSP中的一个高效数据传输引擎,其结构适合高速的数据传输。其由传输控制器和通道控制器组成,其中通道控制器是EDMA中用户可编程的部分,支持一系列的复杂传输。EDMA控制器由事件和中断处理寄存器,事件队列编码器,参数RAM等构成,一个事件相当于一个同步信号,由它触发一个EDMA通道以便开始数据的传输。EDMA同步传输类型:A同步和AB同步,这两种同步的主要区别在于计算SRCCIDX/DSTCIDX及SRCBIDX/DSTBIDX值的计算。参数体PaRAM的说明EDMA通道控制器基于RAM结构,其通道有一个参数表来配置,包含源/目标地址,计数器,索引等,每一个包含8个字,其配置可实现灵活的乒乓操作,自动重装等。在PaRAM中有3个重要的参数ACNT,BCNT,CCNT,说明如下:ACNT: The 1st dimension in a transfer consists of ACNT contiguous bytes.BCNT: The 2nd dimension in a transfer consists of BCNT arrays of ACNT bytes.Each array transfer in the 2nd dimension is separated from each other by an index programmed using SRCBIDX or DSTBIDX.CCNT: The 3rd dimension in a transfer consists of CCNT frames of BCNT arrays of ACNT bytes. Each transfer in the 3rd dimension is separated from the previous by an index programmed using SRCCIDX or DSTCIDX.Figure 2-4. Definition of ACNT, BCNT, and CCNT换言之,这三个参数可以认为是组成数据块的长宽高,但要注意在实际应用过成中的处理。如上面的框图中假设数据是连续的每一个ACNT为2byte,BCNT为10,CCNT为10的时候,也可以这样处理,将ACNT设定为20,BCNT设定为10,CCNT设定为1也是可以的,所以在设定3个参数的时候应根据实际需要设置。下面是通道参数的具体描述:1:OPT通道选通参数PRIV:特权级别,分为管理员级(1)和用户级(0)。PRIVID:在PaRAM中设定的外设特权等级。ITCCHEN:中间链传输完成使能TCCHEN:全部链传输使能ITCINTEN:中间传输完成中断使能,触发中断TCINTEN:传输全部完成中断使能,触发中断TCC:传输完成代码,用来链接事件传输和产生中断TCCMODE:传输完成代码模式,指示了在什么时候认为传输已经完成,用来链接事件传输和产生中断FWID:FIFO宽度STATIC:静态设置,用于TR提交以后PaRAM Set是否更新或者链接到新的PaRAM SetDAM:目标地址模式,地址增量模式(0)或常数地址模式(1)SAM:源地址模式,地址增量模式(0)或常数地址模式(1)SRC:信道数据源地址ACNT,BCNT,CCNT:无符号的源数据参数,标识数据的结构和大小DST:信道数据目标地址SRCBIDX,DSTBIDX,SRCCIDX,DSTCIDX:指代的是BCNT和CCNT源及目标地址之间的间隔BCNTRLD:A同步模式下当BCNT减到0以后自动重装BCNT次数LINK:一个PaRAM Set传输以后自动链接到的下一个PaRAM Set下面举例说明重要参数ACNT,BCNT,CCNT和SRCBIDX,DSTBIDX,SRCCIDX,DSTCIDX的设置,传输数据如下:其中每一个小方格代表的是2个byteTI文档举例上使用的ACNT代表一行,BCNT代表多少列,由此可见ACNT=16*2=20H,BCNT=12=CH,这样就可以全部表示要传输的数据,所以CCNT只要设置为1即可,起始地址A0000788h,目标地址00800000h,在本例中不用重新转载数据,所以BCNTRLD设置为0,由于只有一个数据块CCNT,所以不存在各个CCNT之间的间隔举例,所以SRCBIDX,SRCCIDX设置为0,只有一个传输块,所以当本传输块传完的时候,应该链接到NULL区,即FFFFh,表示一个空的PaRAM Set,传输结束。由于采用了AB同步的传输,BCNT之间的间隔表示为第一个BCNT的第一个byte与第二个BCNT的第二个byte之间的距离,在源数据区这个距离是640*2,即1280个byte,所以SRCBIDX500h,在目标区域,数据连续存放,故目标区域的间隔距离为16*2,即32个byte,所以DSTBIDX20h,至此数据设置完成,如下图所示:初始化DMA传输主要有3种方式:1:事件触发 通过外部设备,系统或者外部产生的事件来触发传输请求TR2:连锁触发 可以使用指定的传输任务完成来触发新的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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论