TI C2000系列串口烧写Flash总结

  • 格式:pdf
  • 大小:605.84 KB
  • 文档页数:13

servo_star@163.com QQ:1099886714

1 TI C2000系列串口烧写Flash总结

TI提供了多种方式可以对C2000系列DSP的Flash进行编程,参见TI文档《针

对TMS320F28xxx DSC 的闪存编程解决方案》。其中最常见的就是通过JTAG方

式,但有时产品装在现场,有空间或其它诸多因素的限制,这种方式过于繁琐,

效率低下。因此,设计人员不得不考虑别的方式,其中,通过串口(SCI)是最常

用、最容易实现的方式。

目前,通过串口烧写Flash有两种方法:SDFlash软件和C2Prog软件,下面分

别描述。

1 通过SDFlash软件

SDFlash软件是Spectrum Digital公司出品的程序下载软件,该公司应该是TI

第三方合作公司。该公司还生产仿真器、eZdsp实验板以及DMC1500电机控制板

等产品。

应用该方法的具体步骤如下:

1.1 安装CCS

建议安装CCS3.3或更高版本,将你的项目文件编译为可以对Flash编程的.out

文件,如何制作可以参见本文末节。

1.2 安装串口编程算法项目文件

文件名称:sdf28xx_v3_0_serial.exe ,可以从Spectrum Digital公司网站上下

载(注意这里不是TI网站,记得当时在TI网站上找了好久也没找到),安装时按默

认路径。

安装完以后,桌面及程序列表里不会出现相关文件。

1.3 安装SDFlash软件

文件名称:类似于SetupCCSPlatinum_v30xxx.exe,从Spectrum Digital公司网

站上下载或者百度。安装路径默认。

安装完后桌面上会出现如下图标,启动软件方式后面介绍。

servo_star@163.com QQ:1099886714

2

图1

1.4 编辑sdopts.cfg文件

点击图1中的文本文件,打开编辑,如是Win7系统的以管理员运行,否则会

提示无权限保存。此文件存放在你所安装的windows的System32目录下。

(1)用记事本的方式打开

(2)在"# End of sdopts.cfg”前加入如下文本:

[EmulatorId=C1]

EmuPortAddr=0xC1

EmuPortMode=RS232

EmuProductName=SERIAL_FLASH

[EmulatorId=C2]

EmuPortAddr=0xC2

EmuPortMode=RS232

EmuProductName=SERIAL_FLASH

[EmulatorId=C3]

EmuPortAddr=0xC3

EmuPortMode=RS232

EmuProductName=SERIAL_FLASH

[EmulatorId=C4]

EmuPortAddr=0xC4

EmuPortMode=RS232

EmuProductName=SERIAL_FLASH

servo_star@163.com QQ:1099886714

3 意思应该是加入串口启动选择。

1.5 启动SDFlash

如果是按默认路径安装的,打开以下路径(笔者装在C盘):

C:\CCStudio_v3.3\specdig\sdflash\bin,点击图2中的SDFlash.exe文件启动。

图2

启动界面如图3所示。

图3

1.6 打开工程

以烧写F2812为例。

路径:C:\CCStudio_v3.3\specdig\sdflash\myprojects\sdf28xx_v3_3_serial\f2812

名称:F2812SerialFlash.sdp(点击File——>Open)

图4

servo_star@163.com QQ:1099886714

4 1.7 设置工程

点击Project——>Setting出现以下对话框,分别如图设置。

其实软件的默认设置已经设置好了,基本不需要修改,详细的设置说明参考:

SDFlash_Serial_RefGuide_v3_0.pdf文件。注意图7中的Flash Data即是前面编译完

的要写入Flash的数据。

图5

图6

servo_star@163.com QQ:1099886714

5

图7

图8

设置完后保存工程。

1.7 连接目标板

将PC的串口与目标板的串口通过RS232电缆连接,要保证二者能够正常通

信,最好事先通过串口调试助手调试一下,确定其能够正常工作。这里,网上有

servo_star@163.com QQ:1099886714

