收藏 分销(赏)

DSP最小专业系统设计方案报告.doc

上传人:a199****6536 文档编号:2957079 上传时间:2024-06-12 格式:DOC 页数:12 大小:568.54KB 下载积分:8 金币
下载 相关 举报
DSP最小专业系统设计方案报告.doc_第1页
第1页 / 共12页
DSP最小专业系统设计方案报告.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
DSP最小系统汇报 一. TMS320F2812最小系统 1.1 TMS320F2812最小系统 TMS320F2812最小系统图1-1所表示。电路关键由TMS320F2812芯片、30MHz有源晶振和电路电源和电容、电阻电感等少许器件组成。另外,考虑到DSP在下载时需要下载端口,所以在最小系统上加一个14脚JTAG仿真烧写口。该最小系统不管是在仿真模式下还是在实时模式下,全部能够正常运行。通常来说,在设计电源而过程中,模拟地和数字地最终经过电感连接起来,电源和地经过电容连接起来。 图1-1 TMS320F2812最小系统 1.2 电源电路设计 TMS320X2812工作时所要求电压分为两部分:3.3VFlash电压和1.8V内核电压。TMS320X2812对电源很敏感,所以在此推荐选择电压精度比较高电源芯片TPS767D301或TPS767D318。TPS767D301芯片输入电压为+5V,芯片起振,正常工作以后,能够产生3.3V和1.8V两种电压供DSP使用。 图1-2 电源电路 1.3 JTAG下载口电路及复位电路 考虑到TPS767D301芯片能够本身产生复位信号,此复位信号可直接供DSP芯片使用,所以不用为DSP设置专门复位芯片。复位芯片和DSP芯片连接如上电路图。而对于JTAG电路,在实际设计过程中,需要考虑到JTAG下载口抗干扰性,在和DSP相连接端口需要采取上拉设计,JTAG电路以下图所表示。 图1-3-1 JTAG下载口电路 图1-3-2 复位电路 二.外设电路 我设计流水灯电路使用了GPIOA0到GPIOA4五个端口,其中GPIOA0到GPIOA45个IO口输出连接LED5个灯。最终试验结果:5个LED灯被循环点亮。 图2-1 LED流水灯 三. 程序 3.1 CMD文件 MEMORY { PAGE 0 : PRAMH0 : origin = 0x3f8000, length = 0x001000 PAGE 1 : /* SARAM */ RAMM0 : origin = 0x000000, length = 0x000400 RAMM1 : origin = 0x000400, length = 0x000400 /* Peripheral Frame 0: */ DEV_EMU : origin = 0x000880, length = 0x000180 FLASH_REGS : origin = 0x000A80, length = 0x000060 CSM : origin = 0x000AE0, length = 0x000010 XINTF : origin = 0x000B20, length = 0x000020 CPU_TIMER0 : origin = 0x000C00, length = 0x000008 CPU_TIMER1 : origin = 0x000C08, length = 0x000008 CPU_TIMER2 : origin = 0x000C10, length = 0x000008 PIE_CTRL : origin = 0x000CE0, length = 0x000020 PIE_VECT : origin = 0x000D00, length = 0x000100 /* Peripheral Frame 1: */ ECAN_A : origin = 0x006000, length = 0x000100 ECAN_AMBOX : origin = 0x006100, length = 0x000100 /* Peripheral Frame 2: */ SYSTEM : origin = 0x007010, length = 0x000020 SPI_A : origin = 0x007040, length = 0x000010 SCI_A : origin = 0x007050, length = 0x000010 XINTRUPT : origin = 0x007070, length = 0x000010 GPIOMUX : origin = 0x0070C0, length = 0x000020 GPIODAT : origin = 0x0070E0, length = 0x000020 ADC : origin = 0x007100, length = 0x000020 EV_A : origin = 0x007400, length = 0x000040 EV_B : origin = 0x007500, length = 0x000040 SPI_B : origin = 0x007740, length = 0x000010 SCI_B : origin = 0x007750, length = 0x000010 MCBSP_A : origin = 0x007800, length = 0x000040 /* CSM Password Locations */ CSM_PWL : origin = 0x3F7FF8, length = 0x000008 /* SARAM */ DRAMH0 : origin = 0x3f9000, length = 0x001000 } SECTIONS { /* Allocate program areas: */ .reset : > PRAMH0, PAGE = 0 .text : > PRAMH0, PAGE = 0 .cinit : > PRAMH0, PAGE = 0 /* Allocate data areas: */ .stack : > RAMM1, PAGE = 1 .bss : > DRAMH0, PAGE = 1 .ebss : > DRAMH0, PAGE = 1 .const : > DRAMH0, PAGE = 1 .econst : > DRAMH0, PAGE = 1 .sysmem : > DRAMH0, PAGE = 1 /* Allocate Peripheral Frame 0 Register Structures: */ DevEmuRegsFile : > DEV_EMU, PAGE = 1 FlashRegsFile : > FLASH_REGS, PAGE = 1 CsmRegsFile : > CSM, PAGE = 1 XintfRegsFile : > XINTF, PAGE = 1 CpuTimer0RegsFile : > CPU_TIMER0, PAGE = 1 CpuTimer1RegsFile : > CPU_TIMER1, PAGE = 1 CpuTimer2RegsFile : > CPU_TIMER2, PAGE = 1 PieCtrlRegsFile : > PIE_CTRL, PAGE = 1 PieVectTable : > PIE_VECT, PAGE = 1 /* Allocate Peripheral Frame 2 Register Structures: */ ECanaRegsFile : > ECAN_A, PAGE = 1 ECanaMboxesFile : > ECAN_AMBOX PAGE = 1 /* Allocate Peripheral Frame 1 Register Structures: */ SysCtrlRegsFile : > SYSTEM, PAGE = 1 SpiaRegsFile : > SPI_A, PAGE = 1 SciaRegsFile : > SCI_A, PAGE = 1 XIntruptRegsFile : > XINTRUPT, PAGE = 1 GpioMuxRegsFile : > GPIOMUX, PAGE = 1 GpioDataRegsFile : > GPIODAT PAGE = 1 AdcRegsFile : > ADC, PAGE = 1 EvaRegsFile : > EV_A, PAGE = 1 EvbRegsFile : > EV_B, PAGE = 1 ScibRegsFile : > SCI_B, PAGE = 1 McbspaRegsFile : > MCBSP_A, PAGE = 1 /* CSM Password Locations */ CsmPwlFile : > CSM_PWL, PAGE = 1 } 3.2 系统初始化函数 #include "DSP28_Device.h" //--------------------------------------------------------------------------- // InitSysCtrl: //--------------------------------------------------------------------------- // This function initializes the System Control registers to a known state. // void InitSysCtrl(void) { Uint16 i; EALLOW; SysCtrlRegs.WDCR = 0x0068; //严禁看门狗模块 SysCtrlRegs.PLLCR = 0xA; for(i= 0; i< 5000; i++){} //延时,使得PLL模块能够完成初始化操作 //高速时钟预定标器和低速时钟预定标器,产生高速外设时钟HSPCLK和低速外设时钟LSPCLK SysCtrlRegs.HISPCP.all = 0x0001; SysCtrlRegs.LOSPCP.all = 0x0002; EDIS; } 3.3GPIO初始化函数 // // TMDX ALPHA RELEASE // Intended for product evaluation purposes // //########################################################################### // // FILE: DSP28_Gpio.c // // TITLE: DSP28 General Purpose I/O Initialization & Support Functions. // //########################################################################### // // Ver | dd mmm yyyy | Who | Description of changes // =====|=============|======|=============================================== // 0.55| 06 May | L.H. | EzDSP Alpha Release // 0.56| 20 May | L.H. | No change // 0.57| 27 May | L.H. | No change //########################################################################### #include "DSP28_Device.h" //--------------------------------------------------------------------------- // InitGpio: //--------------------------------------------------------------------------- // This function initializes the Gpio to a known state. // void InitGpio(void) { EALLOW; GpioMuxRegs.GPAMUX.bit.PWM1GPIOA0 = 0; GpioMuxRegs.GPADIR.bit.GPIOA0 = 1; GpioMuxRegs.GPAMUX.bit.PWM2GPIOA1 = 0; GpioMuxRegs.GPADIR.bit.GPIOA1= 1; GpioMuxRegs.GPAMUX.bit.PWM3GPIOA2= 0; GpioMuxRegs.GPADIR.bit.GPIOA2= 1; GpioMuxRegs.GPAMUX.bit.PWM4GPIOA3= 0; GpioMuxRegs.GPADIR.bit.GPIOA3= 1; GpioMuxRegs.GPAMUX.bit.PWM5GPIOA4= 0; GpioMuxRegs.GPADIR.bit.GPIOA4= 1; EDIS; } 3.4 主函数 #include "DSP28_Device.h" void main(void) { int kk=0; InitSysCtrl(); //初始化系统函数 DINT; IER=Ox0000; //严禁CPU中止 IFR=Ox0000; //清除CPU中止标志 InitPieCtrl(); //初始化PIE控制寄存器 InitPieVectTable(); //初始化PIE中止向量表 InitGpio(); //初始化GPIO口 while(1) { GpioDataRegs.GPACLEAR.bit.GPIOA0 = 1; //PWM1引脚输出低电平,LED1灯亮 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPASET.bit.GPIOA0 = 1; //PWM1引脚输出高电平,LED1灯灭 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPACLEAR.bit.GPIOA1 = 1; //PWM2引脚输出低电平,LED2灯亮 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPASET.bit.GPIOA1 = 1; //PWM2引脚输出高电平,LED2灯灭 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPACLEAR.bit.GPIOA2 = 1; //PWM3引脚输出低电平,LED3灯亮 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPASET.bit.GPIOA2 = 1; //PWM3引脚输出高电平,LED3灯灭 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPACLEAR.bit.GPIOA3 = 1; //PWM4引脚输出低电平,LED4灯亮 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPASET.bit.GPIOA3 = 1; //PWM4引脚输出高电平,LED4灯灭 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPACLEAR.bit.GPIOA4 = 1; //PWM5引脚输出低电平,LED5灯亮 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 GpioDataRegs.GPASET.bit.GPIOA4 = 1; //PWM5引脚输出高电平,LED5灯灭 for(kk=0;kk<100;kk++) delay_loop(); //延时保持 } } void delay_loop() { short i; for(i=0;i<30000;i++){} }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服