当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]TMS320VC5409 是TI公司推出的第一代的高性能、低价位、低功耗数字信号处理器(DSP)。与现在流行的TMS320C5409相比,性能提高了60%,功耗效率提高了 50%。它的应用对象大多

TMS320VC5409 是TI公司推出的第一代的高性能、低价位、低功耗数字信号处理器(DSP)。与现在流行的TMS320C5409相比,性能提高了60%,功耗效率提高了 50%。它的应用对象大多是要求能脱机运行的内嵌式系统,如机顶盒(STB)、个人数字助理(PDA)和数字无线通信等。闪烁存储器(FLASH MEMORY)是可以在线电擦写、掉电后信息不丢失的存储器。FLASH与EPROM相比,具有更高的性能价格比,而且体积小、功耗低、擦写速度快、使用比较方便。因此,采用FLASH存储程序和固定数据是一种比较好的选择。AMD公司的Am29LV400B FLASH可以直接与DSP相接。

 


1 Am29LV400B的主要特点及编程方法

Am29AL400B是AMD公司新推出的256K×16位产品,具有以下主要特点:

(1)支持单电源操作,可分为满负荷电压供电(2.7V~3.6V)和电压范围可调节(3.0V~3.6V)和电压范围可调节(3.0V~3.6V)供电两种方式。满幅度电压供电压供电方式主要用于电池供电的应用中,而电压范围可调节供电方式直接与3.3V的高性能DSP接口,简化了系统的电源要求。

(2)最快的存取速度高达55ns,CMOS工艺,具有100000次写入/擦写寿命。

(3)低功耗(200nA的自动休眠电流,200nA的待命电流,7mA的读电流,15mA的编程/擦除电流)。

(4)灵活的块结构支持整片擦除、块擦除。整片分为11个块(1块8K字、2块4K字、1块16K字、7块32K字)。

(5)块保护功能,具有防止对任何区段进行编程或擦除的硬件保护机制。

(6)与JEDEC标准兼容,引脚分布和命令集与单电源FLASH相兼容,具有优越的防止意外编程的保护功能。

(7)数据查询位和数据切换位,可以通过软件方法检测编程/擦除操作的状态。

(8)Ready/Busy#管脚,可以通过硬件方法检测编程/擦除操作的状态。

(9)具有擦除暂停/擦除恢复功能。在暂停擦除操作过程中,支持读写不处于擦除状态的块。

(10)内嵌的擦除/编程算法能自动对整个芯片或某几个块进行擦除编程操作。

Am29LV400B编程和擦除算法的命令定义如表1所示。

表1 Am29LV400B命令定义

操作命令序列周期总 线 周 期

123456

地址数据地址数据地址数据地址数据地址数据地址数据

复位

片擦除

段擦除

字编程1

1

6

6

4RA

XXX

555

555

555RD

F0

AA

AA

AA

2AA

2AA

2AA

55

55

55

555

555

555

80

80

A0

555

555

PA

AA

AA

PD

2AA

2AA

55

55

555

SA

10

30

表中,RA为要读的存储器地址;RD为从存储器地址RA处读出的数据;SA为要擦除的段地址;PA为要写入数据的存储器地址;PD为要在地址PA处写入的数据。根据表中的命令定久可编制FLASH的“烧写”和“擦除”程序(用C语言和汇编语言混合编程实现)。根据需要,我们编制了“烧写”单字和“烧写”多字的程序。

2 硬件电路组成

DSP 存储区硬件接口电路如图1所示。主要由5部分组成:DSP处理器-TMS320VC5409、系统逻辑控制电路(采用CPLD-EPM7128实现)、闪存FLASH-Am29LV400B(256K字的FLASH用来存储应用程序和初始化数据)、程序存储器SRAM1-IDT71V416S12PH(容量为256K字)、数据存储器SRAM2-IDT71V016S12PH(容量为64K字)。逻辑控制电路主要由3个模块组成:FLASH页选控制模块、读/写控制模块、程序空间/数据空间/FLASH切换控制模块。图中,CPLD的输出FMSEL为FLASH的片选脚;PMSEL为程序空间的片选脚; DMSEL为数据空间的片选脚。

FLASH分为8页,每页32K,通过CPLD中的FLASH页选控制模块(Page0~Paeg2)实现FLASH翻页功能。为实现FLASH引导装载,FLASH物理空间的前32K映射到TMS320VC5409的数据空间0x8000h~0xFFFFh上,即TMS320VC5409的数据空间 0x8000h~0xFFFFh为FLASH的前32K空间。为了重点说明FLASH的引导装载过程,本文只谈及DSP片内程序存储空间以及FLASH前 32K字的使用情况。

 


3 TMS320VC5409 DSP的引导装载方式

TMS320VC5409芯片具有两种引导方式:片内引导方式和片外执行方式。片内引导方式就是利用片内ROM中的引导程序将程序从外部加载到程序存储器中运行。由于FLASH的速度较低,难以与DSP相匹配,因此,本文采用片内引导方式。

