F2812DSP的最小系统设计.doc_第1页
F2812DSP的最小系统设计.doc_第2页
F2812DSP的最小系统设计.doc_第3页
F2812DSP的最小系统设计.doc_第4页
F2812DSP的最小系统设计.doc_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

F2812DSP的最小系统设计 摘要:本文主要介绍了基于TI公司生产的TMS320F2812DSP最小系统设计。该最小系统主要包括电源、时钟、复位、外扩SRAM以及JTAG接口的设计,为实现基本的程序演示,还增加了外部中断,基本输入输出、以及异步串行通信模块。 关键词:TMS320F2812;DSP;最小系统;串行通信 61引言 DSP由于运算速度快,具有可编程特性及接口灵活的特点,使得它在电子产品的研制中,发挥着越来越大的作用。采用DSP器件来实现数字信号处理系统更是成了当前的发展趋势。如何以最短的开发周期,开发出适于自己应用的高性能低成本的DSP板,己经成为广大DSP工程技术人员共同关心的问题。 DSP最小系统板硬件设计是本文的主要任务。在介绍TMS320F2812基本特点的基础上,运用DSP技术和硬件电路设计知识进行了DSP最小系统设计,包括电源设计、复位电路设计、时钟电路设计、外扩存储器设计、JTAG接口设计等,为实现基本的程序演示,还增加了外部中断,基本输入输出、以及异步串行通信模块。 本文使用Altium Designer Summer 09设计电路板,绘制电路原理图,并对最小系统的高速PCB板进行了设计。 最后,以自行设计的高速 DSP板为硬件平台,使用CCS3.3软件,编写测试程序。经过多次软硬件调试和测试,验证了DSP最小系统板卡能正常运行,能满足基本信号处理的要求。 2硬件设计 2.1电源设计 在F2812中对上电顺序有严格的要求,而普通的线性稳压芯片达不到要求,所以本文采用了专门的电源管理芯片TPS767D318。TPS767D318为双通道输出的可控电源转换芯片,可以通过控制使能端从而控制电压的输出顺序。TPS767D318的具体硬件设计如图1所示,F2812的供电电压为3.3V和1.8V,上电顺序先后为3.3V、1.8V。设计的基本思想是,先使能3.3V输出,然后利用场效应管BSS138驱动1.8V电的使能端,是芯片产生1.8V电压,从而实现上电顺序的控制。其中的+5V电压为外部电源提供。图1 TPS767D318设计原理图 2.2时钟电路和复位电路设计 时钟电路是时序逻辑电路最基本的组成部分,须要为其提供时钟源,F2812才能正常工作,F2812内部有倍频的PLL电路,在此我们使能锁相环,并且为了提高系统的抗干扰能力,本文使用30M有源晶振为系统提供时钟信号,通过PLL倍频至150MHz,外部有源时钟电路如图2所示。通常DSP正常工作时还需要一个复位电路,本文不采用按键复位,而是采用更高可靠性的复位芯片IMP809L,当外部供电电压下降至2.7V时,系统就会产生复位,复位电路如图3所示。 图2 时钟电路 图3 复位电路 2.3外扩SRAM设计 添加SRAM是为了增加系统的存储空间,在F2812中内部存储空间很小,许多程序要求有较大的存储空间,所以应在电气平台中添加SRAM。F2812中为用户提供了众多外部存储空间,最多可扩展1M*16b的存储空间。 SRAM为静态随机存储器,一般由存储矩阵、地址译码器和读写控制电路组成。本文采用IS61LV12816 SRAM, IS61LV12816有16根数据总线和17根地址总线,最大存储空间为128K*16b。在F2812Z中,可用的外部存储空间为Zone0、Zone1、Zone2、Zone6,其中Zone0、Zone1共用一个片选信号线(44脚),Zone2的片选信号是(88脚),Zone6的片选信号是(133脚),本文将Zone2分配给SRAM,在硬件设计上,将(88脚)连接到IS61LV12816的片选信号()上,同时将DSP的读使能信号线和写使能信号线分别接到IS61LV12816的读、写使能信号线上,实现对IS61LV12816的读写控制。DSP可选配置为微计算机模式或者微处理器模式,IS61LV12816设计电路如图4所示。 图4 IS61LV12816设计原理图 2.4JTAG接口电路设计 为方便程序的调试和下载,须要一个JTAG接口,如图5所示。在程序调试时,须要配合CCS编译环境以及XD510/XD560仿真器配合使用。 图5 JTAG接口电路 2.5RS-232(串口)设计 串行通信接口(SCI)是一个采用发送、接收双线制的异步串行通信接口,即通常所说的UART口,它支持16级的接收发送FIFO,从而降低了串口通信时CPU 的开销。SCI模块支持CPU和其它使用非归零制(NRZ)的外围设备之间的数字通信。在不使用FIFO的情况下,SCI接收器和发送器采用双级缓冲模式,此时SCI接收器和发送器都有独立的使能和中断位,它们可以被设置成独立操作或者同时进行全双工通信模式。 在F2812中有两路串行通信接口(SCI口),本文将SCIB口设计成RS-232口,主要测试与上位机进行通信的功能,电平转换芯片采用美信公司的MAX3232。与上位机通信的接口采用通用的串口DB9,串口通信电路如图6所示。 图6 RS-232硬件设计电路图 2.6GPIO(流水灯)设计 为测试通用输入输出,本文设计了流水灯电路,首先是一个灯亮、灭,然后两个灯亮、灭,如此,灯的数目依次增加,直到8个灯全部点亮,最终灭灯。如图7所示。 图7 流水灯设计电路图 2.7外部中断设计 为测试外部中断,本文设计了按键形式的外部中断源,使用F2812 XINT1中断引脚,如图6所示。 图8 外部中断 3软件(测试程序)设计 在程序测试部分本文实现这样的功能,将上位机与F2812通过串口相连,上位机可以利用串口调试助手发送数据给F2812,当F2812接收到的数据为a时,开启流水灯;每按一次按键,F2812向上位机发送一个数据s,利用串口调试助手可以看到接收的数据,并且关闭流水灯。 3.1系统设置总程序 /*-* * 文 件 名:MinSys.c * * 处 理 器:DSP281x * * 版本: DSP281x C/C+ Header Files V1.20 * * Boot 配置:boot to Zone2 * * 功能描述:F2812最小系统测试 * * 修订日期:2011-06-12 * * 备 注:外部中断、定时、GPIO、SCI * *-*/ #include DSP281x_Device.h / DSP281x头文件 #include DSP281x_Examples.h /DSP281x头文件 void InitGpio(void); /初始化GPIO,复用,方向 void IsrAddr(void); /定义中断服务程序的入口地址 void PieIntEnable(void); /使能PIE级中断 void scib_init(void); /初始化SCIB void scib_send(int a); /发送数据 interrupt void cpu_timer0_isr(void); / TIMER0中断 interrupt void xint1_isr(void); /XINT1中断 interrupt void scibRxFifoIsr(void); /接收中断 Uint16 Count=0;Uint16 Light=0x00ff;Uint16 recveddata=0;void main(void) /*初始化系统控制:*/ InitSysCtrl(); /PLL,看门狗,使能外设时钟 /* 初始化GPIO: */ InitGpio(); /引脚复用,方向 /* 禁止全局中断,并初始化PIE向量表: */ DINT; /禁止全局中断 InitPieCtrl(); /初始化PIE控制寄存器,默认状态为禁止PIE中断,清除中断标志位 IER=0x0000; /禁止CPU中断 IFR=0x0000; /清除中断标志位 InitPieVectTable(); /初始化PIE向量表指针,并使能PIE IsrAddr(); /定义中断服务程序的入口地址 /*设置定时器*/ InitCpuTimers(); /初始化CPU定时器 ConfigCpuTimer(&CpuTimer0, 150, 1000000); /定时1s/* 初始化外设SCIB*/ scib_init(); /*使能中断*/ IER|=M_INT1|M_INT9; /使能CPU级中断 PieIntEnable(); /使能PIE级中断 EINT; / 使能全局中断 ERTM; / 使能全局实时中断,用于DBGM /* IDLE 循环: */ for(;); void InitGpio(void) EALLOW; GpioMuxRegs.GPGMUX.bit.SCITXDB_GPIOG4=1;/使能SCIBTX复用功能 GpioMuxRegs.GPGMUX.bit.SCIRXDB_GPIOG5=1;/使能SCIBRX复用功能 GpioMuxRegs.GPEMUX.bit.XINT1_XBIO_GPIOE0=1; /使能XINT1复用功能 GpioMuxRegs.GPBDIR.all=0xFFFF; /GPIOB设置为输出模式 EDIS; void IsrAddr(void) EALLOW; PieVectTable.XINT1=&xint1_isr;/外部中断1 PieVectTable.RXBINT=&scibRxFifoIsr;/SCIB接收中断 PieVectTable.TINT0=&cpu_timer0_isr;/CPU定时器0中断 EDIS; void PieIntEnable(void) PieCtrlRegs.PIEIER1.bit.INTx7=1; /CPU定时器0 PieCtrlRegs.PIEIER1.bit.INTx4=1;/外部中断1 PieCtrlRegs.PIEIER9.bit.INTx3=1;/ SCIBRX 3.2外部中断、定时、流水灯测试程序 interrupt void xint1_isr(void) scib_send(s); /发送数据s StopCpuTimer0(); /停止定时器 GpioDataRegs.GPBDAT.all=0; /灯灭 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; /灯的数目从1到8交替亮灭 interrupt void cpu_timer0_isr(void) Count+; /计数器加1 GpioDataRegs.GPBDAT.all=Light; /灯亮 Light=1; /亮灯循环左移依次点亮 Delay_s(100); /延时 GpioDataRegs.GPBDAT.all=Light&0xffff; Count%=8; /循环周期到,计数器清零 if(Count=0) Light=0xFFFF; /下一周期循环开始 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; /延时程序void Delay_s(int n)for(int j=0;jn;j+)for(int k=0;k10000;k+); 3.3异步串行通信测试程序 void scib_init(void) ScibRegs.SCIFFTX.all=0xE040;/允许接收,使能FIFO,没有FIFO中断,清除TXFIFINT ScibRegs.SCIFFRX.all=0x2021;/使能FIFO接收,清除RXFFIN ScibRegs.SCIFFCT.all=0x0000;/禁止波特率校验 ScibRegs.SCICCR.all=0x0007;/1个停止位,无校验,禁止自测试,空闲地址模式,字长8位 ScibRegs.SCICTL1.all=0x0003; /复位 ScibRegs.SCICTL2.all=0x0003; ScibRegs.SCIHBAUD=0x0001; /设定波特率 ScibRegs.SCILBAUD=0x00E7; /为 9600bps ScibRegs.SCICTL1.all=0x0023; /退出RESET interrupt void scibRxFifoIsr(void) recveddata=ScibRegs.SCIRXBUF.all;/从缓冲区接收数据 recveddata&=0xFF; /接收数据高8位清零 if(recveddata=a) /如果接收到的数据为a Light=0xFFFF; StartCpuTimer0();/开定时器,流水灯工作 ScibRegs.SCIFFRX.bit.RXFFOVRCLR=1;ScibRegs.SCIFFRX.bit.RXFFINTCLR=1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; void scib_send(int a) ScibRegs.SCITXBUF=(a&0xFF);/向发送缓冲区写数据 while(ScibRegs.SCICTL2.bit.TXRDY!=1);/等待发送成功 4结束语 本文是在学习了D

温馨提示

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

评论

0/150

提交评论