6 说用USB转RS232线可能无法工作,笔者实验一切正常。毕竟带串口的笔记本已

经很少了。另外带串口的台式机未经过测试。

1.8 设置DSP目标系统从SCI启动

此步非常之关键,否则无法烧录。F2812的启动模式如图所示。其它芯片可

参看手册及SDFlash_Serial_RefGuide_v3_0.pdf文件说明。

图9

在系统复位或重新上电前保证上述引脚为0011状态,以使其进入SCI启动模

式,然后,断开SCITXDA引脚的0状态,切换到正常的RS232通信状态,否则无

法烧写。

1.9 烧写

点击SDFlash软件上的红色复位标示钮 “R”,复位目标系统。

图10

然后点击”R”左边的Flash图标或从菜单里选择,出现如图对话框。

servo_star@163.com QQ:1099886714

7

图11

点击Start,开始连接、烧录过程。这里注意:连接过程很漫长,笔者测试约

有2分钟,不要以为连接不上就放弃了,笔者刚开始就以为连不上,浪费了不少

时间。

图12

烧写完成后的如图所示。

图13

烧写成功后,一定要掉电并拔掉RS232连接,重新上电以Flash模式启动。

另外,系统默认采用30M晶振,如不是该频率,参考

SDFlash_Serial_RefGuide_v3_3.pdf文件对算法工程文件进行修改。

servo_star@163.com QQ:1099886714

8 2 通过C2Prog软件

C2Prog软件是CodeSkin公司出品的Flash编程工具,可以提供多种编程方式:

RS232/485、USB、TCP/IP、CAN等。

当然前提还是要有可以下载到Flash运行的.out文件,因此,CCS的安装那是

必然的,此处省略。

2.1 安装C2Prog

从codeskin网站http://www.codeskin.com/C2Prog.html下载最新的C2Prog软

件。按默认安装即可。安装完毕,在程序列表里有菜单,如图所示。

图14

2.2 下载hex2000

hex2000是把.out文件转换成.hex文件的工具,网上有说在C2Prog的附件里有

该工具,笔者没有发现,忘了具体在哪儿下载的,没有可以百度一下。该工具不

用安装,需要在Dos下操作。

2.3 文件转换

C2Prog手册里对转换命令的描述是这样的:

笔者是这样做的:将.out文件copy到hex2000所在的文件夹,这样为了在命令

行操作方便。按如图15输入转换命令。

servo_star@163.com QQ:1099886714

9

图15

图中的.out文件是源文件,.hex是目标文件。整个过程很快就完。

2.4 连接目标板

此处与前节介绍一致,略过。

2.5 设置DSP目标系统从SCI启动

此处与前节介绍一致,略过。

2.5 烧录

启动C2Prog软件,如图所示。

图16

servo_star@163.com QQ:1099886714

10 在File:框内载入刚转换的.hex文件,选择目标DSP型号及时钟频率。

图17

选择串口,点击Configure Ports…

图18

出现如图19所示的窗口

图19

点击Scan Ports,扫描完成后点击OK。

servo_star@163.com QQ:1099886714

11 点击Program,烧入程序,烧入过程比前一种快多了。完成后如图20所示。

图20

重要提示:烧写过程严禁终止、断电、重启等动作,否则将造成DSP永久锁

死!!!

经过实验:笔者更推荐用第二方式,这种方式烧写更快,更方便。

3 制作Flash编程文件

关于烧写Flash,网上讲得很多,这里只讲几个关键步骤,详细的过程可以

参考网上众多教程。

3.1 修改main函数

在main函数中添加如下代码,注意在InitSysCtrl()函数之后。

servo_star@163.com QQ:1099886714

12

图21

其中:在DSP281x_GlobalPrototypes.h头文件中有memcopy(),InitFlash()函数

以及变量的声明,InitFlash()函数的代码在DSP281x_SysCtr.c中定义。因此,TI

提供的源文件已经为我们节省了很多工作。

3.2 更换cmd文件

将调试用的cmd文件:

图22

更换为烧写用cmd文件:

图23

其中在F2812.cmd文件中有以下定义,即是烧写Flash所用。