主页   电子元器件  芯片

六月 18 2021

基于DSP芯片的Flash程序自举引导设计


目录

1.硬件电路设计
2.自启动过程分析及启动表结构
3.Flash烧写
4.程序的烧写实现
小结

  随着数字信号处理技术的快速发展,DSP芯片被广泛应用于各种数字信号处理系统中。而Flash是一种可在线进行电擦写而掉电后信息又不丢失的存储器,它具有功耗低、容量大、擦写速度快等特点。如何将程序烧写进Flash,并在上电时加载到DSP内部的RAM中,是Flash在DSP系统应用中的两个基本问题。因此本文基于TI公司的TMS320VC5509A和AMD公司的AM29LV800开发系统,介绍了在线烧写Flash并实现自举启动的方法。

  1.硬件电路设计

  图1为TMS320VC5509A与AM29LV800的连接示意图,Flash扩展在CE1空间,起始地址为200000。由于TMS320VC5509A只有14根地址线A0~A13,又因为Flash作为数据存储空间使用时的地址编码采用字寻址方式,则DSP的A0信号无效,所以AM29LV800芯片的低13位地址线A0~A12连接TMS320VC5509A的地址线A1~A13,高6位地址线A13~A18由缓冲串口来扩展。

TMS320VC5509A与AM29LV800的连接图

  图1 TMS320VC5509A与AM29LV800的连接图

  AM29LV800是低功耗Flash,工作在2.7V~3.6V电压下,一般存储数据可以保存100年以上,可以重复编程次数高达10万次。A18~A0为外部地址管脚,DQ0~DQ15为16条数据线,为片选控制管脚CE,为输出控制管脚OE,为写入控制管脚WE。

  2.自启动过程分析及启动表结构

  DSP系统的bootloader是指在系统上电时将一段存储在外部非易失性存储器中的程序,搬移到DSP片内或片外扩展的高速RAM中并执行的代码。Bootloader程序性地存储在DSP以FF8000H开始的ROM中,DSP系统在复位后PC=FF8000H,即从Bootloader程序首地址开始执行。

  TMS320VC5509 DSP的Bootloader有多种加载方式,如表1所示,设置DSP的GPIO0-GPIO3,DSP在复位时读取这4个引脚上的状态以确定所使用的启动模式。本文使用16-bitEMIF加载方式,虽然连线复杂,需要考虑并行非易失存储器Flash与EMIF接口的匹配关系,但是它的优点很多:不需要外部时钟驱动,非易失存储器种类多样,容量较大,除了存储表之外,还可存储系统需要保存的关键数据,以便在掉电时保存信息。

  表1 TMS320VC5509A的加载方式

TMS320VC5509A的加载方式

  在这些加载模式下,程序之前先要生成一张载入表,即引导表。引导表的结构如图2所示,引导表携带的信息有代码段和数据段信息,向DSP程序的入口点地址、寄存器配置信息和可编程延时信息。

引导表结构

  图2 引导表结构

  读引导表可知以下信息:程序入口地址是引导表加载结束后用户程序开始执行的地址,也就是用户程序生成的map文件中显示的入口地址;需配置寄存器数表明后面有多少个需要配置的寄存器;当延时标志为0xFFFF时,执行延时,延时长度决定了在寄存器配置后延时多少个CPU周期才进行下一个动作;段字节数、段起始地址和数据表示用户程序中定义的各个段的内容;引导表以32个0为结束标志。

  生成引导表的方法:通过在DOS环境下使用hex55.exe转换工具。在转换操作之前,先把用户程序生成的。out文件、包含转换选项的CMD文件hex5509.cmd和转换工具hex55.exe放在同一个文件夹里,在DOS方式下先将路径修改为文件所在的位置,然后在此路径下运行命令hex55hex5509.cmd,即可生成想要的。hex文件。

  在转换时,提供引导表的相关配置信息的CMD文件这里被命名为hex5509.cmd,文中用到的hex5509.cmd的内容为:

hex5509.cmd内容

  3.Flash烧写

  Flash的读操作与传统EPROM读操作相同。由于芯片使用软件保护模式进行操作,用户编程时,只要向指定的地址写入指定的序列,就可以启动Flash芯片内部的写状态机,完成指定的操作。表2为Flash的操作命令说明(对芯片的擦除和编程都是按照字进行的),表中所有的数据都是十六进制数。

  Flash的正确操作顺序:先复位,再擦除,编程。

  按照表2提供的操作命令时序来实现对AM29LV800的擦除和编程,PA为编程地址,PD为编程数据。Flash扩展在CE1空间,起始地址是200000,所以操作时所有地址必须加上200000。例如烧写工程中擦除部分命令为:

烧写工程中擦除部分命令

  表2 AM29LV800B的操作命令说明

AM29LV800B的操作命令说明

  芯片擦除需要占用6个总线周期,而芯片编程需要4个总线周期,依照表3的数据,在每个总线周期对相应地址写入命令字就可以了。用户一般都是对芯片进行写操作,写操作只能使‘1’变‘0’,而擦除只能使‘0’变为‘1’。图3为擦除和编程命令波形图,清楚地显示了擦除和编程操作过程。

