DSP最小系统设计按键加流水灯_第1页
DSP最小系统设计按键加流水灯_第2页
DSP最小系统设计按键加流水灯_第3页
DSP最小系统设计按键加流水灯_第4页
DSP最小系统设计按键加流水灯_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

年4月19日DSP最小系统设计按键加流水灯文档仅供参考DSP最小系统设计报告一、系统设计原理本次设计采用TI公司生产的DSP芯片TMS320F2812和键盘扫描电路进行按键。TMS320F2812系列DSP(数字信号处理器)是TI公司最新推出的数字信号处理器,该系列处理器是基于TMS320C2xx内核的定点数字信号处理器。器件上集成了多种先进的外设,为电机及其它运动控制领域应用的实现提供了良好的平台。同时代码和指令与F24x系列数字信号处理器完全兼容,从而保证了项目或产品设计的可延续性。与F24x系列数字信号处理器相比,F2812系列数字信号处理器提高了运算的精度(32位)和系统的处理能力(达到150MIPS)。该系列数字信号处理器还集成了128KB的Flash存储器,4KB的引导ROM,数字运算表以及2KB的OTPROM,从而大大改进了应用的灵活性。两个事件管理器模块EVA、EVB为电机及功率变换控制提供了良好的控制功能。16通道高性能12位ADC单元提供了两个采样保持电路,能够实现双通道信号同步采样。TMS320F2812系列DSP有以下特点:TMS320F2812有3个独立的片选信号,而且读/写时序可编程,兼容不同速率的外设扩展;经过配置外部接口寄存器,TMS320F2812在访问外部设备时不必额外增加延时等待,既提高了程序的实时性又减少了代码量。TMS320F2812是TI公司系列中功能最为强大的DSP芯片。它是一种32位DSP,片内有128K的FLASH,18K的SRAM,DART.56个I/0,12MAD+l6路输入,指令处理速度高达150MPIS。TMS320F2812的时钟频率是150MHz,即时钟周期是6.67ns。有众多的外设接口,GPIO,SPI,SCIA,SCIB,McBSP,eCAN,SRAM.FLASH,EVA,EVB,ADC。这些外设模块使TMS320F2812很适用于控制领域。二、设计思路 最小系统加上外设电路,外设电路中包含16盏LED灯和2个按键。经过按键来控制LED亮灯的左移和右移。三、最小系统电路模块2.1电源电路TMS320F2812芯片工作时需要的电压有两个部分:+3.3V的Flash电压和+1.8V的内核电压。TMS320F2812对电源很敏感,因此在此能够用电压精度比较搞得电源芯片TPS767D301或者TPS767D319。TPS767D301输入电压为+5V,芯片起震,正常工作之后,能够产生3.3V和1.8V两种电压工DSP使用。2.2晶振电路DSP的时钟使用内部振荡器,在X1/XCLKIN和X2两个引脚之间连接一个石英晶体。2.4TMS320F2812四、外设电路3.1按键电路S1按键接GPIOB0,S2按键接GPIOB1。S1亮灯右移,S2亮灯左移。3.2流水灯电路流水灯电路接GPIOA。五、部分程序/******SRAM.cmd*****/MEMORY{PAGE0:PRAMH0:origin=0x3f8000,length=0x001000PAGE1:/*SARAM*/RAMM0:origin=0x000000,length=0x000400RAMM1:origin=0x000400,length=0x000400/*PeripheralFrame0:*/DEV_EMU:origin=0x000880,length=0x000180FLASH_REGS:origin=0x000A80,length=0x000060CSM:origin=0x000AE0,length=0x000010XINTF:origin=0x000B20,length=0x000020CPU_TIMER0:origin=0x000C00,length=0x000008CPU_TIMER1:origin=0x000C08,length=0x000008 CPU_TIMER2:origin=0x000C10,length=0x000008 PIE_CTRL:origin=0x000CE0,length=0x000020PIE_VECT:origin=0x000D00,length=0x000100/*PeripheralFrame1:*/ECAN_A:origin=0x006000,length=0x000100ECAN_AMBOX:origin=0x006100,length=0x000100/*PeripheralFrame2:*/SYSTEM:origin=0x007010,length=0x000020SPI_A:origin=0x007040,length=0x000010SCI_A:origin=0x007050,length=0x000010XINTRUPT:origin=0x007070,length=0x000010GPIOMUX:origin=0x0070C0,length=0x000020GPIODAT:origin=0x0070E0,length=0x000020ADC:origin=0x007100,length=0x000020EV_A:origin=0x007400,length=0x000040EV_B:origin=0x007500,length=0x000040SPI_B:origin=0x007740,length=0x000010SCI_B:origin=0x007750,length=0x000010MCBSP_A:origin=0x007800,length=0x000040/*CSMPasswordLocations*/CSM_PWL:origin=0x3F7FF8,length=0x000008/*SARAM*/DRAMH0:origin=0x3f9000,length=0x001000}SECTIONS{/*Allocateprogramareas:*/.reset:>PRAMH0,PAGE=0.text:>PRAMH0,PAGE=0.cinit:>PRAMH0,PAGE=0/*Allocatedataareas:*/.stack:>RAMM1,PAGE=1.bss:>DRAMH0,PAGE=1.ebss:>DRAMH0,PAGE=1.const:>DRAMH0,PAGE=1.econst:>DRAMH0,PAGE=1.sysmem:>DRAMH0,PAGE=1/*AllocatePeripheralFrame0RegisterStructures:*/DevEmuRegsFile:>DEV_EMU,PAGE=1FlashRegsFile:>FLASH_REGS,PAGE=1CsmRegsFile:>CSM,PAGE=1XintfRegsFile:>XINTF,PAGE=1CpuTimer0RegsFile:>CPU_TIMER0,PAGE=1CpuTimer1RegsFile:>CPU_TIMER1,PAGE=1CpuTimer2RegsFile:>CPU_TIMER2,PAGE=1PieCtrlRegsFile:>PIE_CTRL,PAGE=1PieVectTable:>PIE_VECT,PAGE=1/*AllocatePeripheralFrame2RegisterStructures:*/ECanaRegsFile:>ECAN_A,PAGE=1ECanaMboxesFile:>ECAN_AMBOXPAGE=1/*AllocatePeripheralFrame1RegisterStructures:*/SysCtrlRegsFile:>SYSTEM,PAGE=1SpiaRegsFile:>SPI_A,PAGE=1SciaRegsFile:>SCI_A,PAGE=1XIntruptRegsFile:>XINTRUPT,PAGE=1GpioMuxRegsFile:>GPIOMUX,PAGE=1GpioDataRegsFile:>GPIODATPAGE=1AdcRegsFile:>ADC,PAGE=1EvaRegsFile:>EV_A,PAGE=1EvbRegsFile:>EV_B,PAGE=1ScibRegsFile:>SCI_B,PAGE=1McbspaRegsFile:>MCBSP_A,PAGE=1/*CSMPasswordLocations*/CsmPwlFile:>CSM_PWL,PAGE=1}/******************************************************************************文件名:DSP28_SysCtrl.c**功能:对2812的系统控制模块进行初始化*****************************************************************************/#include"DSP28_Device.h"/******************************************************************************名称:InitSysCtrl()**功能:该函数对2812的系统控制寄存器进行初始化*****************************************************************************/voidInitSysCtrl(void){Uint16i;EALLOW;SysCtrlRegs.WDCR=0x0068; //禁止看门狗模块//初始化PLL模块,如果外部晶振为30M,则SYSCLKOUT=30*10/2=150MHzSysCtrlRegs.PLLCR=0xA;for(i=0;i<5000;i++){} //延时,使得PLL模块能够完成初始化操作//高速时钟预定标器和低速时钟预定标器,产生高速外设时钟HSPCLK和低速外设时钟LSPCLKSysCtrlRegs.HISPCP.all=0x0001;//HSPCLK=150/2=75MHzSysCtrlRegs.LOSPCP.all=0x0002; //LSPCLK=150/4=37.5MHz EDIS; }/******************************************************************************文件名:DSP28_Gpio.c**功能:2812通用输入输出口GPIO的初始化函数*****************************************************************************/#include"DSP28_Device.h"/******************************************************************************名称:InitGpio()**功能:初始化引脚。*****************************************************************************/voidInitGpio(void){EALLOW;GpioMuxRegs.GPAMUX.all=0x0000;//将GPIOA引脚设置位I/O口GpioMuxRegs.GPADIR.all=0xFFFF;//引脚方向为输出GpioMuxRegs.GPBMUX.bit.GPIOB0=0;//将GPIOB0引脚设置位I/O口GpioMuxRegs.GPBMUX.bit.GPIOB1=0;//将GPIOB0引脚设置位I/O口GpioMuxRegs.GPBDIR.bit.GPIOB0=0;//引脚方向为输入GpioMuxRegs.GPBDIR.bit.GPIOB1=0;//引脚方向为输入GpioDataRegs.GPADAT.all=0x0001;//引脚初始化为GPIOA0为高电平,D1亮EDIS;}/******************************************************************************文件名:Gpio_LED_KEY.c**功能:经过按键对LED灯进行控制,按S1亮灯右移,按S2亮灯左移。*****************************************************************************/#include"DSP28_Device.h"/******************************************************************************名称:main()**功能:经过GPIOB1和B0来获取键值,经过GPIOA来控制LED亮灯移动。*

温馨提示

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

评论

0/150

提交评论