联系人:
周小姐/柯先生
联系电话:
0755-82782289/0755-83279156
点击这里给我发消息
MSN:keguoxian@hotmail.com 
 
主营业务
 
香港科源达电子有限公司:主营各种集成电路及其它电子元器件,产品广泛应用于家电、通讯,工业、军用等电子产品具有不同的领域,公司经过多年的不断求实创新,已具有一定的实力与规模.品种全,质量高,加上现代化的经营理念,使我们在同行业中脱颖而出,赢得不少客户的信赖和支持,客户遍于全国各地及其它一些国家和地区.公司经营宗旨:货多,质好,价廉,并为顾客提供优质服务.欢迎新老客户光临惠顾.希望与同行业共同为电子界的繁荣与发展作出贡献! 主营销各半导体厂家元器件,ROHM、TOKO、 AD NXP ATMEGA、NEC、HP、IR、ON、TOSHIBA、VISHAY、ZETEX、PHLLIPS、SIEMENS、SANYO、KEMET、HITACHI...)产品有:汽车电子,功放IC,光电耦合,场效应.快恢复,二、三极管(开关二极管、肖特基三极管、瞬变二极管、PIN结二极管、大/中/小功率三极管、高频管、复合管、整流二极管、快恢复二极管、稳压二极管、整流桥、射频管、场效应管、达林顿管......IC等贴片电子元件。
经销品牌
 
                  
站内搜索:
技术资料详情

DSP芯片的Flash存储器的在线编程方式

来源:www.weeqoo.com   发布时间:2010/10/24 16:41:45   点击浏览量:1679

     在嵌入式系统中,为了实现程序的脱机自动运行,程序往往固化在电可擦除的FLASH存储器中。要实现一个嵌入式系统的带电脱机运行,在线编程就成为嵌入式系统开发过程的必经之路。由于在线编程涉及到硬件和软件方面的内容,因此要从顶层设计和系统的角度来考虑在线编程。硬件设计要为软件设计作铺垫,尽可能简化软件设计。

  本文以TI公司的DSP芯片TMS320C6711D和AMD公司的4 Mb FLASH存储器AM29LV400B为例来介绍两种在线编程方式。

  1 DSP与FLASH存储器的两种硬件连接关系

  1.1 以Ready信号作为硬件握手

  带有Ready信号的TMS320C6711D的EMIF(Exterhal Memory InteRFace)接口FLASH存储器AM29LV400B的硬件连接如图1所示。由于AM29LV-400B输出的就绪信号/忙信号()为OD(漏极开路)输出,需要在该信号上加上拉电阻并连接到VCC。


  1.2 采用无Ready硬件连接的软件握手

  不带Ready信号的TMS320C6711D与FLASH存储器AM29LV400B的硬件连接如图2所示。


  2 软件设计

  2.1 带有硬件握手的软件设计

  带有Ready信号连接的FLASH存储器编程时序如图3所示。FLASH的就绪信号/忙信号()输出为低电平时,表明FLASH正忙,处于编程或擦除状态。由于DSP与FLASH存储器采用Ready/Busy信号作为硬件握手信号,当Ready/Busy信号为低电平时,CPU总线时序上插入等待周期,直到Ready/Busy信号解除(为高电平)。在Ready信号为低电平期间,由于CPU处于等待状态,程序被暂停执行,因此不需要通过软件来判断FLASH存储器的编程或擦除状态。


  2.2 带有软件握手的软件设计

  FLASH的就绪信号/忙信号()输出为低电平时,表明FLASH正忙,处于编程或擦除状态,此时写入或读出的数据是无效的,不是程序员需要的数据;当该信号输出为高电平时,表明FLASH已处于就绪状态,可对其进行写入或读出数据的操作。

  由于DSP与FLASH存储器的接口采用软件握手,在对FLASH存储器进行编程或擦除时,DSP的总线周期中不会由硬件自动插入等待周期,如果此时仍采用2.1节的FLASH编程函数对FLASH存储器进行编程,则会得到错误的编程结果。编程结束后会发现FLASH存储器中有一部分内容仍然是0xFFFF,处于编程前的状态。虽然对FLASH存储器进行了编程操作,但由于FLASH存储器上编程操作还未完成,本次的编程操作无效,数据根本写不进FLASH存储器。在CCS3.1中用“View/Memery”功能查看FLASH存储器,就会发现FLASH存储器中的数据等间隔地出现编程正确和编程不正确的现象。笔者在自己设计的TMS320C6711D-250嵌入式模块(带有AM29LV400B FLASH存储器)上,通过断开DSP与FLASH存储器的硬件Ready信号进行编程测试,无等待状态的测试结果见表1,有等待状态的测试结果见表2。


  可见,在没有硬件握手的情况下,需要通过软件来判断当前FLASH存储器编程或擦除的状态来进行编程操作。如果FLASH存储器正处于编程或擦除过程中,则无法继续对FLASH存储器进行编程,需等到FLASH存储器上数据编程(写入)完成时才能进行下数据编程(写入)。否则,会得到错误的编程结果,造成编程后数据校验失败。

  大多数FLASH存储器都提供了一个或几个状态位来表示当前FLASH存储器编程或擦除的状态,大多支持通过其数据总线D7数据位的状态来判断FLASH存储器当前编程或擦除的状态。这是大多数FLASH存储器数据手册推荐的编程轮询算法,但经过笔者测试,这种算法比较繁琐,会造成部分编程内容不正确,可采用将编程数据读出、与写入数据进行比较的简单方法,实现软件等待状态的插入。

  说明:TMS320C6711D与AM29LV400B FLASH存储器采用16位数据连接,DSP EMIF CEl存储器空间初始化为32位总线宽度(CEl端口连接16位FLASH存储器),读取/写入FLASH存储器的32位数据中高16位无效。

  带有软握手的FLASH存储器编程函数如下:


  3 两种在线编程方式的区别

  在硬件上加入硬件握手的FLASH存储器在线编程方式设计简单,在应用中只须考虑擦除和编程,而无须考虑FLASH存储器的当前状态。当FLASH存储器正处于擦除和编程状态而未完成时,FLASH存储器产生的忙信号通过FLASH存储器与DSP之间的硬件连接直接送入DSP,由DSP硬件在其总线访问周期中自动插入等待周期,暂停DSP处理器的执行;当FLASH擦除和编程状态完成时,由FLASH存储器产生的就绪信号通过FLASH存储器与DSP之间的直接硬件连接将就绪信号送入DSP,解除DSP的等待状态,继续程序的执行。而采用软件握手的FLASH在线编程方式需要程序员在软件中判断FLASH存储器的当前状态。只有当FLASH存储器擦除过程完成时,才能对其进行编程;当FLASH存储器的编程(数据写入)过程完成时,才能进行下的编程(数据写入)。软件设计繁琐,且要经过多次调试。

香港科源达电子有限公司 技术支持:维库电子市场网 
访问统计:  建议使用分辨率:1024*768  友情链接     后台管理