擦除和编程命令波形图

  图3 擦除和编程命令波形图

  判断编程或擦除的结束是当把编程或擦除的命令字按照其时序写入Flash时,在写编程命令时序或擦除命令时序的一个WE上升沿到来之后,AM29LV800会自动运行一个嵌入在Flash内部的算法来判断编程或擦除操作是否结束。采用触发位校验的方法,检测数据切换位DQ6(ToggleBit)的状态,连续读数据会使DQ6的值在‘0’和‘1’之间来回切换,当编程或擦除结束时,DQ6就停止值的切换。因此,可以通过连续两次读DQ6的值来判断编程或擦除是否结束,当两次读得的值相同时,说明编程或擦除结束,否则没有。触发位检测算法流程图如图4所示。

触发位检测算法流程图

  图4 触发位检测算法流程图

  4.程序的烧写实现

  本系统在CCS仿真环境下对Flash进行在线编程。

  先建立一个Flash的烧写工程,并在工程中将要烧写进Flash的引导表文件通过CCS的LOADDATA功能直接加载进DSP的内存,根据加载的首地址和数据长度,在仿真环境下烧写进Flash中。值得注意的是,程序加载的内存空间不能与Flash的烧写程序重叠,否则烧写失败。

  烧写完成以后,关掉电源,拔掉仿真器电缆,让仿真器和计算机脱开:重新打开电源,实验板上指示灯闪烁,表明烧写进Flash程序正在运行,自启动成功。

  需要补充的是,经过hex55.exe文件转化后的hex文件的引导表文件不能直接导入CCS中,CCS只支持将特别规定的DAT格式文件通过LOADDATA导入内存,所以在导入之前必须先将引导表转化成DAT格式文件,这个工作可以由VC编写一个简单的C语言转化程序实现。

  小结

  以上就是基于DSP芯片的Flash程序自举引导设计介绍了。此设计可以有效地解决程序代码存储问题和DSP脱机自举问题,不仅提高了调试效率,也增加了系统的灵活性。

订购与质量

图片 产品型号 品牌 描述 数量 价格
(USD)
ADUM1400BRWZ ADUM1400BRWZ Company:Analog Devices Remark:产品型号:ADUM1400BRWZ 描述:DGTL ISO 2500VRMS 4通道GP 16SOIC 分类:隔离器、数字隔离器 制造商:ADI公司 系列:iCoupler® 打包:管 零件状态:活性 In Stock:On Order
Inquiry
Price:call Inquiry
LM5642MTCX LM5642MTCX Company:Texas Instruments Remark:LM5642MTCX由两个电流模式同步降压稳压器控制器组成,以180°异相运行,异相操作可降低输入RMS纹波电流,从而显着降低所需的输入电容。开关频率可以同步到200kHz到500kHz之间的外部时钟。也可以并联,作为双相单输出稳压器运行。 In Stock:On Order
Inquiry
Price:call Inquiry
XC4VSX35-10FFG668I XC4VSX35-10FFG668I Company:Xilinx Remark:产品型号:XC4VSX35-10FFG668I 描述:集成电路FPGA 448 I/O 668FCBGA 分类:集成电路(IC),嵌入式-FPGA(现场可编程门阵列) 制造商:Xilinx公司 系列:Virtex®-4SX 打包:托盘 零件状态:活性 In Stock:On Order
Inquiry
Price:call Inquiry
BQ24133RGYR BQ24133RGYR Company:Texas Instruments Remark:产品型号:BQ24133RGYR 描述:IC BATT充电锂离子/ POL 24VQFN 分类:集成电路(IC),PMIC-电池充电器 制造商:德州仪器 打包:切割带(CT) 零件状态:活性 In Stock:On Order
Inquiry
Price:call Inquiry
XC7VX330T-1FFG1761I XC7VX330T-1FFG1761I Company:Xilinx Remark:产品型号:XC7VX330T-1FFG1761I 描述:集成电路FPGA 700 I/O 1761FCBGA 分类:集成电路(IC),嵌入式-FPGA(现场可编程门阵列) 制造商:Xilinx公司 系列:Virtex®-7XT 打包:托盘 零件状态:活性 In Stock:On Order
Inquiry
Price:call Inquiry

相关文章

  • DSP芯片的特点与分类 ...
    DSP(Digital Signal Processing)即数字信号处理技术,DSP芯片即指能够实现数字信号处理技术的芯片。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门...
  • 基于DSP芯片的Flash程序自举引导设计 ...
    随着数字信号处理技术的快速发展,DSP芯片被广泛应用于各种数字信号处理系统中。而Flash是一种可在线进行电擦写而掉电后信息又不丢失的存储器,它具有功耗低、容量大、擦写速度快等特点...
  • DSP芯片在图像技术中的应用 ...
    自1982年美国TI公司推出第一个DSP芯片TMS32010以来,DSP芯片有了很大的发展。DSP芯片不仅在运算速度上有了很大的提高,而且在通用性和灵活性方面了极大地改进。此外,D...

0 条评论

留言

您的邮箱地址不会被公布

 
 
   
评分: