DSP实验报告-基于CCSV4的F28335的学习和应用.doc_第1页
DSP实验报告-基于CCSV4的F28335的学习和应用.doc_第2页
DSP实验报告-基于CCSV4的F28335的学习和应用.doc_第3页
DSP实验报告-基于CCSV4的F28335的学习和应用.doc_第4页
DSP实验报告-基于CCSV4的F28335的学习和应用.doc_第5页
免费预览已结束,剩余57页可下载查看

下载本文档

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

文档简介

摘 要DSP控制器原理及应用课程报告基于CCSV4的F28335的学习和应用姓名 学号 指导教师 2013年12月摘 要鉴于学习板较新,资料和外扩模块都较少,此次研究主要针对在CCSv4开发环境下对F28335的学习和使用。文章首先详细论述了CCSv4软件的安装、破解和使用,对于每一个过程和步骤都在实际操作过程中截图予以仔细说明,能作为后续新手学习该软件的一个详细的指导书;第二部分F28335数字输入/输出(I/O)单元的学习和使用,因为该单元提供了LED和按钮开关,实验现象直观可见,且操作简单,是DSP入门学习的绝好材料,因此我们从这部分的学习和使用入手,展开对F28335的学习了解过程;第三部分介绍了中断系统的学习和使用,中断在实际控制工程中必不可少,且原理浅显易懂,能够比较好地向我们展示DSP如何将一个现实生活中的时间转化为一个软硬件时间,如何将复杂的操作分层次进行简单化,使我们逐渐了解想法与实现之间的关系与距离;第四部分讲述ePWM模块的学习和使用,对于电气工程而言,会不可避免地接触和使用到电力电子电路,而现代电力电子系统经常使用PWM脉冲调制开控制功率开关的通断,以实现对电压、电流、流量和转速等变量的优化控制,而如今工程实践中,通常也是使用DSP产生所需要的PWM脉冲信号,因此非常有必要学习该模块的具体使用。最后,我们就学习和实践过程中的一些经验和教训进行了总结,期望能给以后学习的人起到一些参考作用,少走一些弯路。关 键 词:CCSv4;数字I/O;中断系统;ePWM单元49目 录目 录1 CCSV4的安装、破解与使用11.1 CCSV4的安装11.2 CCSV4的破解31.3 CCSV4的使用51.3.1 仿真器的配置51.3.2 新建工程61.3.3 调试程序142 F28335数字输入/输出单元的学习与应用172.1 数字I/O单元182.1.1 寄存器介绍182.1.2 引脚分配202.1.3 GPIO输入限制(Input Qualification)222.1.4 F28335的时钟模块242.1.5 看门狗定时器(Watchdog Timer)262.1.6 系统控制和状态寄存器(SCSR)272.2 应用实验282.2.1 实验基本功能282.2.2 相关引脚分配282.2.3 关键程序说明282.2.4 源程序292.2.5 实验结果293 F28335中断系统的学习与应用303.1 F28335中断系统简介303.1.1 F28335的中断线303.1.2 F28335的复位313.1.3 复位引导313.1.4 中断源333.1.5 硬件中断响应343.1.6 硬件中断响应F28335的CPU定时器353.2 应用试验363.2.1 实验基本功能363.2.2 实验流程图373.2.3 实验程序说明373.2.4 源程序373.2.5 实验结果374 F28335增强型PWM(ePWM)单元的学习和应用394.1 应用背景394.2 单元简介394.2.1 ePWM时基单元(Time Base Unit)404.2.2 ePWM相位同步414.2.3 计时器操作模式414.2.4 时基寄存器424.2.5 时基控制寄存器TBCTL434.2.6 时基状态寄存器TBSTS444.3 应用试验454.3.1 实验基本功能454.3.2 1KHz信号TBPRD装载内容的计算454.3.3 源程序464.3.4 实验结果465 心得体会47附 录149附 录252附 录3554 F28335增强型PWM(ePWM)单元的学习和应用1 CCSV4的安装、破解与使用1.1 CCSV4的安装注意:在进行下面安装之前,请先退出所有杀毒软件,否则可能会导致安装出错!首先我们需要来安装TIDSP的软件开发环境CCS(Code Composer Studio)。双击setup_CCS_0004.exe文件,出现如下图界面:点击“Next”,出现下图界面:选择“IAccepttheLicenseAgreement”,点击“Next”点击“Browse”选择安装路径,但推荐默认路径,点击“Next”,选择如下图所示点击NEXT,选择如下:一直点击“Next”,全部选择默认安装。等待全部安装完成,点击“Finish”1.2 CCSV4的破解注意:所用的破解软件已经放在报告文件夹ccs破解中。破解步骤:(1) 打开ccs破解crk文件夹,将tiactutil.exe覆盖到安装目录的ccsv4DebugServerLicense目录下;(2) 将crk中的mdex.dll覆盖到安装目录的ccsv4DebugServerwin32components目录下;(3) 使用crk中的full.lic作为license文件即可。具体操作如下:双击打开如下安装完成后的CCSV4图标:出现如下界面,设置工作空间:弹出如下对话框,选择“ActivateaLicense”:在“Specify a license file”下点击“Browser”加载crk目录下的full.lic,然后点击“OK”,即完成破解。1.3 CCSV4的使用1.3.1 仿真器的配置选择FileNewTarget Configuration File,如下图:出现如下图建立NewTargetConfiguration的界面,任意取一个名字即可。点击Finish后将出现一下配置界面:配置工作:(1) 在connection栏中选择仿真器“Texas Instruments XDS100v2 USB Emulator”;(2) 选择Device一栏的使用芯片型号,根据目标板的芯片型号选择,这里使用的是TMS320F28335。(3) 点击Target-LaunchTIDebugger启动调试,如下图:等待调试界面有效,此时点击Target-ConnectTarget,之后便可以进行实验。1.3.2 新建工程(1) 选择FileNewCCS Project,出现如下图界面:键入工程名称,复选框为工程是否在建立在CCS4的WorkSpace中,建议打钩。随着工程名称的输入,CCS将自动在WorkSpace里面新建一个与工程相同的文件夹,如下图所示:点击Next。(2) 如下图所示:在ProjectType中根据目标板处理器的不同而选择,这里是选择C2000,其他值默认,点击Next。(3) 可以看见当前已经添加的工程有哪些:不需要选择,点击Next。(4) 工程有关设置:根据自己目标板的处理器型号选择DeviceVariant第二个选项的芯片型号,这里选择TMS320F28335,如下图所示:点击Finish,完成设置。在左边的工程框里面将会出现新建的工程Timer0,CCS4将会自动添加一些自带的头文件,如下图所示:(5) 这一步是我们工程需要的CMD、include、source(有的是SRC)这三个文件复制到新建工程的文件夹里。复制完成以后,在CCS4右边的工程框新建工程Timer0下将会自动的将CMD、include、source(有的是SRC)添加进工程。打开source(有的是SRC),我们可以将与所复制工程有关系的.c文件删除,仅保留那些有用的.c文件,新建自己的工程.c文件。以28335为例,可以保留以DSP2833x_起头的.c文件。如下图所示:打开source(有的是SRC),我们可以将与所复制工程有关系的.c文件删除,仅保留那些有用的.c文件,新建自己的工程.c文件。以28335为例,可以保留以DSP2833x_起头的.c文件。如下图所示:打开CMD文件夹,如果是仿真的话在F28335.cmd上鼠标右击选择ExcludeFile(s)FromBuild,表示该文件不参与程序编译,如下图所示,在该文件上将出现一个斜杠,如果需要该文件参与编译则右键选择ExcludeFile(s)FromBuild,如下图所示:对于那些不需要编译的文件就可以使用这种排除编译功能。(6) 添加Include路径选择ProjectPropertiesC/C+BuildC2000 CompilerInclude Options,如下图所示:通过“我的电脑”打开在工程所在文件夹,打开Include,复制Include的存储路径,如下图所示:然后点击Add dir to #include search path,弹出如下窗口:将复制的地址粘贴到方框内,点击OK,头文件添加完成。(7) 设置堆栈大小继续上面的窗口,点击C2000 Linker下的Basic Options,在倒数第二个方框“Set C system stack size”中输入0x400,如下图所示:选择0x400是出于经验。(8) 编写C代码选择FileNewSource File,弹出如下窗口:为代码命名,点击Finish,然后在新弹出的程序编辑窗口中输入C代码。(8) 编译选择ProjectRebuild Active Project,编译当前活跃工程,如果程序编译没有错误,则可以将程序下载到目标板中;否则先要排查出错误,待编译无误后才能进行程序的下载。(9) 下载代码到控制器右键单击当前活跃工程,选择PropertiesCCS DebugTarget,找到“Auto Run Options”,在“Run to symbol”选项中键入“main”,如下图所示:选择TargetDebug Active Project,或者选择如下图所示Debug图标:这个选项包含三条单独操作:编译当前活跃的工程;联接目标板;下载程序。1.3.3 调试程序创建配置之后,可通过菜单“TargetDebug Active Project”启动调试器。将会打开“Debug Perspective”专为调试设计的一组专用窗口和菜单。(1) 加载代码调试器完成目标初始化之后,项目的输出文件.OUT将自动加载到活动目标,并且在默认情况下代码将在main()函数处停止。(2) 监视变量和寄存器在程序加载时还会打开“Local(本地)”和“Watch(监视)”视图,并显示本地和全局变量。默认情况下不会打开寄存器视图,但是可以通过菜单“ViewRegister”进行查看。(3) 反汇编以及源代码与汇编代码混合模式默认情况下不会打开反汇编视图,但是可以通过菜单“ViewDisassembly”查看。反汇编窗口中一个极其有用的功能是源代码与汇编代码混合模式查看器。要使用此功能,只需在“Disassembly”视图中右键并选择“View Source(查看源代码)”。(4) 内存查看器默认情况下不会打开内存视图,但是可以通过菜单“ViewMemory”查看。通过此时图可访问一些有用的功能:内存可通过多种格式进行查看,可填充任意值,恶客保存至PC主机中的二进制文件或从中加载;此外,还可以查看所有变量和函数,而且每个内存位置都有上下文相关的信息框。(5) 管理断点作为任何调试器都会拥有的最基本功能,CCSv4中的断点添加了一系列选项,帮助增加调试进程的灵活性:a. 硬件断点可从IDE直接进行设置;b. 软件断点仅受到设备可用内存的限制;c. 软件断点可设置为无条件或有条件停止;d. 除了停止目标之外,软件断点还可执行其他功能:文件I/O传输、屏幕更新等。要设置断点,只需在源代码或反汇编视图中双击代码行即可。相应的图标会指示其状态和放置位置。所有断点(软件、硬件、已启用、已禁用)都可在断点查看器中看到。要配置断点,只需右键点击断点,或在断点视图中右键单击并选择“Breakpoint Properties”。a. 使用“Action(操作)”可以设置断点的行为,例如保持停止、更新一个或所有调试器视图、从文件中读取数据或将数据写入其中、激活或停止断点组等;b. 使用“Skip Count(跳过计数)”可以设置执行断点操作之前通过的数目;c. 使用“Group(分组)”可以对断点进行分组以进行高级控制;(6) 图形显示工具CCSv4中提供了一个高级图形和图像可视化工具。它可通过图形形式显示数组,并且可采用多种格式。要添加图形,只需到菜单“ToolsGraph”,然后从各种显示选项中选择一个。a. 基于时间的图形:“Single Time(单曲线图)”和“Dual Time(双曲线图)”;b. 基于频率的图形:所有FFT选项。图形窗口的顶部工具栏可控制多种功能,例如更新速率(冻结、连续、目标停止时或手动)、缩放、配置属性等。默认情况下,图形窗口会在目标停止时立即更新,使用自动缩放并以样本数显示X轴,以整数值显示Y轴。所有这些选项都可进行设置。下面的过程包含正弦波发生器输出内容的图形。在BOOT-ROM中包含了对一个正弦波一个360周期进行512次采样的查找表。数据格式是32位有符号整数。查找表的首地址为0x3FE000。2 F28335数字输入/输出单元的学习与应用F28335的所有外设单元都被存储映像到数据存储器空间中,也就是说,我们通过访问专用的数据存储地址来控制各个外设单元,示意如下图。所有的外设寄存器都被一起分组到“外设框架”PF0,PF1,PF2和PF3。这些框架只被映像到数据存储器中。外设框架PF0包括控制Flash存储器内部速度的寄存器组、外部存储设备的时序设置、直接存储器访问单元寄存器、内核CPU定时器寄存器和代码安全模块的控制模块。Flash是内部的非易失性存储器,通常用来存储代码和boot时需要的数据。外设框架PF1包括绝大多数的外设单元控制寄存器,例如ePEM,eCAP,数字输入/输出控制和CAN寄存器组。外设框架PF2包括内核系统控制寄存器、A/D转换器和其他除McBSP之外的通信信道,McBSP被分配在PF3中。下面是F28335的内存图。如下是外设到数据存储器的详细映像。 内存中有一部分区域是受到“代码安全模块”密码保护的,这一特征是为防止逆向工程而设定的。一旦密码区域被编程,任何针对安全区域的访问只有在向PF0中特定区域输入了正确密码的前提下才能进行。2.1 数字I/O单元2.1.1 寄存器介绍所有的数字I/O都被以“端口(Ports)”为单元进行了分组,叫做GPIO-A,B,C。GPIO意思是“通用输入输出(general purpose input/output)”。F28335特别命名了88个I/O引脚:GPIO0GPIO87,但实际数量更多。由于该设备内部有众多的附加内部单元,并非所有的特征单元能够在同一时刻连接到特定的设备引脚,解决这个问题的方法是引脚复用,意思是,一个单独的物理引脚能够实现多至4中不同的功能,由编程者决定选择哪一种功能。下图示意一个物理引脚的框图。术语“Input Qualification(输入限制)”指针对GPIO063的一个附加选项,当这个特征被使用时,一个输入脉冲的长度必须大于一定的时钟周期才会被认定为一个有效的输入信号,这可以过滤掉输入噪音。寄存器组“GPxPUD”用来禁用内部上拉电阻,从而使得电压或处于悬浮态,或处于高阻态。当一个数字I/O功能被选择,寄存器组 GPxDIR用来定义输入输出方向,清0相应的一位将其设定为输入,置1则设定为输出。GPxDAT寄存器组执行输入线的数据读取和输出线的数据写入功能。此外还有3组寄存器:(1) GPxSET;(2)GPxCLEAR;(3) GPxTOGGLE。这些寄存器的目的是使用一种掩码技术(mask technique)来置位(SET)、清零(CLEAR)或翻转(TOGGLE)相应的输出线,对应在所使用的掩码(mask)中进行一个置1。例如,可用如下的指令清零GPIO5线:GpioDataRegs.GPACLEAR .bit.GPIO5=1;上图是I/O控制寄存器组的一个总结。2.1.2 引脚分配下面5个图是所有88个I/O线的复用分配。2.1.3 GPIO输入限制(Input Qualification)前面曾叙述过,GPIO063的输入限制特征(Input Qualification)如同一个对输入噪声信号的低通滤波器,它由一对附加的寄存器控制,如下两图所示。 下图两图是GPIO单元所有的寄存器的一个总结。2.1.4 F28335的时钟模块在使用数字I/O之前,需要配置F28335的时钟模块。与所有现代的处理器一样,F28335是由外部一个低速的时钟发生器或者晶振驱动的,内部的一个PLL电路产生内部速度。此次实验中用到的F28335控制卡外部速度是20MHz,为得到内部100MHz的频率,必须先成因子10,再除2,这是通过对PLL控制寄存器(PLLCR)的编程来实现的。示意图如下。高速的时钟预分频(HISPCP)和低速的时钟预分频(LOSPCP)用作附加的时钟分频器,两个时钟预分频器的输出作为外设单元的时钟源,两个时钟预分频器可以独立地进行设置。如下图所示。以下几点需要注意:(1) “CLKIN”与核心输出信号“SYSCLKOUT”具有相同的频率,它用于外部存贮器接口,用作ePWM单元和CAN单元的时钟;(2) Watchdog单元直接由外部晶振作时钟驱动;(3) 外部晶振的最大频率是35MHz。要使用一个外设单元,必须通过置位PCLKCRx寄存器的单独位域。位域“GPIOIN_ENCLK”使能输入限制滤波器的时钟信号。如果未使用输入限制,那么就没有必要使能该位。如下图所示。2.1.5 看门狗定时器(Watchdog Timer)看门狗定时器是一个自由运行的计数器,如下面两图所示,如果不用特定的指令序列对其进行周期性清零,则计数溢出时会触发一个复位信号。看门狗定时器是用来确认程序偏离设定的执行序列这样的事件,例如,程序跑飞。DSP上电后Watchdog总是处于激活状态的,不予处理情况下,它将周期性地触发复位信号,最简单的处理方法是禁用Watchdog,这通过对WDCR寄存器的bit6置1实现。当然,这不是一个明智的决定,因为Wachdog是一种安全措施,在实际的工程中,应当尽量包括进去。Wachdog预分频器可以用来增大Watchdog的溢出周期。逻辑检测位(WDCHK)是另一个安全位域,所有对WDCR寄存器的写操作都必须先向该3位写入“101”,否则写操作将被拒绝,而且一个复位信号将会立即被触发。Wacthdog状态位(WDFLAG)可以用来区分一个正常的上电复位操作(WDFLAG=0)和一个Watchdog复位操作(WDFLAG=1)。注意:软件操作时,改位写1清零。如下图所示。在Watchdog计数器溢出之前,我们可以通过如下的指令序列对其进行清零:EALLOW;SysCtrlRegs.WDKEY = 0x55;SysCtrlRegs.WDKEY = 0xAA;EDIS;2.1.6 系统控制和状态寄存器(SCSR)SCSR寄存器控制复位操作由Watchdog触发(WDENINT=0)还是由外部中断请求触发(WDENINT=1)。WDOVERRIDE位是一个仅能清零的位,一旦向此位写1关闭了该开关,将不能在将其打开。这种情况下,无法再禁用Watchdog。Bit2(WDINTS)是一个标志Wacthdog中断的只读位。下图是SCSR寄存器框图。2.2 应用实验2.2.1 实验基本功能使用LED1LED4进行二进制点灯计数,使用PB1和PB2控制计数的启动和停止。当第一次按下PB1时,LED计数开始;随后按下PB2,计数暂停;再次按下PB1时,LED接着从之前停止的位置开始计数。计数间隔由延时子程序来实现,在延时子程序的每个循环中,清零看门狗定时器,以防其计数溢出产生复位信号。2.2.2 相关引脚分配各个LED和PB所对应的引脚如下表。LED1GPIO9LED2GPIO11LED3GPIO34LED4GPIO49PB1GPIO17PB2GPIO482.2.3 关键程序说明延时子程序delay_loop()对延时子程序关键语句注释说明如下:void delay_loop(long end)long i;static unsigned int run = 0;/ 控制标志for (i = 0; i 12) &0x0000000F; delay_loop(delay+1)*308000); / 100 ms take aprox.308000 loopscounter+; void delay_loop(long end)long i;static unsigned int run = 0;/ control flagfor (i = 0; i end; i+)do EALLOW; SysCtrlRegs.WDKEY = 0x55; SysCtrlRegs.WDKEY = 0xAA;/ service watchdog EDIS;if(FUN1 = 0 & FUN2 = 1) run = 1; / run control code if PB1=0 while(!run);if(FUN2 = 0) run = 0;/ stop executionvoid Gpio_select(void)EALLOW;GpioCtrlRegs.GPAMUX1.all = 0;/ GPIO15 . GPIO0 = General Puropse I/OGpioCtrlRegs.GPAMUX2.all = 0;/ GPIO31 . GPIO16 = General Purpose I/OGpioCtrlRegs.GPBMUX1.all = 0;/ GPIO47 . GPIO32 = General Purpose I/OGpioCtrlRegs.GPBMUX2.all = 0;/ GPIO63 . GPIO48 = General Purpose I/OGpioCtrlRegs.GPCMUX1.all = 0;/ GPIO79 . GPIO64 = General Purpose I/OGpioCtrlRegs.GPCMUX2.all = 0;/ GPIO87 . GPIO80 = General Purpose I/O GpioCtrlRegs.GPADIR.all = 0;GpioCtrlRegs.GPADIR.bit.GPIO9 = 1;/ peripheral explorer: LED LD1 at GPIO9GpioCtrlRegs.GPADIR.bit.GPIO11 = 1;/ peripheral explorer: LED LD2 at GPIO11GpioCtrlRegs.GPBDIR.all = 0;/ GPIO63-32 as inputsGpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;/ peripheral explorer: LED LD3 at GPIO34GpioCtrlRegs.GPBDIR.bit.GPIO49 = 1; / peripheral explorer: LED LD4 at GPIO49GpioCtrlRegs.GPCDIR.all = 0;/ GPIO87-64 as inputsEDIS; void InitSystem(void)EALLOW; SysCtrlRegs.WDCR = 0x0028;/ Watchdog enabled, 4.3 millisecondsSysCtrlRegs.PLLSTS.bit.DIVSEL = 2;SysCtrlRegs.PLLCR.bit.DIV = 10;/ 30MHz * 10 / 2 = 150 MHzSysCtrlRegs.HISPCP.all = 0x0001; SysCtrlRegs.LOSPCP.all = 0x0002;SysCtrlRegs.PCLKCR0.all = 0x0000;SysCtrlRegs.PCLKCR1.all = 0x0000;SysCtrlRegs.PCLKCR3.all = 0x0000;SysCtrlRegs.PCLKCR3.bit

温馨提示

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

评论

0/150

提交评论