TMS320VC5409 片内掩模ROM中固化的引导装载(Bootloader)程序用于在上电复位时把用户程序从外部引导到高速RAM中,以保证其全速运行。 TMS320VC4509提供的片内引导方法有:有机口HPI方法、8位或16位并行EPROM方法、8位或16位并行I/O方法和8位或16位串行口方法等。TMS320VC5409片内引导装载源程序可以在TI网络下载得到,读者可以自行分析。下面通过图2所示的引导过程框图,阐述一下本文选用的并行引导方式过程。

上电复位后,TMS320VC5409检测其MP/MC引脚,如果MP/MC="0",DSP从0xFF80h处开始执行片内引导装载程序。进入引导程序后,如有INT2请求中断,则进入HPI 引导方式;如有INT3请求中断,则进入EEPROM串行口引导方式;否则就进入并行引导方式。其详细引导过程如图3所示。

片内并行引导方式前半部件是I/O空间并行引导方式,我们不采用此方式,程序继续运行直到从数据空间0xFFFFh地址读入一个地址数据,此数据为用户自举表的入口地址。这时片内引导程序就开始执行FLASH中的用户自举表,若自举表的第一个字是0x10AA,则表示是16位并行引导模式。

 

[!--empirenews.page--]

4 FLASH中自举表(Boottable)的存储格式

为了实现DSP加电自举,FLASH的数据必须按照自举表的格式“烧写”。自举表的作用是:DSP运行此表时,首先根据自举表中前部分用户起始地址把后面的用户程序代码加载到DSP片内程序空间中相应的用户地址区域(由于FLASH与DSP时间不匹配,要设置好SWWR和BSCR寄存器),然后根据自举表中的程序入口址,在程序空间相应的地址开始运行程序。表2为16位并行自举的代码结构(自举表在空间允许的情况下可以放几个程序代码段,为便于说明,在此只说明一个程序代码段的情况)。

表2 并行自举表的代码结构

10AA(并行寻址格式)

SWWSR寄存器的初始值

BSCR寄存器的初始值

用户程序入口的XPC

用户程序入口的地址PC

用户程序的长度

用户程序起始地址XPC

用户程序起始地址PC

用户程序代码…

0000(表示自举表结束)

下面结合一个实例,说明利用hex500命令生成二进制数据自举表的方法。

(1)所编写的一个用户程序名为myblink.C,在编译链接成功后生成的输出文件名为myblink.out;程序空间的开始地址为0x1400h,程序执行的入口地址为0x144Fh。利用hex500工具,生成文件名为myblink.hex的二进制数据,hex500命令后添加如下条件:

mybilink.out ;要转换的.out文件

-a ;生成ASCII码的形式

-e 0x144Fh ;程序空间中程序运行的开始

地址

-boot ;转换成自举表的形式

-bootorg PARALLEL ;并行格式

-byte ;按字节分配地址

-memwidth 16 ;系统存储器字宽度为16位

-romwidth 16 ;ROM物理宽度为16位

-swwsr 0x7FFFh ;SWWSR设置软件等待周期

-bscr 0xF800h ;BSCR设置段开关控制寄存器值0xF800

-o myblink.hex ;输出的二进制数据文件名

(2)生成的进制数据文件myblink.hex的数据为:

0x10AA 0x7FFF 0xF800 0x0000 0x144F 0x00D1 0x0000 0x1400 …(用户程序代码)… 0x0000;

前8个数据解释分别为:

0x10AAh:16位并行寻址格式;

0x7FFFh:SWWSR初始值为0x7FFFh,因为FLASH的运行速度比DSP慢,等待7个周期;

0xF8000h:BSCR初始值为0xF800h;

0x0000h:自举表程序入口的XPC=0;

0x144Fh:自举表程序入口的地址=0x144Fh;

0x00D1h:自举表程序的长度=0xD1h;

0x0000h:自举表起始地址XPC=0;

0x1400h:自举表的起始地址=0x1400h。

(3)编写一个数据转换程序,把二进制数据文件myblink.hex转换为数组头文件myblink.h。在CCS环境下,FLASH的“烧写”主程序包含此头文件,编译链接后通过仿真器下载到DSP中,运行DSP,用户程序就被“烧入”FLASH中了。

实际应用是:在数据空间地址0xFFFFh(也就是FLASH的空间0xFFFFh)中“烧写”数据0x9000h(FLASH中存放的自举表起始地址),在FLASH的地址0x9000h开始“烧入”用户自举表数据即myblink.h中的数组数据。

DSP 运行情况是:依据第3节所述的引导装载过程,经过一系列的设置,使DSP寻址到数据空间地址0xFFFFh,得到自举表的起始地址0x9000h,PC指针指向0x9000h,执行自举表的数据,根据自举表写入信息,把后面的程序装载入程序空间起始地址0x1400h(XPC=0)(这时通过仿真器查看程序空间0x1400h开始的数据,与仿真器下载的myblink.out文件数据是一致的)。然后,DSP的PC指针指向程序入口地址0x144Fh (XPC=0)开始执行用户程序,从而完成了DSP利用FLASH实现16位并行引导装载的过程。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