Cx的片上外设实用实用教案

上传人:莉**** 文档编号:78489609 上传时间:2022-04-21 格式:PPT 页数:155 大小:2.90MB
收藏 版权申诉 举报 下载
Cx的片上外设实用实用教案_第1页
第1页 / 共155页
Cx的片上外设实用实用教案_第2页
第2页 / 共155页
Cx的片上外设实用实用教案_第3页
第3页 / 共155页
资源描述:

《Cx的片上外设实用实用教案》由会员分享,可在线阅读,更多相关《Cx的片上外设实用实用教案(155页珍藏版)》请在装配图网上搜索。

1、8.1 时钟(shzhng)发生器n 时钟发生器概况n 时钟工作模式(msh)(msh)n CLKOUT CLKOUT输出n 使用要点第1页/共154页第一页,共155页。8.1.1 时钟(shzhng)发生器概况l 作用:从CLKIN引脚接收输入时钟信号(xnho),将其变换为CPU及其外设所需要的工作时钟。工作时钟经过分频通过引脚CLKOUT输出,可供其他(qt)器件使用时钟发生器内有一个数字锁相环(DPLL)和一个时钟模式寄存器(CLKMD)第2页/共154页第二页,共155页。8.1.2 时钟(shzhng)工作模式l时钟发生器有三种(sn zhn)工作模式:l旁路模式(BYPASS)

2、l锁定模式(LOCK)lIdle模式l时钟模式寄存器(CLKMD)中的PLL ENABLE位控制旁路模式和锁定模式l可以通过关闭CLKGEN Idle模块使时钟发生器工作在Idle模式。第3页/共154页第三页,共155页。1旁路(pn l)模式(BYPASS)l如果PLL ENABLE=0,PLL工作于旁路模式,PLL对输入时钟信号进行分频(fn pn)。l分频(fn pn)值由BYPASS DIV确定:l如果BYPASSDIV=00,输出时钟信号的频率与输入信号的频率相同,即1分频(fn pn)l如果BYPASSDIV=01,输出时钟信号的频率是输入信号的1/2,即2分频(fn pn)l如

3、果BYPASSDIV=1x,输出时钟信号的频率是输入信号的1/4,即4分频(fn pn)第4页/共154页第四页,共155页。2.锁定(su dn)模式(LOCK)l如果PLL ENABLE=1,PLL工作(gngzu)于锁定模式。l输出的时钟频率由下面公式确定:输入频率1DIV PLLMULT PLL输出频率3. Idle模式(msh)l为了降低功耗,可以加载Idle配置,使DSP的时钟发生器进入Idle模式l当时钟发生器处于Idle模式时,输出时钟停止,引脚被拉为高电平。第5页/共154页第五页,共155页。表8-1 时钟(shzhng)模式寄存器CLKMD位字 段说 明15Rsvd保留1

4、4IAI退出Idle状态后,决定PLL是否重新锁定0 PLL将使用与进入Idle状态之前相同的设置进行锁定1 PLL将重新锁定过程13IOB处理失锁0 时钟发生器不中断PLL,PLL继续输出时钟1 时钟发生器切换到旁路模式,重新开始PLL锁相过程12TEST必须保持为0117PLL MULT锁定模式下的PLL倍频值,0318.1.3 时钟时钟(shzhng)模式寄存器模式寄存器CLKMD时钟模式寄存器CLKMD位于IO空间(kngjin),地址为:1c00h第6页/共154页第六页,共155页。表8-1 时钟(shzhng)模式寄存器CLKMD(续)位字 段说 明65PLL DIV锁定模式下的

5、PLL分频值,034PLL ENABLE使能或关闭PLL0 关闭PLL,进入旁路模式1 使能PLL,进入锁定模式32BYPASS DIV旁路下的分频值00 一分频01 二分频10或11 四分频1BREAKLNPLL失锁标志0 PLL已经失锁1 锁定状态或有对CLKMD寄存器的写操作0LOCK锁定模式标志0 时钟发生器处于旁路模式1 时钟发生器处于锁定模式第7页/共154页第七页,共155页。8.1.4 CLKOUT输出(shch)lCPU时钟可以通过(tnggu)一个时钟分频器对外提供CLKOUT信号lCLKOUT的频率由系统寄存器(SYSR)中的CLKDIV确定lSYSR地址:07fdh,

6、CLKDIV位于其最低3位。l当CLKDIV=000b时,CLKOUT的频率等于CPU时钟频率l当CLKDIV=001b时,CLKOUT的频率等于CPU时钟频率的1/2l当CLKDIV=010b时,CLKOUT的频率等于CPU时钟频率的1/3l当CLKDIV=011b时,CLKOUT的频率等于CPU时钟频率的1/4l当CLKDIV=100b时,CLKOUT的频率等于CPU时钟频率的1/5l当CLKDIV=101b时,CLKOUT的频率等于CPU时钟频率的1/6l当CLKDIV=110b时,CLKOUT的频率等于CPU时钟频率的1/7l当CLKDIV=111b时,CLKOUT的频率等于CPU时钟

7、频率的1/8第8页/共154页第八页,共155页。8.1.5 使用(shyng)要点l通过对时钟模式寄存器(CLKMD)的操作,可以根据需要设定时钟发生器的工作模式和输出频率。l在设置过程中除了工作模式、分频值和倍频值以外,还要注意(zh y)其他因素对PLL的影响。 第9页/共154页第九页,共155页。1.省电(Idle)l为了减少功耗,可以使时钟发生器处于省电状态l当时钟发生器退出省电状态时,PLL自动切换到旁路模式,进行跟踪(gnzng)锁定,锁定后返回到锁定模式l时钟模式寄存器与省电有关的位是IAIlIAI =0: PLL将使用与进入Idle状态之前相同的设置进行锁定;l IAI =

8、1:PLL将重新锁定过程第10页/共154页第十页,共155页。2.DSP复位(f wi)l在DSP复位期间和复位之后,PLL工作于旁路模式,输出的时钟频率由CLKMD引脚上的电平确定(qudng)l如果CLKMD引脚为低电平,则输出频率等于输入频率l如果CLKMD引脚为高电平,则输出频率等于输入频率的1/2。 注意(zh y):5509A无CLKMD引脚!第11页/共154页第十一页,共155页。3.失锁l锁相环对输入时钟(shzhng)跟踪锁定之后,可能会由于其他原因使其输出时钟(shzhng)发生偏移,导致失锁。l出现失锁现象后,PLL的动作由时钟(shzhng)模式寄存器中的IOB确定

9、lIOB=0: 时钟(shzhng)发生器不中断PLL,PLL继续输出时钟(shzhng)lIOB=1: 时钟(shzhng)发生器切换到旁路模式,重新开始PLL锁相过程第12页/共154页第十二页,共155页。MHz121DIV PLLMULT PLLMHz144121DIV PLLMULT PLL例8-18-1,TMS320VC5509ATMS320VC5509A系统的晶体振荡器频率为12MHz12MHz。通过设置(shzh)DPLL(shzh)DPLL,使系统时钟时钟频率为144MHz144MHz。(1 1)原理: 使DPLLDPLL工作在锁定模式:D4(PLL ENABLE)=1bD4

10、(PLL ENABLE)=1b。即:取PLL DIV=0,PLL MULT=12,即:D6D5(PLL DIV)=00b,D11D7(PLL MULT)=12=01100b。时钟模式(msh)寄存器(CLKMD)的其它位均取为0。(2)汇编语言实现(shxin): mov #0000 01100 00 1 0000b,port(#1c00h) 或 mov #0610h,port(#1c00h); 1c00h为时钟模式寄存器(CLKMD)的地址。第13页/共154页第十三页,共155页。(3)C语言实现(shxin): ioport unsigned int *clkmd;clkmd=(unsi

11、gned int *)0 x1c00;*clkmd =0 x0610;(4)使用(shyng)csl实现: #include csl_pll.h;PLL_Config Config_PLL=0,/*iai*/0,/*iob*/12, /* pllmult */0 /* div */PLL_config(&Config_PLL);在头文件中进行(jnxng)配置在头文件中需要包含该库文件在C程序(通常在初始化部分)中执行该函数,完成对DPLL的设置也可利用PLL_setFreq (Uint16 mul, Uint16 div)函数直接设置DPLL第14页/共154页第十四页,共155页。8.2

12、通用(tngyng)定时器定时器概况(gikung)工作原理定时器使用要点定时器应用实例第15页/共154页第十五页,共155页。8.2.1 定时器概况(gikung)lC55x 芯片提供了两个20位的定时器l定时器由两部分组成:l预定标计数寄存器(PSC), 4位l主计数器(TIM), 16位l寄存器:l计数寄存器(PSC,TIM)l周期寄存器(TDDR,PRD):在定时器初始化或定时值重新装入过程(guchng)中,将周期寄存器的内容复制到计数寄存器中第16页/共154页第十六页,共155页。定时器结构(jigu)框图第17页/共154页第十七页,共155页。8.2.2 工作(gngzu)

13、原理l定时器的工作时钟lDSP内部的CPU时钟l引脚TIN/TOUTl利用定时器控制寄存器(TCR)中的字段FUNC可以确定(qudng)时钟源和TIN/TOUT引脚的功能l定时器包括4个寄存器l定时器预定标寄存器PRSC,表8-2l主计数寄存器TIM,表8-3l主周期(zhuq)寄存器PRD, 表8-4l定时器控制寄存器TCR,表8-5第18页/共154页第十八页,共155页。 1PRD1TDDRTINT输入时钟频率频率l 定时原理l预定标计数寄存器(PSC)由输入时钟驱动,PSC在每个输入时钟周期减1,当其减到0时,TIM减1,当TIM减到0,定时器向CPU发送一个中断请求(TINT)或向

14、DMA控制器发送同步事件(shjin)l通过设置定时器控制寄存器(TCR)中的自动重装控制位ARB,可使定时器工作于自动重装模式。当TIM减到0,重新将周期寄存器(TDDR,PRD)的内容复制到计数寄存器(PSC,TIM)中,继续定时。l定时器发送中断信号或同步事件(shjin)信号的频率可用下式计算:第19页/共154页第十九页,共155页。表8-2 定时器预定(ydng)标寄存器 PRSC位字 段数 值说 明1510Rsvd保留96PSC0hFh预定标计数寄存器54Rsvd保留30TDDR0hFh当PSC重新装入时,将TDDR的内容复制到PSC中PRSC0地址(dzh)为0 x1003,

