热度 6
2012-5-29 11:47
5703 次阅读|
2 个评论
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 同步字 C M D 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 硬件设计