在MCU项目开发过程中,始终有两个设备紧密的联系在一起,一个是仿真器,一个是编程器。仿真器,顾名思义就是模仿单片机的功能;编程器就是把程序编写到单片机内部。
目前公司在MSP430开发工具方面主要有仿真器、编程器、各类学习板、转接板、适配器等。本文将主要介绍这些MSP430工具其特性。
一:仿真器、编程器
IAR和JTAG无法连接,是怎么回事?这是客户问的问题,在论坛中也很常见,FAE也有在问。我们就从这个问题开始讲解吧。
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编程器均有此功能。
工具功能表:
名称 | 下载程序 | JTAG接口 | SBW接口 | BSL接口 | 烧断熔丝 | 离线编程 |
PIF-并口仿真器 | ● | ● | ||||
UIF-USB接口仿真器 | ● | ● | ● | ● | ||
GANG430编程器 | ● | ● | ● | ● | ● | |
PRGS编程器 | ● | ● | ● | ● | ● | ● |
BSL编程器 | ● | ● |
编程器发展及支持情况:
编程器名称 | 与主机连接方式 | 未来发展 | 技术支持情况 |
GANG430 | RS232串行口 | RS232,保留不改变 | TI支持 |
PRGS编程器 | RS232串行口 | USB接口 | 技术部支持 |
BSL编程器 | 标准9芯RS232串行口 | USB接口 | 技术部支持 |
二:学习板、转接板、适配器
1、学习板
为了初学者或在项目开发初期为了项目认证或可行性方案分析而设计的具有一定功能的工具,其一般包括一个单片机最小系统及按照内部模块划分的功能器件。现公司有各种学习板,从F1系列到F5系列,并且可以根据用户或某种功能需要定制学习板。学习板配套光盘中一般有实验指导书、学习板参考器件手册、PDF版本的原理图及部分工具软件资料。
2、转接板
MSP430的管脚比较密集,而且大都是SMT工艺的,并没有DIP封装的,这样就给初学者的调试工作带来了麻烦,比如功耗测试、简单的代码测试等。为了帮助用户尽快的设计自己的目标系统,而设计的具有直插封装的转接线路板,板上集成了430的最小系统,保留了所有的调试接口,并把所有的IO口连接到转接针上。用户只要按照转接针上的定义就可以配套在自己的目标系统中。转接板上的MCU是固定焊接到线路板的,用户不需要自己焊接,除非有损坏情况发生。
3、适配器
如果在转接板上的芯片发生损坏,则需要用户自己更换芯片,这无疑给用户带来困难。建议这种用户可以选用适配器,适配器是带有IC夹头的转接板,而且可以通用(具体查看相应的支持手册)。同样适配器板有一个最小系统,并且把所有的IO引出到了连接针上。由于该适配器价格昂贵,一般用在批量生产时烧写芯片代码使用。
转接板及适配器一般提供参考代码、PDF版的原理图及部分工具软件。
扩展阅读:MSP430的时钟周期、机器周期、指令周期之间的关系