15、PRSC1地址(dzh)为0 x2403第20页/共154页第二十页,共155页。表8-3 主计数(j sh)寄存器 TIM位字 段数 值说 明150 TIM0000hFFFFh主计数寄存器表表8-4 主周期主周期(zhuq)寄存器寄存器 PRD位字 段数 值说 明150PRD0000hFFFFh主周期寄存器。当TIM必须重新装入时,将PRD的内容复制到TIM中PRD0地址(dzh)为0 x1001,PRD1地址(dzh)为0 x2401TIM0地址为0 x1000,TIM1地址为0 x2400第21页/共154页第二十一页,共155页。表8-5 定时器控制(kngzh)寄存器 TCR位字 段

16、数 值说 明15IDLEEN01定时器的Idle使能位。定时器不能进入idle状态如果idle状态寄存器中的PERIS=1,定时器进入idle状态14INTEXT01时钟源从内部切换到外部标志位定时器没有准备好使用外部时钟源定时器准备使用外部时钟源13ERRTIM01定时器错误标志没有监测到错误,或ERRTIM已被读取出错1211FUNCFUNC=00bFUNC=01bFUNC=10bFUNC=11b定时器工作模式选择位TIN/TOUT为高阻态,时钟源是内部CPU时钟TIN/TOUT为定时器输出,时钟源是内部CPU时钟TIN/TOUT为通用输出,引脚电平反映的是DATOUT位的值TIN/TOU

17、T为定时器输入,时钟源是外部时钟TCR0地址(dzh)为0 x1002,TCR1地址(dzh)为0 x2402第22页/共154页第二十二页,共155页。表8-5 定时器控制(kngzh)寄存器 TCR(续1)位字 段数 值说 明10TLB01定时器装载位TIM、PSC不重新装载将PRD、TDDR分别复制到TIM、PSC中9SOFT在调试中遇到断点时定时器的处理方法8FREE76PWID00011011定时器输出脉冲的宽度1个CPU时钟周期2个CPU时钟周期4个CPU时钟周期8个CPU时钟周期5ARB01自动重装控制位ARB清0每次TIM减为0,PRD装入TIM中,TDDR装入PSC中第23页

18、/共154页第二十三页,共155页。表8-5 定时器控制(kngzh)寄存器 TCR(续2)位字 段数 值说 明4TSS01定时器停止状态位启动定时器停止定时器3C/P01定时器输出时钟/脉冲模式选择输出脉冲。脉冲宽度由PWID定义,极性由POLAR定义输出时钟。引脚上信号的占空比为50%。2POLAR01时钟输出极性位正极性负极性1DATOUT01当TIN/TOUT作为通用输出引脚,该位控制引脚上的电平低电平高电平0Rsvd0保留第24页/共154页第二十四页,共155页。8.2.3 定时器使用(shyng)要点1.初始化定时器 (1)停止计时(TSS=1),使能定时器自动装载(TLB=1)

19、 (2)将预定标计数器周期(zhuq)数写入TDDR(以输入的时钟周期(zhuq)为基本单位) (3)将主计数器周期(zhuq)数装入PRD (4)关闭定时器自动装载(TLB=0),启动计时(TSS=0)2.停止(tngzh)/启动定时器 利用时钟控制寄存器(TCR)中的TSS位可以停止(TSS=1)或启动定时器(TSS=0)第25页/共154页第二十五页,共155页。3.DSP复位复位(f wi)后定时器寄存器的值后定时器寄存器的值l停止定时(TSS=1)l预定标计数器值为0l主计数器值为FFFFhl定时器不进行自动(zdng)重装(ARB=0)lIDLE指令不能使定时器进入省电模式l仿真时

20、遇到软件断点定时器立即停止工作lTIN/TOUT为高阻态,时钟源是内部时钟(FUNC=00b)第26页/共154页第二十六页,共155页。8.2.4 定时器csl库函数1. TIMER Configuration StructureStructureTIMER_ConfigMembersUint16 tcr, /Timer Control RegisterUint16 prd, /Period RegisterUint16 prsc /Timer Prescaler RegisterExampleTIMER_Config Config1 = 0 x0010, /* tcr */0 xFFFF,

21、 /* prd */0 xF0F0, /* prsc */;第27页/共154页第二十七页,共155页。2. TIMER_close FunctionFunction void TIMER_close(TIMER_Handle hTimer);Arguments hTimer Device HandleExample TIMER_close(hTimer);第28页/共154页第二十八页,共155页。3. TIMER_config FunctionFunctionvoid TIMER_config(TIMER_Handle hTimer,TIMER_Config *Config);Exampl

22、eTIMER_Config MyConfig = 0 x0010, /* tcr */0 xFFFF, /* prd */0 xF0F0 /* prsc */;TIMER_config(hTimer,&MyConfig);第29页/共154页第二十九页,共155页。4. TIMER_getConfig FunctionFunction void TIMER_getConfig(TIMER_Handle hTimer, TIMER_Config *Config);Arguments Config: Pointer to an initialized TIMER configuration str

23、ucturehTimer:Timer Device HandleExample TIMER_Config MyConfig;TIMER_getConfig(hTimer,&MyConfig);第30页/共154页第三十页,共155页。5. TIMER_getEventId FunctionFunction Uint16 TIMER_getEventId(TIMER_Handle hTimer);Return Value IRQ Event ID for the timer deviceExample Uint16 TimerEventId; TimerEventId = TIMER_getEv

