TMSVC系统的硬件设计.docx
- 文档编号:28768034
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:10
- 大小:23.82KB
TMSVC系统的硬件设计.docx
《TMSVC系统的硬件设计.docx》由会员分享,可在线阅读,更多相关《TMSVC系统的硬件设计.docx(10页珍藏版)》请在冰豆网上搜索。
TMSVC系统的硬件设计
封面
作者:
PanHongliang
仅供个人学习
基于TMS320VC33系统的硬件设计
[作者:
周文 和敬涵 毛志芳 转贴自:
微计算机信息 点击数:
79 更新时间:
2008-11-11
TheHardwareDesignofTMS320VC33System
Abstract:
ThispaperintroducesthehardwaredesignmethodoftheminimalsystemaboutTMS320VC33whichisthefloatDSPchip,accordingtoitsstructure.ItalsointroducesthecircuitsaboutTiming、Reset、JTAGEmulationandMemoryInterfacingcombiningwithpracticalapplication.
Keywords:
Reset,Timing,JTAGEmulation,Boot.
摘要:
本文针对浮点DSP芯片TMS320VC33芯片的结构特点,介绍了该芯片最小系统硬件电路设计的方法,并结合实际应用情况,介绍了相关的时钟电路、复位电路、JTAG仿真接口电路、外围存储器接口电路以及Boot的设计。
关键词:
复位,时钟,JTAG仿真,Boot。
引言
TMS320C3X系列是隶属TMS320家族的一个低价位32位浮点DSP。
目前主要应用于数字化音频、视频会议、工控和机器人技术等方面,还可应用于电力系统在线监测方面。
其中VC33的最高处理速度为150MFLOPS,其主要特点和组成有:
(1)高品质的浮点DSP,指令周期为13ns\17ns,处理速度为150MFLOPS\120MFLOPS。
(2)低功耗(<200mw@150MFLOPS)(3)×5PLL时钟发生器(4)34K×32bit片内RAM(5)32位指令字,24位地址线(6)支持Bootloader,一个串口,两个32位定时器和DMA。
(7)八个扩展寄存器,R0~R7。
(8)双电压供电,1.8V内核电压和3.3V的I/O电压。
(9)支持JTAG调试标准,四个简单、高效的预译码信号。
本文根据实际电路设计的经验,介绍了VC33系统的硬件设计。
1时钟电路
VC33的时钟发生器允许设计者选择时钟源:
一是在XlN和XOUT之间接一晶振来启动内部晶振,EXTCLK接地。
二是将外部时钟直接接到EXTCLK管脚,XOUT悬空,XlN接地。
VC33的时钟发生器包括芯片内部的晶振和锁相环电路(PLL),PLL电路在硬件上可自行设置。
VC33的CPU有两个时钟模式选择引脚CLKMD0和CLKMD1,可将CLKMD0和CLKMD1引脚通过10k上拉电阻连接到电源,使CLKMD0和CLKMD1都为1。
具体电路图如文献[1]中提到如图1所示。
2复位电路
为了使系统能被复位信号正确初始化,参考文献[2]中提到复位信号的脉冲宽度必须至少为10个H1周期以上,TMS320VC33-150指令周期为13ns,则复位时间至少为10*13=130ns。
同时要考虑到系统振荡器达到稳定工作状态至少需要20ms,因此复位电路需要产生100~200
ms低电平复位脉冲。
具体复位电路如图2所示,具备手动和自动复位功能。
取R=100kΩ,c=4.7uF时,非门74ls14最大输入低电平为1V。
t=-RC*㏑(1-V/Vcc)=-100*4.7㏑(1-1/5)=105ms。
由此可知该复位电路可以满足TMS320VC33最小系统复位的要求。
3JTAG仿真接口
VC33包含一个专门仿真口来支持由IEEE1149.1标准规范的JTAG仿真,该端口通过仿真器直接访问,这种设计极大方便了VC33仿真软件的调试。
为了能与仿真器进行通信,所设计的PCB板上应有14脚JTAG仿真头,14脚的JTAG仿真头信号及管脚位置如图3所示。
参考文献[3]中提到当仿真头和JTAG目标芯片之间的距离超过6英寸时,仿真信号TMS、TDI、TDO和TCK_RET要加缓冲,同时引脚EMU0、EMU1、TMS、TDI应该加上拉电阻连接到电源上,以保证仿真信号传输的需要。
若距离小于6英寸,则不必加缓冲。
下图4是一个不加缓冲的例子,其中的EMUO和EMUI信号必须通过上拉电阻连接到电源上,提供少于10μs的信号上升时间,其中上拉电阻R1和R2可取4.7kΩ。
4存储器的扩展
VC33具有16M×32bit的可寻址存储空间,由四个独立可选择的地址空间组成,分别是000000h–3FFFFFh、400000h–7FFFFFh
800000h–BFFFFFh、C00000h–FFFFFFh。
它的片内存储器只有34K×32bit的RAM,为了满足实际应用的需要,为此扩展数据存储器两片IS61LV25616AL和一片程序存储器AT29LV1024。
下图5是VC33与存储器的接口设计。
在图5中,采用一片地址译码器74LS138来产生数据存储器和程序存储器的片选地址。
从图5中可以看出数据存储器和程序存储器的地址分别为:
0440000h~047FFFFh、400000h~40FFFFh。
数据存储器IS61LV25616AL的低8位控制、高8位控制和输出使能都接地。
程序存储器AT29LV1024的输出使能接地。
5Boot的设计
6结论
以上简单介绍了TMS320VC33系统的硬件设计,其中应该注意的几个问题如下:
(1)时钟电路采用内部晶振可以节省电路板空间和降低系统损耗,在电路配置时应注意靠近VC33,引线要短而粗,采用的电容要性能稳定,容量值准确,且远离发热的元器件。
采用外部时钟时从抗干扰考虑,应该在晶振的电源端和时钟输出端加一磁珠,电源和地之间加去耦电容,在尽可能的情况下,用地线包围振荡电路,晶振外壳接地。
(2)VC33片内不自带看门狗电路,如有必要时复位电路设计时可以采用一片IMP706P芯片配置成看门狗电路。
(3)VC33中一些管脚不用时,应该将其通过上拉电阻接电源或通过下拉电阻接地。
参考文献
1.TMS320VC33DigitalSignalProcessor(Rev.E),TexasInstrumentsIncorporated.
LiteratureNumber:
SPRS087E,February1999−RevisedJanuary2004.
2.TMS320C3xGeneral-PurposeApplicationsUser’sGuide,TexasInstrumentsIncorporated.
LiteratureNumber:
SPRU194,January1998.
3.JTAG/MPSDEmulationTechnicalReference,TexasInstrumentsIncorporated.
LiteratureNumber:
SPDU079A,December1994.
作者简介:
周文,男,1978年3月出生,北京交通大学电气工程学院,硕士研究生 研究方向:
电能质量在线监测装置的研制
通信地址:
北京交通大学557信箱 邮编:
100044
DSP系统应用中FLASH在线编程方法
介绍了在TI公司TMS320VC33DSP应用系统中,通过JTAG口对DSP外部FLASH存储器实现在线编程的方法,给出了DSP系统加电后的自动装载运行。
关键词:
DSPJTAGFLASH存储器在线编程Bootload
FLASH存储器是一种高密度。
非易失性的电可擦写存储器,存储量大,使用方便,适用于低功耗。
高性能的系统。
在高速DSP应用系统中,为了充分发挥DSP性能,在加电后需要将用户代码装载到高速RAM存储器中运行。
下面介绍SST29LE020型FLASH存储器的烧写方法,以及如何实现TMS320VC33上电后用户程序的自举引导(Bootload)。
1SST29LE020的特点及操作
SST29LE020是SST公司生产的一种256K×8FLASH,它有10万次以上的擦写寿命,其内部分为2048个页面,每个页面128字节,页面写周期为5ms。
如果页面中一个数据需要改变,则这个分区的所有数据必须重新装入。
(TheSST29LE020are256Kx8CMOSPage-WriteEEPROMmanufacturedwithSST'sproprietary,highperformanceCMOSSuperFlashtechnology.Thesplit-gatecelldesignandthickoxidetunnelinginjectorattainbetterreliabilityandmanufacturabilitycomparedwithalternateapproaches.TheSST29LE020writewithasinglepowersupply.InternalErase/Programistransparenttotheuser.TheSST29LE020conformtoJEDECstan­。
dardpinoutsforbyte-widememories.)FLASH支持软件数据保护功能(SoftwareDataProtection),当执行三字节DSP写指令时,保护功能将自动加上,任何后续的写操作必须带上三字节DSP写指令。
SST29LE020的读操作与传统EPROM读操作一致;在进行数据编程操作时,它支持内部定时(InternalTimer).数据查询(Data#Polling).跳变位(ToggleBit)三种方式,以测试内部编程操作是否完成。
FLASH软件擦除指令为6字节加载指令,该指令执行后,最多等待20ms整个芯片便被擦除,即将FLASH每个数据位都恢复为1状态的全FF状态。
SST29LE020软件指令序列可在SST公司的数据手册上查到,在FLASH编程之前,需对FLASH进行擦除,擦除操作需要六个总线周期。
FLASH页面写操作在使用内部定时方式时的流程。
2TMS320VC33简介
TMS320VC33是美国TI公司推出的TMS320C3X系列的32位浮点数字信号处理器,它是在TMS320C31浮点DSP的基础上开发的一个价格更低的DSP,该产品具有高速。
低功耗。
低成本。
易于开发等显著优点。
TMS320VC33采用内部1.8V,外部3.3V供电,因而它的功耗比原有型号TMS320C31的功耗降低了大约一个整量级,而且能支持高达150M/FLOPS的运行速率。
其主要特性如下:
CPU是32bit的高性能CPU:
可进行16/32b整数和32/40b的浮点操作;内含8个扩展精度寄存器;有2个地址发生器。
8个辅助寄存器和2个辅助寄存器算术单元(ARAU)。
片内存储器为32bit指令字。
24bit地址线。
34K×32b(1.1Mb)的双静态RAM。
外围接口具有启动程序装载功能;内含5倍频的锁相环(PLL)时钟发生器;片内存储器可映射外设,其中包括一个串行口。
两个32bit定时器和一个DMA;具有四个内部译码页选,可大大简化TMS320VC33与I/O及存储器的接口。
3TMS320VC33程序引导功能
TMS320VC33具有两种存储器映射方式,即MP(MicroprocessorMode)方式和MC/BL(Microcomputer/BootloaderMode)方式,两种方式下中断向量的位置不同。
常用的是MC方式。
在该方式下,MCBL/MP引脚接高电平,内部ROM被映射到000~FFF之间。
这段ROM中今有器件生产厂家固化的引导程序(BootLoader),该引导程序可以将DSP实时运行的程序和数据从外部低速ROM或串行口装入到高速RAM中。
TMS320VC33复位后即运行内部固化的引导程序,引导程序通过查询四个中断引脚来确定装入方式。
这些引脚为低电平有效,查询顺序依次为INT3.INT0.INT1.INT2;当INT3有效时,为串行装入方式;当INT0有效时,从外部地址0x001000处装入(BOOT1);当INT1有效时,从外部地址0x400000处装入(BOOT2);当INT2有效时,从外部地址0xfff000处装入(BOOT3)。
TMS320VC33具有四个快速页选信号,用于对外部地址空间寻址。
使用外部存储器装入数据时,外部存储器数据头位置需包含以下信息:
(1)外部存储器宽度(8/16/32位);
(2)程序代码块的长度;
(3)装入数据的目的起始地址;
(4)存储器访问的定时控制参数。
头信息之间是用户的程序代码,程序代码按低位在前。
高位在后的顺序排列。
程序代码之后,必须有一个全零字,即0x00000000,用以指示引导程序用户程序代码已结束。
引导完成后,即从装入的目的地址处开始执行用户程序。
4FLASH在线编程方法
TMS320VC33的调试使用CCforC3x/4X(CodeCOmposer)集成编程环境,通过JTAG头仿真用户板,用户代码先放在外部RAM中调试,调试成功后,就可以将用户程序代码写入FLASH了。
下面介绍在并行装入BOOT2方式下的在线编程方法。
SST29LE020与TMS320VC33的连接方式比较简单,FLASH片选CE引脚直接连接至TMS320VC33的PAGE1引脚;FLASH的输出使能OE引脚的最简单的处理方法是采用跳线方式(当向FLASH写入数据时,接高电平;通常情况下,接地)。
在调试用户程序时,需根据用户板的存储器空间分配制作CMD文件,假设用户扩展的外部RAM为32bit,起始地址为0x00c00000,长度为32K;外部FLASH起始地址为0x00400000(使用BOOT2方式),长度为256K。
其CMD文件如下:
MEMORY
{
INTRAM1:
origin=0x00800000,length=0x00008000
INTRAM2:
origin=0x00809800,length=0x000007c1
VEC:
origin=0x00809fc1,length=0x3f
EXTRAM:
origin=0x00c00000,length=0x00008000/*32k*/
FLASH:
origin=0x00400000,length=0x00040000/*256*/
}
SECTIONS
{/*用户程序代码及初始化数据放在外部RAM*/
.vectors>VEC/*VC33规定的中断向量地址*/
.text:
LOAD=EXTRAM
.cinit>EXTRAM
.data:
RUN=EXTRAM
.bss:
RUN=INTRAM2
.stack>INTRAM1
}
第一步:
在CC下编译后,装入用户。
OUT文件,用户程序代码即被写入EXRAM空间。
第二步:
依据TMS320VC33的BOOT格式,并根据CC产生的用户。
MAP文件找出程序入口地址。
各加载块的入口地址以及长度,编写FLASH烧写文件。
示例源程序清单如下:
#defineMEM_WIDE0x00000008/*Flash存储器宽度*/
#defineCG_REGISTER0x000010c8/*全局存储器配置参数*/
#defineENTER_POINT0x00c00064/*程序代码入口地址*/
volatileint*flash_add=(volatileint*)0x400000。
/*外部Flash的映射地址*/
#defineBOOTORG0xc00064/*.MAP文件中的程序入口地址
#defineBOOTBLK3/*.MAP文件中的加载块数量*/
#defineBOOTSRC1_ADD0x00809fc1/*第1个加载块地址*/
volatileint*bootblk1_add=(volatileint*)0x00809fc1。
#defineBOOTBLK1_LEN0x3a/*第1个加载块长度*/
#defineBOOTSRC2_ADD0x00C00000/*第2个加载块地址*/
volatileint*bootblk2_add=(volatileint*)0x00c00000。
#defineBOOTBLAK2_LEN0xa3/*第2个加载块长度*/
#defineBOOTSRC3_ADD0x00C000a3/*第3个加载块地址*/
volatileint*bootblk3_add=(volatileint*)0x00c000a3。
#defineBOOTBLK3_LEN0x17/*第3个加载块长度*/
////////////////////////////////////////////
unsignedintflashaddnum,bytenum。
/*定义Flash地址及页面字节数变量*/
voidwaite(intms)/****软件1ms子程序****/
{…………;}
voidsdp_flash()/******软件数据保护子程序*********/
{flash_add[0x5555]=0xaa。
/*3字节芯片SDP指令*/
flash_add[0x2aaa]=0x55。
flash_add[0x5555]=0xa0。
}
voidera_flash()/******擦除芯片子程序*********/
{flash_add[0x5555]=0xaa。
/*6字节芯片擦除指令*/
flash_add[0x2aaa]=0x55。
flash_add[0x5555]=0x80。
flash_add[0x5555]=0xaa。
flash_add[0x2aaa]=0x55。
flash_add[0x5555]=0x10。
waite(20)。
/*20ms等待芯片擦除完成*/
}
voidwrite_flash(intbootdata)/***写一个int型数据***/
{unsignedinti。
for(i=0。
i<3。
i++)/*一个int型数分成四个字节写入*/
{if(bytenum==0)/*如果是页面第1个字节,先写SDP指令*/
{sdp_flash()。
}
flash_add[flashaddnum]=bootdata。
/*向Flash地址写一个字节*/
flashaddnum++。
/*Flash地址加1*/
bytenum++。
/*页面字节加1*/
if(bytenum>127)/*一个页面写完,页面字节置0,等待11ms*/
{bytenum=0。
waite(11)。
}
bootdata>>=8。
/*待写数据右移8位*/
}
}
voidmain()/***主程序***/
{unsignedinti,j,lenth。
bytenum=0。
flashaddnum=0。
/*Flash地址及页面字节数置*/
waite
(1)。
/*等待1ms*/
era_flash()。
/*擦除Flash芯片*/
write_flash(MEM_WIDE)。
/*写外部Flash存储器宽度*/
write_flash(CG_REGISTER)。
/*写寄存器配置参数*/
write_flash
(1)。
/*第1个boot的数据长度为1*/
write_flash()ENTER_POINT。
/*写入boot的目的地址*/
write_flash(0)。
/*第1个boot的数据*/
for(i=0。
i i++)/*分别烧写需要boot的数据块*/ {if(i==0)/*每个数据块烧写的起起2字节分别是长度和源地址*/ {lenth=BOOTBLK1_LEN。 write_flash(BOOTHBLK1_LEN)。 write_flash(BOOTSRC1_ADD)。 } elseif(i==1) {lenth=BOOTBLK2_LEN。 write_flash(BOOTBLK2_LEN)。 write_flash(BOOTSRC3_ADD)。 } else{。 } for(j=0。 j j++)/*将数据块内容写入Flash*/ {if(i==0){write_flashbootblk1_add[j]}。 } elseif(i==1){write_flash(bootblk2_add[j])。 } elseif(i==2){write_flash(bootblk3_add[j])。 } else{。 } } } write_flash(0)。 /*代码最后位置写全零*/ write(10)。 /*等待10ms,保证Flash写完成*/ } 第三步: 修改。 CMD文件SECTION段,将烧写程序链接到内部RAM区。 。 CMD文件中SECTION段如下: SECTIONS {/*Flash烧写代码及初始化数据放在TMS320VC33内部RAM*/ .text: LOAD=INTRAM1 .bss: RUN=INTRAM1 .cinit>INTRAM1 .stack>INTRAM1 } 第四步: 运行烧写程序,用户代码即被写入FLASH中,将FLASH的OE引脚跳线连通至的位置,利用CC可以查看FLASH存储器内容是否与要烧写的内部一致,并脱机检验。 FLASH在线编程方法已在用户板上得到了验证,达到了预期的目的。 通过JTAG仿真器对TMS320VC33用户系统外部FLASH的在线编程,可以省去HEX转换工具及EPROM编程器等工具,且具有方便。 易行的特点。 该现场在线编程的方法可推广至其它系列DSP用户系统,是DSP开发中需要掌握的一项新技术。 版权申明 本文部分内容,包括文字、图片、以及设计等在网上搜集整理。 版权为潘宏亮个人所有 Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership. 用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。 除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。 Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawand
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TMSVC 系统 硬件 设计