搜档网
当前位置:搜档网 › TKScope提高Flash烧写速度操作指南

TKScope提高Flash烧写速度操作指南

广州致远电子有限公司

类别

内容 关键词

TKScope Flash 烧写 速度 提高 摘 要 TKScope 提高Flash 烧写速度的方法

修订历史

版本日期原因V1.00 2011/05/27 创建文档

目录

1. TKScope仿真开发平台简介 (1)

2. TKScope支持Flash在线烧写 (2)

3. 在线烧写原理与影响因素 (3)

3.1 TKScope在线烧写原理 (3)

3.2 影响烧写速度的几大因素 (3)

3.2.1 通信速率影响因素 (3)

3.2.2 器件特性 (4)

4. 应用示例 (5)

4.1 烧写速度主要影响因素分析 (5)

4.1.1 LPC2478烧写速度影响因素 (5)

4.1.2 SST39VF1601烧写速度影响因素 (5)

4.2 操作步骤 (5)

4.2.1 硬件选择 (5)

4.2.2 主要设置 (6)

4.2.3 程序烧写配置 (7)

4.2.4 初始化宏配置 (7)

4.2.5 编程算法配置 (8)

4.3 测试结果 (8)

1. TKScope仿真开发平台简介

TKScope嵌入式智能仿真开发平台是广州致远电子有限公司推出的高性能通用型综合仿真开发平台;支持仿真全系列的8051、ARM、DSP、AVR、C166、C251、MX等内核;与当前全部主流IDE环境无缝嵌接,如Keil、ADS、IAR、CCS、RealView、AVRStudio、TKStudio等,并具备其高级调试功能;同时,TKScope内嵌64路专业的逻辑分析仪,zlgLogic 高级软件全面支持。

目前,TKScope主要包含以几大系列产品:

K系列:K3、K5、K8、K9;

DK系列: DK5、DK8、DK9、DK10;

AK系列: AK100;

BU系列: TKS-52BU、TKS-58BU。

2. TKScope支持Flash在线烧写

在嵌入式系统中,用户常常需要将代码或数据烧写到芯片内部Flash、片外NOR Flash、NAND Flash、SPI Flash等。

TKScope支持Flash器件的在线烧写,极大的满足了用户在线烧写Flash的需要。同时,TKScope开放Flash编程接口,用户可以自行添加Flash编程算法文件。

TKScope提供自主知识产权的K-Flash软件,支持Flash器件在线烧写、擦除、读取等操作,不依赖于IDE环境。K-Flash软件主界面如图2.1所示,操作简单,使用方便,可大大提高在线量产编程的生产效率。

图2.1 K-Flash软件主界面

K-Flash软件具有如下的主要功能及特点:

文件烧写:支持bin、hex、elf 、out等多种类型的文件,满足不同用户的烧写需求;

烧写校验:烧写完成后,检验烧写的数据是否正确;

数据擦除:擦除指定扇区内的数据;

数据读取:读取指定的起始地址和大小的数据并保存到用户指定的路径;

设备配置:配置仿真器类型、芯片参数、Flash编程算法等。

K-Flash软件支持工程管理的模式,形成工程文件后,相关的设备配置等信息会自动保存。这样用户再次进行操作时,无需繁琐重复的参数设置,直接打开工程文件即可。

在实际应用中,烧写大容量的NOR Flash等器件时,用户在关注准确度的同时,对烧写速度也是尤为关心,希望能够尽量的提高烧写速度。

本文针对用户关注的烧写速度问题,重点讲解TKScoep如何配置、操作,才能进一步提高Flash烧写速度。

3. 在线烧写原理与影响因素

3.1 TKScope在线烧写原理

TKScope仿真器借助一小段运行于RAM的代码(即Flash编程算法)完成Flash烧写。编程算法控制MCU片内Flash控制器、外部总线控制器实现Flash器件的擦除和改写,示意图如图3.1。

图3.1 调试接口烧写示意图

3.2 影响烧写速度的几大因素

在烧写不同的Flash器件时,影响烧写速度的因素也不同,这里仅介绍通用的影响因素。

