微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于TMS320C6713及AM29LV800B的上电自举设计

基于TMS320C6713及AM29LV800B的上电自举设计

时间:08-31 来源:互联网 点击:
1 引言
TMS320C6713(以下简称C6713)是TI公司推出的高性能浮点运算DSP,采用超常指令字(VLIW)结构。时钟速率为300 MHz、225 MHz、200 MHz、167 MHz。EMIF作为C6713与外部存储器之间的接口,可支持与各种外部器件无缝(即可寻址空间已分配完毕,且地址一致连续)连接。EMIF存储器映射由4个(CE0~CE3)空间组成,这4个空间彼此独立,实现不同访问控制。C6713 DSP包含从Ox00000000地址开始的256 KB内部RAM,但其内部无非易失性存储器,需要外扩F1ash或ROM等非易失性存储器。
选用AMD公司的AM29LV800B Flash,具有1 Mx8 bit/512 Kxl6 bit的存储空间,16位数据总线。支持程序写、擦除和悬挂,支持Flash数据集成,兼容普通F1ash接口F1ash In―terface(CEl)。

2 上电自举硬件设计
图1为C6713与AM29LV800B的硬件原理框图。

2.1 硬件连接说明
图1中C6713和AM29LV800B数据总线、地址总线和控制信号均经过33Ω排阻平波后相连接,这样可有效减小总线上的信号波动,提高系统抗干扰能力。
Flash可提供硬件和软件2种方法判断其工作状态,以确定数据写入或擦除操作是否完成。其软件方法是利用从F1ash读取的数据判断其状态,读取数据中的主要判断位为SR7~SRl,它们之间的相互组合提供了软件判断工作状态的方法。硬件判断方法主要是利用F1ash的外部引脚输出信号在命令序列的最后一个写脉冲的上升沿后有效。当该引脚输出低电平时,表示Flash正在编程或擦除,而当该引脚输出高电平时,表示编程或擦除已完成。将此引脚与C6713 DSP的ARDY引脚相连,即可实现编程和擦除完成的硬件自动判断。
由于Flash是从CEl空间加载程序,因此DSP的CEI与Flash的片选CE相连,这种连接可将Flash的内部地址映射到DSP地址0x90000000上。
2.2 引导模式设定
如图1和表1所示HD3和HD4(HD[4:3])可通过跳线与3.3 V和地连接。当拔去跳线帽时,HD[4:3]引脚输入电平
“10”,引导模式设置为16 bit异步外部ROM引导,即系统中使用Flash引导。当插上跳线帽时,HD[4:3]引脚输入电平“00”,引导模式设置为32 bit主机口/仿真器引导

3 上电自举过程

当系统上电时,由引导程序将应用程序从外部存储器引导到DSP应用板上的高速存储器或DSP内部RAM中运行,该过程就是上电自举过程。由于Flash具有电信号删除功能,且删除速度快,集成度高,已成为此类外部存储器的首选。
和以往TI公司的DSP引导方式不同,TMS320C6000系列DSP采用一种新的引导方法。对于C6713,若HD[4:3]引脚输入电平为“10”,当上电或系统复位时,DSP会自动将位于Flash地址空间(0x90000000~0x9FFFFFFF)开头的1 KB代码传输到RAM存储空间“0”地址处,这就是一次引导。它的数据传输采用默认时序,由DSP中的EDMA通道以单帧形式自动传输。传输完成后,程序从地址“O”开始运行。这些均由DSP自动完成。很明显,一次引导的代码并不能满足绝大多数编程者对代码长度的要求,因此就需要二次引导过程。二次引导是将DSP一次引导的l KB代码编写成一个搬移程序,将用户的主程序搬移到高速RAM中,并且搬移完成后自动跳转至主程序入口处运行主程序。综上所述,C6713的上电自举过程分为一次引导和二次引导,其中,一次引导由DSP自动完成,而二次引导则由用户通过编程完成。

4 上电自举及烧写软件设计
图2为整个上电自举过程所需程序和各程序的搬移过程。首先将编译连接好的引导程序、主程序和烧写程序按照先后顺序由仿真器下载至DSP内部RAM,再执行烧写程序,将引导程序和主程序烧写到Flash,然后断开仿真器,关闭CCS.重新上电或复位DSP板,DSP自动将Ox90000000~0x900003ff(1 KB)地址的数据全部搬移到I)SP内部“0”地址开始的l KB空间中。搬移结束后,自动执行引导程序进行二次引导,将主程序和中断向量表搬移到内部RAM中,从而结束整个上电自举过程。

4.1 引导程序
以下为引导程序部分代码:


A行利用汇编伪指令“.sect”为引导程序定义了一个段,通过链接命令文件将该段程序准确定位在指定的地址空间。B行引用_c_int00子程序,是由系统自动生成的复位中断服务子程序,利用该子程序使程序在执行完引导程序后跳转到主程序入口地址执行主程序。
4.2 C6713对Flash的操作
对Flash的操作有复位、数据读、擦除、烧写。Flash的复位操作相对简单,只要向Flash任意地址单元写入数据“0xF0”便可实现其复位操作。数据读与一般的RAM存储器相同,但Flash的擦除和烧写操作却有其自身特点。
4.2.1 Flash的擦除
由于Flash的烧写操作只能将其内部存储单元由“1”改写为“0”,反之不行,所以必须先将Flash内部存储单元擦除后才能写操作。也就是说,擦除操作是将Flash内部存储单元全部写为“1”。
由Flash擦除命令字看出,Flash的擦除分为片擦除和扇区擦除,采用片擦除,需要向2个地址写入不同数,从而擦除整个器件。其擦除子程序代码如下:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top