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编程器均有此功能。
关键字:MSP430 仿真 烧写程序 JTAG SBW BSL
引用地址:
MSP430仿真&烧写程序中JTAG、SBW、BSL说明
推荐阅读最新更新时间:2024-03-16 15:05
基于MSP430F149的数据转发器设计
摘要: 以MSP430F149单片机为核心,设计一种双串行通信的电能表自动抄收系统的转发器,给出转发器的硬件结构框架与软件设计方案。转发器通过三种通信方式实现主机与电表抄表器的数据通信。 概述 目前大量存在的人工抄表的方法已远不能适应现代化管理的需要,并由此带来的线损率的增高也必然影响电力行业的发展。线损率较高的主要原因之一就是抄表、计算和管理手段的落后,管理损耗增大。如果采用电能表自动抄收系统,不仅可以大大提高电网运行的可靠性,而且可以充分利用现有设备的能力,降低劳动强度。该系统主要由电表抄表器(数据采集)、数据转发器(数据传输)和主机(数据处理)三大部分组成。本文主要设计其中数据转发器部分。 通常电表采用的有红外通信、R
[模拟电子]
MSP430的时钟系统问题
MSP430的时钟问题一直是模模糊糊,老是忘记,于是决定写下此文帮助记忆,以下内容均参考网络资料,仅供参考。(MSP430X1XX系列) 该MSP430系列单片机时钟源有3种,分别为: 1.LFXT1CLK:低频/高频时钟源, 可外接晶体振荡器,由于单片机内部集成可供选择的电容,则无需外接两个振荡电容器。较常使用的晶振为32768HZ,可选晶振范围450KHZ-8MHZ。(工作在高频模式下时,需外接振荡电容) 2.XT2CLK:高频时钟源,可外接晶体振荡器,需外接连个振荡电容器。较常使用的晶振为8MHZ,可选晶振范围450KHZ-8MHZ。 3.DCOCLK:数字可控制的RC振荡器,约800KHZ,它的频率随供电电
[单片机]
电动汽车充换电设施仿真与规划技术
近年来在国家的大力支持下,电动汽车产销量逐年增加,充换电技术不断进步,配套的充换电基础设施也如雨后春笋般在大中城市“茁壮”成长。 为了支撑电动汽车产业的高速发展,满足日益增长的用户充换电服务需求,在投入充换电设施建设前必须要开展科学的调研、数学建模和统筹规划。 那么今天我们就先来谈谈电动汽车充换电设施仿真与规划技术吧! 一、技术简介 电动汽车充换电设施仿真与规划技术,是将电动汽车与电网系统作为一个密切联系的有机体,从宏观角度开展深入研究,主要涉及电动汽车充换电设施及其接入电网的建模与仿真和充换电设施规划两方面内容。 具体包括: 电动汽车充电对电网影响 有序充电控制技术 电动汽车与电网互动(VehicletoGrid,V
[嵌入式]
MSP430第二章:电源管理
1. 电源管理模块介绍 PMM有如下特点: 宽供电电压(DVCC)范围:1.8 V ~ 3.6 V 可产生多达四个可编程级别的核心电压 (VCORE) 具有可编程阈值水平的DVCC和VCORE的电源电压管理器(SVS) 具有可编程阈值水平的电压监控模块(SVM) 断电复位(BOR) 软件可访问的电源故障指示灯 电源故障时的I/O保护 软件可选监控器或监控状态输出(可选) PMM模块管理所有有关电源供应与其供应设备的所有功能。它的主要功能首先是为核心逻辑产生电源电压,其次,提供几种机制来监控施加到设备的电压(DVCC)和核心产生的电压(VCORE)。PMM使用集成低漂调压器,产生从初级设备电压(DVCC)到次级核心电压(VCOR
[单片机]
MSP430最基本的IO配置
一、基本 1、io口可以认为就是那些板子上的管脚。 2、在使用io的时候需要先对他们进行配置 3、5529的io每一个都是单独可编程的,就是说可以对任意一个io单独进行配置。 4、P1和P2具有中断功能 5、都具有上下拉电阻 二、寄存器 PxIN 输入,将io配置为输入,这个时候接受外部数字信号。 PxOUT 输出 PxDIR 方向 初始状态应该是通过reset复位 当为0的时候,表示为输入 当为1的时候,表示为输出 PxIFG 中断标识 PxIES 中断边沿设置 =0上升沿 =1下降沿 PxIE 中断使能,当选择后,这个管脚的中断启动 PxSEL 端口选择,一个io既可以单纯用作io,也可以用作其他功能。 SEL=0时,管脚
[单片机]
51单片机(四)—— 51单片机仿真芯片的使用
在前面的文章中,我们都是直接用串口将程序烧写到单片机中运行,在这种开发方式下,如果程序有问题,很难找到问题所在,用过一些高端单片机的人可能知道,一般单片机是可以用调试器调试的,可以单步调试、设置断点等,对于查找程序的问题比较方便。51单片机比较低端,本身不支持在线调试,但是可以使用仿真芯片进行调试。本文我们就来介绍如何使用仿真芯片SST89E516RD。 SST89E516RD芯片是51单片机的仿真芯片。仿真芯片可以实现计算机与开发板板之间的真正在线调试,可以在软件调试模式下进行单步的执行指令、可设置断点等。每执行一条指令都可看见实验板的运行状态,并且可随时查看各个变量的值,对初学者非常有帮助。如果不使用仿真芯片而直接使用板上
[单片机]
MSP430G2553(二)Timer定时器说明与实例
MSP430设计了TIMER定时器,当定时器到达设置值(依据模式而定)时候就会跳转进入中断,作为常用功能,MSP430提供了三种计数模式,G2553中具有Timer0和Timer1两个16位定时器。 该文章中用一个定时执行的io口操作来演示如何设置计时器 1.配置timer 配置timer所用的寄存器有TACCR0 ,TACTL, TACCTL0 TACCR0:定时器的比较验证寄存器,16位,数值最大0xFFFF,0-65535 TACTL:定时器的控制寄存器,控制涵盖定时计数模式,分频,时钟源等 TACCTL0:定时器的比较验证控制寄存器,用于控制中断开关 寄存器的宏定义都在msp430g2553.h文件中,可以通过查询
[单片机]
STM32 JTAG/SWD禁用导致无法烧写解决方法
由于STM32的引脚功能较多,在为了方便硬件的使用,常会使用复用,重映射的功能,这里主要提及的是SWD和JTAG端口的引脚对应出现的问题。为了使得TIM2能够重映射到PA15和PB3,所以得对TIM2进行重映射,但是这样是不够的,因为下载调试端口SWD默认就占用了该引脚,所以重映射无效,因此必须先启动时钟 void Relay_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GP
[单片机]