3.2.1 通信速率影响因素

通信速率影响因素包含USB通信速率、JTAG通信速率、外部存储控制器总线速度。

1. USB通信速率

USB 2.0相比USB1.0、USB1.1具有更高的通信速率。TKScope仿真器采用USB 2.0通信接口。但某些采用较旧主板的PC机不支持USB 2.0,TKScope仿真器会被识别为USB 1.0/USB1.1设备,通信速度会大幅降低。因而需尽量保证仿真器被识别为USB 2.0设备,以获得更快的通信速率。

2. JTAG时钟

JTAG接口的TCK时钟频率影响JTAG的通信速率。提高该时钟将有助于把待烧写的数据更快传送至MCU。TKScope驱动配置中,JTAG时钟模式可选如下几种:

自动时钟:自动选择复位后最高的可用时钟;

同步时钟:根据目标板返回的同步时钟(RTCK)速度,选择最佳时钟。如果目标板上没有同步时钟输入,选择后将运行的非常缓慢;

固定时钟:使用用户在输入的时钟频率数值。

如果JTAG接口电路引出了RTCK引脚,则尽量使用同步时钟,以获得最快、最佳的JTAG时钟;反之应考虑选择固定时钟,并且在尽量保证硬件自检正常通过的情况下选择较高的速率。实际所能选择的JTAG时钟通信速率通常受制于MCU内核系统时钟频率。

3. 外部存储控制器总线速度

提高外部存储控制器总线速度可加快MCU访问外部Flash的速度,更快地将数据由MCU传送至外部Flash。对于大多数MCU,TKScope提供了用于初始化外部存储控制器的初始化宏文件。但这些初始化宏文件默认将外部存储控制器总线速度设定在最低速状态,以适合部分慢速的器件。在实际使用时可针对具体的Flash型号做相应优化。

3.2.2 器件特性

充分利用MCU、Flash器件的特性,能够有助于加快Flash的操作过程。

1. MCU系统时钟频率

系统时钟频率,即MCU内核运行频率。提升系统时钟频率,可加快Flash编程算法运行的速度,同时JTAG时钟也可选择更高的频率。

2. 器件操作特性

Flash器件通常提供了相应的擦除、编程等接口。一些大容量的Flash器件,针对大批量数据烧写提供了加速接口。以Spansion公司的S29GL064N为例,该器件提供了Unlock Bypass模式和Write Buffer。默认该器件在每次编程字/字节数据时,需先写解锁序列。大批量数据编程时,写解锁序列引入了不必要的开销。而在Unlock Bypass模式下,只需写一次解锁序列,后续直接写入需要编程的字/字节数据即可。Write Buffer则提供了写缓冲,提高了数据传输的效率。

此部分要求用户必须对器件的特性有所了解,并且能够编写或修改TKScope下的Flash 编程算法文件,在算法文件中根据特性进行优化。对此部分不了解的用户可不必关心,直接使用TKScope提供的编程算法即可。

4. 应用示例

本小节以LPC2478(MCU)烧写外部NOR Flash(型号为SST39VF1601)为例,介绍如何提高片内、片外Flash的烧写速度。

4.1 烧写速度主要影响因素分析

4.1.1 LPC2478烧写速度影响因素

影响LPC2478片内Flash烧写速度的主要因素为内核的系统时钟频率。

TKScope为LPC2478片内Flash的烧写提供了相应的编程算法文件,位于TKScope安装目录\configuration\NXP\LPC_IAP_512.FLM。该算法文件调用LPC2478的IAP功能实现片内Flash的烧写。IAP功能执行的快慢与内核的系统时钟频率相关;系统时钟频率越高,IAP 执行速度愈快。LPC2478系统时钟频率最高为72MHz,而上电后默认却以较低频率运行。因此为了最大限度提高IAP执行速度,需通过PLL将系统时钟频率倍频至72MHz。

当系统时钟频率工作于最高频72MHz,并且TKScope驱动配置为【同步时钟】模式时,可获得最快的JTAG通信速度。