24、entId(hTimer); IRQ_enable(TimerEventId);第31页/共154页第三十一页,共155页。6. TIMER_open FunctionFunction TIMER_Handle TIMER_open(int devnum,Uint16 flags);Arguments Devnum:Timer Device Number, TIMER_DEV0, TIMER_DEV1,TIMER_DEV_ANYFlags:Event Flag Number, Logical open or TIMER_OPEN_ RESETExample TIMER_Handle hTime

25、r;.hTimer = TIMER_open(TIMER_DEV0,0);第32页/共154页第三十二页,共155页。7.TIMER_reset FunctionFunction void TIMER_reset(TIMER_Handle hTimer);Description Resets the timer device. Disables and clears the interrupt event and sets the timer registers to default values. If INV (1) is specified, all timer devices are

26、reset.Example TIMER_reset(hTimer);第33页/共154页第三十三页,共155页。8. TIMER_start FunctionFunction void TIMER_start(TIMER_Handle hTimer);Description Starts the timer device running. TSS field =0.Example TIMER_start(hTimer);9. TIMER_stop FunctionFunction void TIMER_stop(TIMER_Handle hTimer);Description Stops th

27、e timer device running. TSS field =1.Example TIMER_stop(hTimer);第34页/共154页第三十四页,共155页。10. TIMER_tintoutCfg Function Function void TIMER_tintoutCfg(TIMER_Handle hTimer,Uint16 idleen, Uint16 func,Uint16 pwid,Uint16 cp,Uint16 polar);Arguments idleen: Timer idle mode; func: Function of the TIN/TOUT pin

28、and the source of the timer module.pwid: TIN/TOUT pulse widthcp: Clock or pulse modepolar: Polarity of the TIN/TOUT pin第35页/共154页第三十五页,共155页。Description Configures the TIN/TOUT pin of the device using the TCR registerExample Timer_tintoutCfg(hTimer,1, /*idleen*/1, /*funct*/0, /*pwid*/0, /*cp*/0 /*po

29、lar*/ );第36页/共154页第三十六页,共155页。 例8-1,在TIN/TOUT引脚上产生一个2MHz的时钟(shzhng),假定DSP的CPU时钟(shzhng)为200MHz。(1)要点:TIN/TOUT引脚配置为定时器输出,FUNC设置为01b使该引脚工作在时钟模式,CP设置为1bTIN/TOUT的极性为默认的0b由于每当计数器减为0时,引脚的电平就会翻转一次。在CPU时钟为200MHz的情况(qngkung)下,要求定时器计数为50设置自动装入(ARB=1),使每次计数器减为0时,计时器自动装入计数值,并重新开始计数置FREE bit 为1,使计时器在遇到仿真断点时能继续工作

30、将IDLEEN bit清0,使计时器即便在外设时钟模块处于idle状态下仍然工作第37页/共154页第三十七页,共155页。;*;定时器寄存器地址;*TIM0 .set 0 x1000 ;TIMER0计数寄存器PRD0 .set 0 x1001 ;TIMER0周期寄存器TCR0 .set 0 x1002 ;TIMER0控制(kngzh)寄存器PRSC0 .set 0 x1003 ;TIMER0预定标寄存器;*;定时器配置;*TIMER_PERIOD .set 9 ;定时器的周期为10TIMER_PRESCALE .set 4 ;预定标值为5.textINIT:mov #TIMER_PERIOD

