基于TMS320VC33系统的硬件设计文档格式.docx

上传人:b****1 文档编号:4685954 上传时间:2023-05-03 格式:DOCX 页数:12 大小:223.71KB
下载 相关 举报
基于TMS320VC33系统的硬件设计文档格式.docx_第1页
第1页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第2页
第2页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第3页
第3页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第4页
第4页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第5页
第5页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第6页
第6页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第7页
第7页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第8页
第8页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第9页
第9页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第10页
第10页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第11页
第11页 / 共12页
基于TMS320VC33系统的硬件设计文档格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于TMS320VC33系统的硬件设计文档格式.docx

《基于TMS320VC33系统的硬件设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于TMS320VC33系统的硬件设计文档格式.docx(12页珍藏版)》请在冰点文库上搜索。

基于TMS320VC33系统的硬件设计文档格式.docx

(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.

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&

shy;

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[0x5555]=0x80;

flash_add[0x5555]=0xaa;

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<

BOOTBLK;

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〈lenth;

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(10);

/*等待10ms,保证Flash写完成*/

第三步:

修改。

CMD文件SECTION段,将烧写程序链接到内部RAM区。

.CMD文件中SECTION段如下:

{/*Flash烧写代码及初始化数据放在TMS320VC33内部RAM*/

text:

LOAD=INTRAM1

RUN=INTRAM1

.cinit>

.stack>

第四步:

运行烧写程序,用户代码即被写入FLASH中,将FLASH的OE引脚跳线连通至的位置,利用CC可以查看FLASH存储器内容是否与要烧写的内部一致,并脱机检验。

FLASH在线编程方法已在用户板上得到了验证,达到了预期的目的。

通过JTAG仿真器对TMS320VC33用户系统外部FLASH的在线编程,可以省去HEX转换工具及EPROM编程器等工具,且具有方便.易行的特点。

该现场在线编程的方法可推广至其它系列DSP用户系统,是DSP开发中需要掌握的一项新技术。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2