4.1.2 SST39VF1601烧写速度影响因素

影响SST39VF1601烧写速度的影响因素主要有:LCP2478的EMC配置、SST39VF1601的编程算法。

LPC2478通过EMC发送相应的命令序列至SST39VF1601来完成擦除、编程、读取等操作。EMC配置影响LPC2478访问SST39VF1601的总线速度。TKScope提供的外部NOR Flash烧写的初始化宏文件,位于TKScope安装目录\configuration\NXP\LPC2478_EXT.INI。该初始化配置EMC以较低的总线速度运行,降低了LPC2478与SST39VF1601通信速度。因而需重新配置EMC相应的寄存器,以提供总线速度。

编程算法文件影响SST39VF1601最终烧写的速度。TKScope提供的SST39VF1601编程算法文件是以1024 B/页为单位进行写操作。为了提高烧写效率,可修改编程算法为以4096 B/页为单位(即4KB大小扇区为一页)进行写操作。对于编程算法编写和器件特性不了解的用户可不关心此点。

4.2 操作步骤

下面具体介绍如何配置驱动并修改相应的Flash编程算法,以获得较快的烧写速度。

4.2.1 硬件选择

用户根据实际情况正确选择MCU型号,配置如图4.1所示。

图4.1 硬件选择

4.2.2 主要设置

【主要设置】界面里注意配置【系统时钟】为72MHz,并且勾选【同步时钟】以自动获取最佳的JTAG时钟速率。注意,此时要求目标板上的RTCK(同步时钟引脚)必须引出。配置界面如图4.2所示。

图4.2 主要设置

在【程序烧写】配置中加载相应的编程算法时,注意需根据目标板具体电路配置设定好SST39VF1601的【起始地址】。这里SST39VF1601被连接LPC2478的BANK1,起始地址为0x8100_0000,配置如图4.3所示。

在大批量数据烧写时,选择【整片擦除】相比选择【扇区擦除】可减少擦除操作的次数、加快擦除过程。

图4.3 程序烧写配置

4.2.4 初始化宏配置

结合4.1小节的分析,在TKScope已提供的LPC2478_EXT.INI初始化文件基础之上进行必要的修改,配置如图4.4所示。

图4.4 初始化宏配置

初始化宏中各项配置的意义可参考相应的备注、LPC2478用户手册。具体修改内容下: 加入PLL倍频相关的操作:配置PLL时钟源使用内部4MHz的IRC振荡器,倍频系统时钟至最高72MHz;

修改EMC总线配置:根据SST39VF1601的时序特性修改EMC相关的寄存器EMCStaticWaitRdx、EMCStaticWaitPagex、EMCStaticWaitWrx、EMCStaticWaitTurnx,提升LPC2478访问SST39VF1601的速度。

如4.1.2小节所述,为提高编程效率修改编程页大小为4096B,如程序清单4.1。

程序清单4.1 FlashDevice结构

struct FlashDevice const FlashDevice = {

FLASH_DRV_VERS, // Driver Version, do not modify!

"SST39x160x Flash", // Device Name

EXT16BIT, // Device Type

0x000000, // Device Start Address

0x200000, // Device Size in Bytes (2MB)

4096, // Programming Page Size

0, // Reserved, must be 0

0xFF, // Initial Content of Erased Memory

100, // Program Page Timeout 100 mSec

1000, // Erase Sector Timeout 1 Sec

0x001000, 0x000000, // Sector Size 4kB (512 Sectors)

SECTOR_END

};

4.3 测试结果

使用K9/AK100仿真器、K-Flash软件,测试烧写片内、片外Flash烧写速度,结果如表4.1所示。综合测试结果可知,Flash烧写速度得到了大大的提升。

表4.1 Flash烧写速度测试结果

速度提升前速度提升后芯片型号

K9 AK100

K9 AK100

LPC2478 31.99KB/S 27.76KB/S 83.45KB/S 68.99KB/S SST39VF1601 41.67KB/S 39.08KB/S 95.45KB/S 90.84KB/S

相关主题