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所用。