原创 MSP430 BSL编程方式

2012-5-29 11:47 5701 4 6 分类: MCU/ 嵌入式

MSP430有三种编程方式,JTAG,BSL或SBW程序,这三种编程方式各有各的优点。JTAG的优势在于速度快,如果要加密就必须使用JTAG方式。一旦加密后JTAG就不能在访问芯片了,这时如果要更改代码,就必须通过BSL方式去编程。现在就介绍下MSP430的BSL编程方式。

BSL编程是通过驻留在MSP430 MCU固化的存储器内部的代码编程的方式。内部的BSL采用UART口和上位机进行数据交换。在上电时,满足上电时序就可以进入到BSL的区域,否则进入用户代码区。

1. 正常复位时序

1.jpg

2. 进入BSL时序

进入BSL的特定时序如图2所示:

1.jpg

由图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 硬件设计

图片1.jpg

1.jpg

 

 
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户283567 2014-3-3 22:41

就是说用BSL编程写的片子是没有加密的,可以用JTAG读出来是么?

用户377235 2012-12-9 23:31

真心感谢
相关推荐阅读
用户566234 2012-05-29 11:47
MSP430仿真器
  特别声明:ZT-FET430UIF为智拓科技仪器最新开发的产品,电路为原装TI电路,无进行任务删减更改,主要为了能保证产品的可靠性和完整性,现在网上有很多价格便宜的产品都经过了电路的...
用户566234 2012-05-21 14:43
超声波测距器的设计
超声波测距器在汽车倒车,建筑工地和一些工业现场有着很广泛的用途。其测量范围0.10~4.0 m,测量精度可高达1 cm左右  本设计采用新型8051控制器c8051...
用户566234 2012-05-18 21:37
单片机MSP430F5438学习笔记
通过430一年的学习遇到的很多问题,也收获了很多,以下是学习中遇到的一些问题,和解决方法,还有很多没有整理出来,慢慢整理中。。。。 一、多源中断问题 #pragma vector = POR...
用户566234 2012-05-18 21:01
MDK中STM32无法用printf()的问题
在用MDK调试STM32板子串口时,为了方便串口调试,调用了printf()函数,但是把.hex文件烧写进板子后却发现串口接收不到任何数据。用Keil仿真是,串口可以正确的输出。有点纳闷,然后调用...
用户566234 2012-05-18 20:57
STM32 SysTick 系统时钟 超简易定时器SysTick
/** * @brief Configures the SysTick. 系统时钟配置函数   main.c * @param None * @retval None */...
EE直播间
更多
我要评论
2
4
关闭 站长推荐上一条 /3 下一条