此内容由EEWORLD论坛网友骑IC看MCU原创,如需转载或用于商业用途需征得作者同意并注明出处
在讲述BSL功能之前,首先我们需要了解以下MSP430的下载方式:
VCC, GND, TDI, TDO, TMS, TCK, TEST,RST 每个引脚具体功能如下图所示:
VCC, GND, SWDIO, SWCLK, 其中SWDIO为数据引脚,双向通信,SWCLK为时钟引脚,在MSP430内部有一个SBW控制器,可以解码SBW信号转换成JTAG信号,如下图所示:
好啦,在描述完MSP430烧写程序之后,问题来了,既然有这三种程序下载模式,那么下载器如何选择进入哪一种模式呢? 这就需要RST和TEST引脚了,具体时序如下图所示:
注意:对于Flash系类MCU,有些没有TEST引脚的芯片吗,使用TMS引脚,不过进入的时序和下图有点区别,具体看每个芯片的User Guide和Datasheet。
下面介绍一下MSP-FET烧写器的引脚功能即连接方式:
MSP-FET实物图如下所示,支持以下功能:
下图是MSP-FET的引脚图,由于TI想标明JTAG SBW BSL三种模式的下载接口,所以就标成了这个样子。。。。 很有误导性,下面我介绍一下如何连接到MCU上。
第一种模式:JTAG
需要连接引脚:TDO TDI TMS TCK GND VCC_TOOL RST TEST
第二种模式:SBW
需要连接引脚:SWDIO SWCLK GND VCC_TOOL
第三种模式:BSL
需要连接引脚:TEST RST GND VCC_TOOL UART_TXD UART_RXD(PS : 串口模式,如果是I2C 连接I2C引脚)
附上一张更加详细的MSP-FET引脚描述图:
OK,在描述玩这几种下载模式,及硬件连接等之后,开始详细讲解一下BSL的使用:
首先,你需要下载BSL工具:
BSL已经集成到新版CCS和Uniflash(5.0版本以后)中,但在PC端,为了使用每一个BSL命令,我们采用BSL Scripter软件,下载地址如下:
http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPBSL_Scripter/latest/index_FDS.html
这个软件是使用CMD命令实现的一个脚本插件,因此在安装完之后,会有下图所示的一堆文件:
文件中BSL-Scripter.exe即是BSL的脚本,进入ScriptExampleWindows文件夹,你会发现里面有跟多例程,我们进入FRxx_uart,如下图所示,有四个文件:
第一个blinkLED_FR6989.txt文件时程序,需要BSL下载进入MCU的,中间pass32_default.txt和pass32_wrong.txt是BSL的密码,因为访问BSL一定是要密码的,这个密码是可以通过编译软件自己设置的,最后一个文件script_FRxx_uart.txt则是执行的BSL命令,把命令全部都写入文件里,使用BSL-Scripter.exe脚本可一次性执行多行程序。
在安装完成后默认文件中的程序可自行查看,本实验中使用FR2355 MCU,因此写BSL程序如下:
LOG // 打开文件记录生成
MODE FRxx UART 9600 COM8 // 选择FR MCU, UART模式,端口COM8 波特率9600
CHANGE_BAUD_RATE 115200 // 改变波特率为115200
DELAY 2000 // 延时2000ms
RX_PASSWORD BSLPassword.txt // 写BSL密码
RX_DATA_BLOCK MSP430FR2355.txt // 烧写程序
DELAY 4000 // 延时4000ms
TX_DATA_BLOCK 0x8000 0x0080 MSP430FR2355_R.txt // 从MCU中读程序
// (地址:0x8000 长度:0x0080)
CRC_CHECK 0x8000 0x0080 // CRC校验(地址:0x8000 长度:0x0080)
SET_PC 0xFFFE // 设置启动地址,启动程序
如上图所示即为烧写,读取程序的整体流程,有几点需要写明:
更多BSL指令如下所示:
下面开始执行上述的额BSL程序,
VCC_TOOL (2) <-> 3.3V
GND (9) <-> GND
TEST/VPP (8) <-> SBWTCK (4)
RST (11) <-> SBWTDIO (5)
UART_TXD (12) <-> P1.7 (31)
UART_RXD (14) <-> P1.6 (32)
注意:两个命令:
附上你可能会用到的参考文件链接: