MSP430串行寫入BOOTSTRAP與加密熔斷功能
表3

PC機設置好串口之后就可以發一個字節的同步信號給MSP430,MSP430正確接收后會返回一個ACK應答信號,PC機判斷這個應答信號正確后就可以按照設定的幀格式發送、接收數據,MSP430每收到一幀,也會發一個應答信號以供PC機確認。其幀格式如圖4所示。

圖4
BSL的程序代碼在BOOT ROM中(0C00H…0FEFH),0FF0H…0FFFH保存有芯片的標識,其中BOOTSTRAP的版本信息就存儲在地址為0FFAH的地方。 BSL的初期版本(1.10及其以下)需要一些補丁來寫Flash(參見TI有關資料Bug Ids:BSL2、BSL3和BSL4),其補丁也是MSP430的程序代碼。先將其寫到RAM中,使用LOAD PC的命令,將目標程序的起始地址裝入程序計數器中,就可以執行補丁程序了。然后,在程序最后加一句跳轉到0x0c00的語句就可以返回 BOOTSTRAP了。通過這種方法,用戶也可以自己對BOOTSRTAP做一些改動,以滿足用戶實際應用中的需要。
3 熔斷操作
MSP430Fxx的芯片中設置有保護熔絲。熔斷需要在TDI引腳上加上一個6.5 V±0.5 V的電壓再加上一定的時序才能進行,一般采用PC機發出時序。TI的開發工具中,串口JTAG編程器能熔斷,但它不能在線仿真。用戶可以自己制作一個全套的開發工具,使之具有TI所有開發工具的功能。
燒Flash的熔絲不能簡單地以硬件給引腳加高電壓實現,還需要用軟件對MSP430發出指令來配合。以MSPF14x/13x為例,首先,通過IR_SHIFT指令使JTAG口控制MSP430單片機,通過DR_SHIFT_IN將TDO/TDI腳設置成TDI,發出指令 IR_SHIFT(“IR_PREPARE_BLOW”)后等待1 ms,再將熔斷電壓Vpp加在TDI腳上,送IR_SHIFT(“IR_EX_BLOW”)后再等1 ms就可以將Vpp移開了。具體指令情況可以參見TI文檔。
4 小結
據了解,目前BSL的工具國外有SOFTBAUGH公司和GESLER公司制作的;國內也有杭州一家公司制作的BSL與熔斷的綜合工具,目前正在測試中。不過對于入門級的用戶或個人,只要稍有一些軟硬件制作能力,就完全可以花很短的時間來制作自己的開發工具,包括JTAG控制器、BSL和熔斷器。
參考文獻
1 TI參考文檔slaa096b slaa149
評論