MSP430无论是仿真仍是烧写程序,一般能够经过:JTAG、SBW、BSL接口进行。
1、JTAG是运用鸿沟扫描技能,在430内部有逻辑接口给JTAG运用,内部有若干个寄存器衔接到了430内部数据地址总线上,所以能够拜访到430的一切资源,包含全地址FLASH、RAM及各种寄存器。能够用于对430的仿真和编程,首要衔接线有TMS、TCK、TDI、TDO,430还需求另两条线路RST、TEST来发动JTAG指令序列。
2、SBW是SPY-BI-WIRE,能够简称为两线制JTAG,首要有SBWTCK(衔接到JTAG接口的7脚TCK)与SBWTDIO(衔接到JTAG接口的1脚TDO/TDI),该接口首要用于小于28脚的2系列单片机,由于28脚以内单片机的JTAG一般与IO口复用,为了给用于留有更多的IO资源,才推出SBW接口。SBW同JTAG相同能够拜访到430内部的一切资源。
注:现在MSP430F5XX系列中也有SBW接口,原理同2系列的SBW。
3、BSL是TI在430出厂时预先固化到MCU内部的一段代码,该代码用户不行读写,这有点相似与DSP的bootloader,但又与bootloader有显着的差异,BSL只能用于对MCU内部的FLASH拜访,不能对其他的资源拜访,所以只能用作编程器接口。BSL经过UART协议与编程器衔接通讯。编程器能够发送不同的通讯指令来对MCU的存储器做不同的操作,能够把这种办法称为BSL接口。
BSL代码的发动有些特别,一般430复位发动时PC指针指向FFFE复位向量,但能够经过特别的发动办法能够使MCU在发动时让PC指向BSL内部固化的程序。这种特别的发动办法一般是由RST引脚与TEST(或TCK)引脚做一个稍杂乱的发动逻辑后发生。BSL发动后,就能够经过预先界说好的UART协议指令对MCU进行读写拜访了。
4、一般的MCU都有代码加密功用,430是怎么完成的呢?外部对430内部的代码读写只能经过上述的三种办法,只要把这三种办法都堵上,430的程序不就安全了吗?所以又引入了熔丝位,熔丝位只存在于JTAG、SBW接口逻辑内。当熔丝烧断时(物理损坏,且不行恢复)JTAG与SBW的拜访将被制止,此刻只要BSL能够拜访。而经过BSL对MCU的拜访是需求32个字节的暗码,该暗码便是用户代码的中断向量表。现在国内有些解密厂商宣扬能够解密430,原理是经过切片剥离的办法把熔丝位衔接上,再经过JTAG或SBW接口读出方针代码。而BSL则无破解的陈述。
仿真器的类型一般支撑JTAG、SBW接口,依照其与主机的衔接办法分为UIF(USB接口,支撑JTAG、SBW),PIF(并口,只支撑JTAG),EZ430(只支撑SBW形式,现在还不支撑F5XX系列)。
编程器类型有GANG430(RS232串行接口,串口、1拖8,支撑JTAG、SBW,不支撑BSL),PRGS430-IIIA多功用编程器(支撑JTAG、SBW、BSL),这些编程器都能够做离线烧写,并且支撑烧写熔丝,即脱离计算机来对方针板烧写,其间PRGS编程器还支撑序列号烧写办法。另还有专门的BSL编程器,只支撑BSL接口,不支撑烧写熔丝。
仿真器已然能够拜访到430内部的一切资源,当然也能够用做编程器运用,除了运用IAR用源代码烧写的办法外,还能够经过专业的软件来编程,这类软件有MSPFET、FET-PRO430等。
TI公司在JTAG、SBW、BSL方面供给了API操作函数,能够运用该函数来规划咱们的编程器和仿真器。现在仿真器的技能较杂乱,并且是由IAR软件来担任晋级。编程器在出厂时事前现已编程了一段Monitor代码,运用这段代码能够完成在线晋级,无论是GANG430编程器仍是PRGS编程器均有此功用。