31、,port(#PRD0) ;配置定时器周期寄存器mov #TIMER_PRESCALE,port(#PRSC0);配置定时器预定标寄存器(2)汇编语言(hu bin y yn)代码:第38页/共154页第三十八页,共155页。;0ERR_TIM 1=如果非法功能改变发生;01 FUNC 01=TIN/TOUT引脚是定时器输出;1TLB 1=从周期寄存器装入;0SOFT n/a;1FREE 1=仿真暂停(zn tn)时,计数器不停;00 PWID n/a;1 ARB 1=使能自动重装入;1 TSS 1=停止定时器;1 CP 0=脉冲模式,1=时钟(触发)模式;0 POLAR 0=正则极性;0 D

32、ATOUT n/a;0 Rsvdand #1111101111101111b ,port(#TCR0);0 TLB 0=停止从周期寄存器装入;0 TSS 0=启动计时器mov #0000110100111000b,port(#TCR0);0IDLEEN 0=不和外设一起(yq) idle;0INTEST n/a第39页/共154页第三十九页,共155页。(3)C语言代码(di m)(调用csl)#include csl_timer.h;TIMER_Handle hTimer;TIMER_Config Config_TIMER=0 x0d38,/TCR/*IDLE_EN=0,FUNC=01b,T

33、LB=1,FREE=1,PWID=00b,ARB=1,TSS=1,C/P=1,POLAR=0,其它(qt)为0.*/0 x09,/*prd*/0 x04 /*prsc */TIMER_config(hTimer,&Config_TIMER)在头文件中定义(dngy)句柄在头文件中包含csl_timer.h文件打开定时器0在头文件中配置结构体hTimer = TIMER_open(TIMER_DEV0,0);TIMER_start(hTimer);TIMER_stop(hTimer);初始化定时器0打开定时器0关闭定时器0第40页/共154页第四十页,共155页。8.3 通用(tngyng)I/

34、O口(GPIO)l通用输入输出引脚GPIO特点l每个引脚的方向可以由I/O方向寄存器IODIR独立配置l引脚上的输入/输出状态(zhungti)由I/O数据寄存器IODATA反映或设置lTMS320VC5509A PGE有7个GPIO引脚8.3.1 GPIO概况概况(gikung)第41页/共154页第四十一页,共155页。GPIO数据(shj)寄存器IODATA(地址:0 x3401)位字 段数 值说 明158Rsvd保留70IOxDIR01IOx方向控制位IOx配置为输入IOx配置为输出GPIO方向(fngxing)寄存器IODIR(地址:0 x3400)位字 段数 值说 明158Rsvd

35、保留70IOxD01IOx逻辑状态位IOx引脚上的信号为低电平IOx引脚上的信号为高电平8.3.2 GPIO寄存器寄存器第42页/共154页第四十二页,共155页。8.3.3 GPIO引脚与上电引导引脚与上电引导(yndo)模式模式GPIO0GPIO1GPIO2GPIO3说明0100来自于Mcbsp0的串行EEPROM引导方式(24bit地址)0010USB接口引导方式0101EHPI(多元引导)方式0011EHPI(非多元引导)方式1000来自于外部16bit异步内存的引导方式1100来自于Mcbsp0的串行EEPROM引导方式(16bit地址)1110并行并行EMIF引导方式(引导方式(1

36、6bit异步内存)异步内存)1011来自Mcbsp0同步串行引导方式(16bit数据)1111来自Mcbsp0同步串行引导方式(8bit数据)第43页/共154页第四十三页,共155页。8.3.4 GPIO的的csl库库 GPIO_ConfigStructure GPIO_ConfigMembers Uint16 ioen: Pin Enable Register IOEN Uint16 iodir: Pin Direction Register IODIR使用(shyng)时需包含csl_gpio.h文件。第44页/共154页第四十四页,共155页。2. GPIO_close Functio

37、nFunction void GPIO_close(GPIO_Handle hGpio);ArgumentshGpio:GPIO pin Handle DescriptionFrees GPIO pins previously reserved in call to GPIO_open().Example GPIO_close(hGpio);第45页/共154页第四十五页,共155页。3. GPIO_open Function Function GPIO_Handle GPIO_open(Uint32 allocMask, Uint32 flags);Arguments allocMask:G

38、PIO pins to reserve. For list of pins, please see GPIO_pinDirection().Flags:Open flags, currently non defined.Return Value GPIO_Handle:Device handleExample GPIO_Handle hGPIO;hGPio = GPIO_open(GPIO_PGPIO_PIN1,0);第46页/共154页第四十六页,共155页。4.GPIO_config Function Function void GPIO_config(GPIO_Handle hGpio,

39、GPIO_Config cfg);Arguments hGpio:GPIO Device handlecfg:Pointer to an initialized configuration structureExample GPIO_Handle hGpio;GPIO_Config myConfig = GPIO_PIN1_OUTPUT |GPIO_PIN3_OUTPUT第47页/共154页第四十七页,共155页。5. GPIO_pinDirectionFunctionvoid GPIO_pinDirection(Uint32 pinMask,Uint16 direction);Argumen

40、ts pinMask: GPIO pins affected by directionDirection: Mask used to set pin direction for pins selected in pinMaskDescription Sets the direction for oneor more General purpose I/O pins (input or output)Example /* sets the pin pgpio1 as an input */GPIO_handle hGpio = GPIO_open(GPIO_PGPIO_PIN1|GPIO_PGP

41、IO_PIN15);GPIO_pinDirection(hGPio, GPIO_PGPIO_PIN1, GPIO_PGPIO_PIN1_INPUT);第48页/共154页第四十八页,共155页。6. GPIO_pinDisable Function Function:void GPIO_pinDisable(Uint32 pinId);Arguments pinID: IDs of the pins to disable.Description Disables one or more pins as GPIO pins.Example /* disables pin pgpio1 as a

42、GPIO pin */GPIO_pinDisable (hGpio,GPIO_PGPIO_PIN1);/* disables parallel pin IO1 as GPIO */第49页/共154页第四十九页,共155页。7. GPIO_pinEnable Function Functionvoid GPIO_pinEnable(Uint32 pinId)Description Enables a pin as a general purpose I/O pin.Example GPIO_pinEnable (GPIO_GPIO_PIN1);/* enables pin IO1 as GPI

43、O */第50页/共154页第五十页,共155页。8. GPIO_pinRead FunctionFunctionint GPIO_pinRead(Uint32 pinId)Return Value Value Value read in GPIO pin (1 or 0)DescriptionReads the value in a general purpose input pin.Example int val;val = GPIO_pinRead (GPIO_GPIO_PIN1);/* reads IO1 pin value */第51页/共154页第五十一页,共155页。9. GPI

44、O_pinWrite FunctionFunction:void GPIO_pinWrite(Uint32 pinMask Uint16 val)Arguments pinMask:ID of one or more GPIO pins to write. Please see GPIO_pinDirection for a list of valid pin IDs.Val:Value (0 or 1) to write to selected GPIO pins.Description Writes a value to a general purpose output pin.Examp

45、le /* writes 1 to IO pin0 and IO pin 5 */GPIO_pinWrite (GPIO_GPIO_PIN0 | GPIO_GPIO_PIN5, 1);第52页/共154页第五十二页,共155页。10. GPIO_pinReset FunctionFunction void GPIO_pinReset(GPIO_Handle hGpio, Uint32 pinMask)Arguments hGpio:GPIO Handle returned from previous call to GPIO_open().pinMask:ID of one or more G

46、PIO pins to write. Please see GPIO_pinDirection for list of valid pin IDs.Description Restores selected GPIO pins to default value of 0.Example /* writes 1 to IO pin1 and IO pin 3 */GPIO_pinReset (hGpio, GPIO_GPIO_PIN1 | GPIO_GPIO_PIN3);第53页/共154页第五十三页,共155页。8.4 外部(wib)存储器接口(EMIF)EMIF介绍EMIF请求(qngqi)

47、的优先级对存储器的考虑程序和数据访问 EMIF中的控制寄存器 使用csl配置EMIF 第54页/共154页第五十四页,共155页。8.4.1 EMIF介绍(jisho)EMIF控制DSP和外部(wib)存储器之间的所有数据传输32位外部存储器接口所有外部接口共享异步接口SBSRAM接口总线保持接口SDRAM接口SBSRAM和SDRAM的时钟DMA控制器外设总线控制器CPU数据总线CPU程序总线和缓存SDWESDCASSDRASHOLDAHOLDSSWESSOESSADSAREAWEAOEARDY0 : 3BE0:3CE0:21A0:D31CLKMEMSDA10第55页/共154页第五十五页,共

48、155页。1. EMIF支持(zhch)的存储器类型lEMIF为三种类型的存储器提供了无缝接口:l异步存储器,包括ROM、FLASH以及异步SRAMl同步突发SRAM(SBSRAM),可以工作在1倍或1/2倍CPU时钟频率l同步DRAM(SDRAM),可以工作在1倍或1/2倍CPU时钟频率l也可通过(tnggu)EMIF外接A/D转换器、并行显示接口等外围设备第56页/共154页第五十六页,共155页。l程序(chngx)的访问l32位数据的访问l16位数据的访问l8位数据的访问2.EMIF支持四种类型支持四种类型(lixng)的的访问访问第57页/共154页第五十七页,共155页。3.EMI

49、F信号信号(xnho)表8-8 外部(wib)存储器共享接口对于(duy)VC5509A,EMIF数据线为D15:0, 地址线为A13:0,BYTE使能控制线为BE1:0指示所访问存储器的宽度第58页/共154页第五十八页,共155页。表8-9 用于异步存储器的EMIF信号(xnho)表表8-10 用于用于SBSRAM的的EMIF信号信号(xnho)第59页/共154页第五十九页,共155页。表8-11总线保持(boch)信号表表8-12 用于用于SDRAM的的EMIF信号信号(xnho)第60页/共154页第六十页,共155页。8.4.2 EMIF请求(qngqi)的优先级EMIF请求类型请

50、求类型优先级优先级说明说明HOLD1(最高最高)引脚拉低引脚拉低紧急刷新紧急刷新2同步同步DRAM需要立刻刷新时,产生请求需要立刻刷新时,产生请求E总线总线3通过通过E总线向外部存储器写数据时产生这个请求总线向外部存储器写数据时产生这个请求F总线总线4通过通过F总线向外部存储器写数据时产生这个请求总线向外部存储器写数据时产生这个请求D总线总线5通过通过D总线向外部存储器写数据时产生这个请求总线向外部存储器写数据时产生这个请求C总线总线6通过通过C总线向外部存储器读数据时产生这个请求总线向外部存储器读数据时产生这个请求P总线总线7通过通过P总线向外部存储器读数据时产生这个请求总线向外部存储器读数

51、据时产生这个请求Cache8从指令从指令cache来的线填充来的线填充(line fill)请求请求DMA控制器控制器9DMA控制器读或写外部存储器时,产生这个请求控制器读或写外部存储器时,产生这个请求刷新刷新10同步同步DRAM需要下一个周期刷新时,产生这个请求需要下一个周期刷新时,产生这个请求第61页/共154页第六十一页,共155页。8.4.3 对存储器的考虑(kol)l对EMIF编程时,必须了解:l外部存储器地址如何分配给片使能(CE)空间l每个CE空间可以同哪些(nxi)类型的存储器连接l哪些(nxi)寄存器位来配置CE空间第62页/共154页第六十二页,共155页。1. 存储器映射

52、(yngsh)和CE空间l C55x的外部存储映射在存储空间的分布,相应于EMIF的片选使能信号(xnho)l 例如, 空间里的一片存储器,必须将其片选引脚连接到EMIF的引脚。当EMIFl 访问 空间时,就驱动 变低。CE1CE1CE1第63页/共154页第六十三页,共155页。2. EMIF支持的存储器类型(lixng)和访问类型(lixng)存储器类型存储器类型支持的访问类型支持的访问类型异步异步8位存储器(位存储器(MTYPE=000b)程序程序异步异步16位存储器(位存储器(MTYPE=001b)程序,程序,32位数据,位数据,16位位数据,数据,8位数据位数据异步异步32位存储器(

53、位存储器(MTYPE=010b)程序,程序,32位数据,位数据,16位位数据,数据,8位数据位数据32位的位的SDRAM(MTYPE=011b)程序,程序,32位数据,位数据,16位位数据,数据,8位数据位数据32位的位的SBSRAM(MTYPE=100b)程序,程序,32位数据,位数据,16位位数据,数据,8位数据位数据表表8-14 8-14 存储器类型及每种存储器允许存储器类型及每种存储器允许(ynx)(ynx)的访问类型的访问类型第64页/共154页第六十四页,共155页。3. 配置(pizh)CE空间l使用全局控制寄存器(EGCR)和每个CE空间控制寄存器来配置CE空间l对于每个CE空

54、间,必须设置(shzh)控制寄存器1中的以下域:lMTYPE确定存储器类型lMEMFREQ决定存储器时钟信号的频率(1倍或1/2倍CPU时钟信号的频率)lMEMCEN决定CLKMEM引脚是输出存储器时钟信号还是被拉成高电平l不管每个CE空间(kngjin)里的存储器类型,一定要对全局控制寄存器写如下控制位(这些位要影响所有的CE空间(kngjin)):lWPE:对所有的CE空间(kngjin),使能或禁止写lNOHOLD: 对所有的CE空间(kngjin),使能或禁止HOLD请求第65页/共154页第六十五页,共155页。8.4.4 程序和数据(shj)访问1、程序、程序(chngx)存储器的

55、访问存储器的访问l要从外部存储器取指令代码时,CPU向EMIF发送(f sn)一个访问请求。EMIF必须从外部存储器读取一个32位代码,然后把这全部32个位放到CPU的程序读总线(P bus)上lEMIF可以管理对3种存储器宽度的32位访问:32位、16位、8位第66页/共154页第六十六页,共155页。l访问(fngwn)16位宽的外部程序存储器lEMIF把一个字地址放到地址线A21:0上。 32位的访问可以(ky)分为两个16位的传输,在连续的两个周期内完成。在第二个周期,EMIF自动将第一个地址加1,产生第二个地址。l 先读取字1,再读取字0l BE3:2无效(高电平), BE1:0有效

56、(低电平)A0不用(byng)第67页/共154页第六十七页,共155页。l访问8位宽的外部(wib)程序存储器EMIF把一个字节地址(dzh)放到地址(dzh)线A21:0上。 32位的访问可以分为4个8位的传输,在连续的4个周期内完成。在第2、3、4个周期,EMIF自动将第一个地址(dzh)加1,产生下一个新的地址(dzh)。 第68页/共154页第六十八页,共155页。2、数据(shj)访问lEMIF支持(zhch)的数据访问类型l对32位宽的数据存储器进行32、16、8位的数据访问l对16位宽的数据存储器进行16、8位的数据访问l本节介绍16位宽的存储器作16位的数据访问第69页/共1

57、54页第六十九页,共155页。图8-8 对16位宽的外部(wib)存储器所作的16位的数据访问第70页/共154页第七十页,共155页。8.4.5 EMIF中的控制(kngzh)寄存器表表8-16 EMIF 寄存器寄存器I/O口地址寄存器描 述I/O口地址寄存器描 述0800hEGCREMIF全局控制寄存器080AhCE22CE2空间控制寄存器20801hEMI_RSTEMIF全局复位寄存器080BhCE23CE2空间控制寄存器30802hEMI_BEEMIF总线错误状态寄存器080ChCE31CE3空间控制寄存器10803hCE01CE0空间控制寄存器1080DhCE32CE3空间控制寄存器

58、20804hCE02CE0空间控制寄存器2080EhCE33CE3空间控制寄存器30805hCE03CE0空间控制寄存器3080FhSDC1SDRAM控制寄存器10806hCE11CE1空间控制寄存器10810hSDPERSDRAM周期寄存器0807hCE12CE1空间控制寄存器20811hSDCNTSDRAM计数寄存器0808hCE13CE1空间控制寄存器30812hINITSDRAM初值寄存器0809hCE21CE2空间控制寄存器10813hSDC2SDRAM控制寄存器2第71页/共154页第七十一页,共155页。8.5 多通道缓冲(hunchng)串口McBSPMcBSP概述McBSP组

59、成框图采样率发生器多通道模式选择异常(ychng)处理McBSP寄存器第72页/共154页第七十二页,共155页。8.5.1 McBSP概述(i sh)lMcBSP(多通道缓冲串口,Multi-channel Buffered Serial Ports),可以与符合标准的外部设备和其它DSP器件相连。lMcBSP的特点l全速(qun s)双工通信。l双缓存发送,三缓存接收,支持传送连续的数据流。l独立的收发时钟信号和帧信号。l128个通道收发。第73页/共154页第七十三页,共155页。u可与工业标准(biozhn)的编解码器、模拟接口芯片(AICs)及其他串行A/D、D/A芯片直接连接。u能

60、够向CPU发送中断,向DMA控制器发送DMA事件。u具有可编程的采样率发生器,可控制时钟和帧同步信号。u可选择帧同步脉冲和时钟信号的极性。u传输的字长可选,可以是8位、12位、16位、20位、24位或32位。u具有u律和A律压缩扩展功能。u可将McBSP引脚配置为通用输入输出引脚。第74页/共154页第七十四页,共155页。8.5.2 McBSP组成(z chn)框图第75页/共154页第七十五页,共155页。lMcBSP包括一个数据通道和一个控制通道,通过7个引脚与外部设备连接。l数据发送引脚DX负责数据的发送l数据接收引脚DR负责数据的接收l发送时钟(shzhng)引脚CLKX、接收时钟(

61、shzhng)引脚CLKR、发送帧同步引脚FSX和接收帧同步引脚FSR提供串行时钟(shzhng)和控制信号。第76页/共154页第七十六页,共155页。lCPU和DMA控制器通过外设总线与McBSP进行通信l当发送数据时,CPU和DMA将数据写入数据发送寄存器(DXR1,DXR2),接着(ji zhe)复制到发送移位寄存器(XSR1,XSR2),通过发送移位寄存器输出至DX引脚。l当接收数据时,DR引脚上接收到的数据先移位到接收移位寄存器(RSR1,RSR2),接着(ji zhe)复制到接收缓冲寄存器(RBR1,RBR2)中,RBR再将数据复制到数据接收寄存器(DRR1,DRR2)中,由CP

62、U或DMA读取数据。第77页/共154页第七十七页,共155页。8.5.3 采样率发生器(SRG)CLKG可以(ky)作为DR引脚接收数据或DX引脚发送数据的时钟用于产生(chnshng)内部数据时钟CLKG和内部帧同步信号FSG。FSG控制(kngzh)DR和DX上的帧同步。第78页/共154页第七十八页,共155页。1输入时钟(shzhng)的选择l 时钟源:lCPU时钟l外部(wib)引脚CLKS、CLKX、CLKRl时钟源的选择l引脚控制寄存器PCR中的SCLKME字段l采样率发生寄存器SRGR2中的CLKSM字段SCLKMECLKSM采样发生器的输入时钟00CLKS引脚上的信号01C

63、PU时钟10CLKR引脚上的信号11CLKX引脚上的信号第79页/共154页第七十九页,共155页。2输入(shr)时钟信号极性的选择lSRGR2中的CLKSP字段lPCR中的CLKXP字段或CLKRP字段输入时钟极性选择说 明CLKS引脚上的信号CLKSP=0CLKSP=1CLKS引脚上的信号的上升沿,产生CLKG的上升沿CLKS引脚上的信号的下降沿,产生CLKG的上升沿CPU时钟正极性CPU时钟信号的上升沿,产生CLKG的上升沿CLKR引脚上的信号CLKRP=0CLKRP=1CLKR引脚上的信号的上升沿,产生CLKG的上升沿CLKR引脚上的信号的下降沿,产生CLKG的上升沿CLKX引脚上的

64、信号CLKXP=0CLKXP=1CLKX引脚上的信号的上升沿,产生CLKG的上升沿CLKX引脚上的信号的下降沿,产生CLKG的上升沿第80页/共154页第八十页,共155页。3输出时钟信号(xnho)频率的选择l输入的时钟经过分频产生SRG输出时钟CLKGl分频值由采样率发生(fshng)寄存器SRGR1中的CLKGDV字段确定。255CLKGDV1 1CLKGDVCLKG输入时钟频率输出时钟频率l输出(shch)的最高时钟频率是输入时钟频率的1/2l当CLKGDV是奇数时,CLKG的占空比是50%l当CLKGDV是偶数2p时,CLKG高电平持续时间为p+1个输入时钟周期,低电平持续时间为p个

65、输入时钟周期第81页/共154页第八十一页,共155页。4帧同步时钟信号(xnho)频率和脉宽的选择l帧同步(tngb)信号FSG由CLKG进一步分频而来,分频值由采样率发生寄存器SRGR2中的FPER字段决定。4095FPER0 1FPER时钟频率CLKG输出时钟频率FSG255FWID0 的周期CLKG1)(FWID脉宽FSGl 帧同步脉冲的宽度由采样率发生(fshng)寄存器SRGR1中的FWID字段决定:第82页/共154页第八十二页,共155页。5同步(tngb)l当采用外部时钟源时一般需要同步,同步由采样率发生(fshng)寄存器SRGR2中的字段GSYNC控制。l当GSYNC=0

66、时,SRG将自由运行,并按CLKGDV、FPER和FWID等参数的配置产生输出时钟l当GSYNC=1时,CLKG和FSG将同步到外部输入时钟。第83页/共154页第八十三页,共155页。8.5.4 多通道模式(msh)选择1. 通道通道(tngdo)、块和分区、块和分区l 一个McBSP通道最多支持128个发送通道和128个接收通道。l 无论是发送器还是接收器,128个通道都分为8块(Block),每块包括16个邻近的通道。l 跟据所选择的分区模式,各个块被分配给相应的区l如果选择2分区模式,则将偶数(u sh)块(0、2、4、6)分配给区A,奇数块(1、3、5、7)分配给区Bl如果选择8分区模式,则将块07分别自动地分配给区AH。Block0:015通道;通道;Block1:1631通道;通道;Block2:3247通道;通道;Block3:4863通道;通道;Block4:6479通道;通道;Block5:8095通道;通道;Block6:96111通道;通道;Block7:112127通道。通道。第84页/共154页第八十四页,共155页。2.接收(jishu)多通道选择l多通道

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!