MSP430有三种编程方式,JTAG,BSL或SBW程序,这三种编程方式各有各的优点。JTAG的优势在于速度快,如果要加密就必须使用JTAG方式。一旦加密后JTAG就不能在访问芯片了,这时如果要更改代码,就必须通过BSL方式去编程。现在就介绍下MSP430的BSL编程方式。
BSL编程是通过驻留在MSP430 MCU固化的存储器内部的代码编程的方式。内部的BSL采用UART口和上位机进行数据交换。在上电时,满足上电时序就可以进入到BSL的区域,否则进入用户代码区。
1. 正常复位时序
2. 进入BSL时序
进入BSL的特定时序如图2所示:
由图2可以看出,进入BSL的时序是: 在-RST引脚保持低电平期间,TEST引脚要有两个上升沿。
对于某些MSP430芯片,没有TEST引脚(F149),这种情况下是用TCK引脚代替TEST引脚,但电平正好与TEST相反,即在RST低电平器件,TCK要有2个下降沿。
3. BSL协议
表1. BSL协议
Received BSL Command |
同步字 [1] |
C M D [1] |
L1 |
L2 |
AL |
AH |
LL |
LH |
D1 |
D2…Dn |
C K L |
C K H |
A C K |
RX Data Block |
80 |
12 |
n |
n |
AL |
AH |
n-4 |
0 |
D1 |
D2…Dn-4 |
CKL |
CKH |
ACK |
RX Password |
80 |
10 |
24 |
24 |
xx |
xx |
xx |
xx |
D1 |
D2…D20 |
CKL |
CKH |
ACK |
Erase Segment |
80 |
16 |
04 |
04 |
AL |
AH |
02 |
A5 |
- |
--- |
CKL |
CKH |
ACK |
Mass Erase |
80 |
18 |
04 |
04 |
xx |
xx |
xx |
xx |
- |
--- |
CKL |
CKH |
ACK |
Erase Check |
80 |
1c |
04 |
04 |
AL |
LL |
LL |
LH |
- |
--- |
CKL |
CKH |
ACK |
Load PC |
80 |
1a |
04 |
04 |
AL |
xx |
xx |
xx |
- |
--- |
CKL |
CKH |
ACK |
Tx Data Block |
80 |
14 |
04 |
04 |
AL |
AH |
n |
0 |
- |
--- |
CKL |
CKH |
- |
BSL responds |
80 |
xx |
n |
n |
D1 |
D2 |
… |
… |
… |
…Dn |
CKL |
CKH |
- |
注: 1.所有数据时16进制
2. ACK是由BSL返回的
3. Error Check 不是标准的功能,是为将来扩展用的。
4. 这里的RX, TX在BSL角度来看的
发送数据帧之前,必须先发送同步直接80H,如果BSL同步上,则返回90H,接下来继续发送命令帧。
BSL 使用串口下载,串口的参数如下:
波特率 |
|
数据位 |
停止位 |
9600 |
|
8 |
1 |
4. BSL 硬件设计
用户283567 2014-3-3 22:41
用户377235 2012-12-9 23:31