第4章 实验3 流水灯实验blink_第1页
第4章 实验3 流水灯实验blink_第2页
第4章 实验3 流水灯实验blink_第3页
第4章 实验3 流水灯实验blink_第4页
第4章 实验3 流水灯实验blink_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

实验2流水灯实验一、实验目的二、实验原理与资源使用三、实验内容四、实验思考题

一、实验目的掌握CSL的使用掌握如何给DSP各个模块配置时钟掌握TMS32VC5502DSP寄存器编程了解GPIO的使用二、实验原理与资源使用2.1DSPCSL库2.2DSP系统时钟发生器2.3寄存器ST1_55*2.4GPIO2.1DSPCSL库什么是DSPCSL(ChipSupportLibrary)库?是DSP/BIOS部件,是函数、数据类型、宏,用于配置、控制和管理DSP片上外设;CSL库函数一般是用C语言编写的,并已对代码的大小和速度进行了优化。CSL库是可裁剪的(只有被使用的CSL模块才会包含进应用程序中)。CSL库是可扩展的(每个片上外设的API模块相互独立,新增API,对其它片上外设没有影响)。TMS320C55xChipSupportLibraryAPIReferenceGuide,SPRU433I.pdf2.1DSPCSL库为什么采用CSL库?DSP片上外设种类及其应用日趋复杂;提供一组标准的方法用于访问和控制片上外设;免除用户编写配置和控制片上外设所必需的定义和代码,降低DSP工程师对硬件的知识掌握程度的要求。

2.1DSPCSL库CSL的特点片上外设编程的标准协议(定义一组标准的APIs:函数、数据类型、宏);对硬件进行抽象,提取符号化的片上外设描述(定义一组宏,用于访问和建立寄存器及其域值)

方便对多资源的片上外设进行管理;已集成到DSP/BIOS中(通过图形用户接口GUI对CSL进行配置);

2.1DSPCSL库TMS320VC5502CSL库:CSL模块:TMS320C55xChipSupportLibraryAPIReferenceGuide,SPRU433I.pdf2.1DSPCSL库TMS320VC5502CSL库(包含20以上CSL函数):常用CSL函数:CSL外设模块(PER)

描述包含头文件CSL芯片支持库csl.hDAT基于C55xDMA的数据拷贝csl_dat.hCHIP通用设备模块csl_chip.hDMADMA外设模块csl_dMa.h………McBSP多通道串行口模块csl_mcbsp.hTIMER定时器模块csl_timer.hPLLPLL模块csl_pll.hGPIO非多路通用I/Ocsl_gpio.h2.1DSPCSL库TMS320VC5502CSL库(包含20以上CSL函数):调用TMS320VC5502CSL库:工程中包含库文件csl5502x.lib(存储器为大模式)或csl5502.lib(存储器为小模式)在C程序中包含相应的头文件,如调用PLL函数,则在C主程序中包含csl_pll.h,即:

#include<csl_pll.h>(当包含这些头文件时,编译时将自动进入工程中)只要调用CSL库,首先包含csl.h,即:#include<csl.h>2.1DSPCSL库调用TMS320VC5502CSL库:以blink工程为例,使用PLL模块中的PLL_setFreq()函数,工程中包含csl5502x.lib(存储器为大模式)。在blink.c中包含头文件,调用PLL_setFreq(),即:#include<csl_pll.h>#include<csl.h>…PLL_setFreq(1,0xC,0,1,3,3,0);2.2DSP系统时钟发生器TMS320VC5502含有一个灵活的时钟发生器模块,由PLL和振荡器(oscillator)组成。这个模块可以为系统不同部分产生不同时钟,如55x核、快速片上外设、慢速片上外设和外部存储器接口等。TMS320VC5502Fixed-PointDigitalSignalProcessorDataManual,SPRS166k.pdf2.2DSP系统时钟发生器

系统时钟发生器模拟功能框图①②2.2DSP系统时钟发生器

从系统时钟发生器模拟功能框图可以看出,输入时钟源经过D0、M1、D1、D2和D3,形成55x核时钟(CLKOUT3)、SYSCLK1、SYSCLK2和SYSCLK3。其中:SYSCLK1为快速片上外设(DMA/HPI/Timer)提供时钟,SYSCLK2为慢速片上外设(McBSP/I2C/UART)提供时钟,SYSCLK3为外部存储器接口(EMIF)提供时钟。2.2DSP系统时钟发生器1.输入时钟源5502时钟源可以是外部3.3V时钟,输入到管脚X2/CLKIN上。当管脚GPIO4=1(对应CLKMD寄存器的CLKMD0位),采用外部输入时钟。也可以是内部振荡器产生(当管脚GPIO4=0时)。

本DSP系统采用20MHz的外部时钟

进入①2.2DSP系统时钟发生器2.经过D0和M1

时钟进入PLL模块后,如果设置使能PLL,即PLL控制/状态寄存器(PLLCSR)的位PLLEN=1,进入PLL模式,输入时钟(如20MHz)经除法器D0和乘法器M1后形成55x核时钟,再往下传输(若PLLEN=0,输入时钟不必经过D0和M1)。D0:SYSCLK0除法器,5bit,取值范围0~31(0表示除以1,以此类推)。M1:乘法因子,4bit,取值范围0~15(0、1保留,2表示乘以2,3表示乘以3,以此类推)。进入②2.2DSP系统时钟发生器例如:

若输入时钟20MHz,D0=0(表示除以1),M1=0xC(表示乘以12),则进入时(进入D1、D2、D3前)的时钟频率是多少?答:20MHz/1*12=240MHz②2.2DSP系统时钟发生器3.经过D1、D2和D3

时钟进入后,形成55x核时钟(CLKOUT3),同时分路分别进入D1、D2和D3,产生SYSCLK1、SYSCLK2和SYSCLK3时钟。

D1:SYSCLK1除法器,PLLDIV1寄存器[4:0]位,取值范围0、1、3(缺省=3)(0表示除以1,以此类推)。

D2:SYSCLK2除法器,PLLDIV2寄存器[4:0]位,取值范围0、1、3(缺省=3)(0表示除以1,以此类推)。

D3:SYSCLK3除法器,PLLDIV3寄存器[4:0]位,取值范围0、1、3(缺省=3)(0表示除以1,以此类推)。

②2.2DSP系统时钟发生器例如:

若输入时钟20MHz,D0=0(表示除以1),M1=0xC(表示乘以12),则55x核时钟CLKOUT3是多少(亦即进入D1、D2、D3前)?答:CLKOUT3=20MHz/1*12=240MHz(续上)若D1=1,D2=3,D3=3,则SYSCLK1、SYSCLK2和SYSCLK3分别等于多少?答:SYSCLK1=CLKOUT3/2=120MHzSYSCLK2=CLKOUT3/4=60MHz,SYSCLK3=CLKOUT3/4=60MHz进入②时2.2DSP系统时钟发生器DSP系统时钟设置:可以通过CSL库进行时钟设置,CSL库提供PLL模块,PLL_setFreq()函数对PLL进行初始化,产生各个时钟。在C语言源程序中:PLL_setFreq(1,0xC,0,1,3,3,0);外部输入时钟20MHz,则实现:55x核时钟CLKOUT3=240MHz,SYSCLK1=CLKOUT3/2=120MHz,SYSCLK2=CLKOUT3/4=60MHz,SYSCLK3=CLKOUT3/4=60MHz

各级时钟频率计算公式依据CSL函数PLL_setFreq(1,0xC,0,1,3,3,0),各时钟为(外部输入时钟X2/CLKIN=20MHz):

2.3寄存器ST1_55DSP片内有大量CPU寄存器和片上外设寄存器,对DSP操作的本质是对这些寄存器的操作。

这些寄存器均是存储器映射寄存器(Memory-MappedRegisters),因此每个寄存器都有对应的存储器地址。CPU寄存器如:状态寄存器ST0_55~ST3_55、累加器AC0~AC3等。外设寄存器如:定时器相关寄存器、DMA相关寄存器等。详见TMS320C55xDSPCPUReferenceGuide,SPRU371F.pdf2.3寄存器ST1_55寄存器ST1_55(地址0x000003h)为16bit存储器映射寄存器。

其中:XF为外部标志位,向DSP外部发出标志信息,用于程序测试(其它位如INTM为中断模式位;ASM为累加移位模式…)

寄存器ST1_55操作

对ST1_55的一些位操作,可以采用BSET和BCLR进行置位或复位。如:BCLRXF;ClearXF,即令XF=0

BSETXF;SetXF,即令XF=1

如果在c语言源程序插入汇编语句,可以利用“asm()”函数实现。如:asm("BCLRXF");//;ClearXFasm("BSETXF");//;SetXF注意插入的汇编指令前空一格!!(汇编指令顶格写会认为是标号,即lable)

对D1灯的编程

由于BJTU-DSP5502板的D1灯和DSP管脚XF相连接,而ST1_55寄存器的外部标志位XF和DSP管脚XF相连接,因此如果希望D1等闪烁,即可以在C程序中轮流采用asm(“BCLRXF”)和asm(“BSETXF”)实现。

对D1灯的编程 while(1) {asm("BCLRXF");//;ClearXF

delay(3000);asm("BSETXF");//;SetXFdelay(3000); }其中:delay()函数是软件延迟。*2.4GPIOGPIO定义D5灯和GPIO7管脚相连接。/*1.通过定义宏来控制两个外围存储器映射的寄存器,从而实现对GPIO口的控制*/#defineGPIODIR(*(volatileioportUint16*)(0x3400))#defineGPIODATA (*(volatileioportUint16*)(0x3401))/*2.配置GPIO7管脚,为了点亮D5LED灯*/

GPIODIR=0x80; //配置GPIO7为输出管脚/*3.开关灯*/GPIODATA=0x80; /*点亮D5灯*/ GPIODATA=0x00; /*关闭D5灯*/ *附:GPIO寄存器图即:GPIODIR=0000000010000000=0x80;配置GPIO7为输出管脚TMS320VC5502Fixed-PointDigitalSignalProcessorDataManual,SPRS166k.pdf*附:GPIO寄存器图即:GPIODATA=0000000010000000=0x80;点亮D5灯;GPIODATA=00000000

温馨提示

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

评论

0/150

提交评论