有关单片机MSP430F5438的开发资料前LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COMTI提供·个基本的内置BsL程序。它通过RS232接∏支持常用的UART协议。要启用BS」吋需要使用器件的特定引脚来启动一个特定的BSL启动时序。如果需要响应特定的功能请求则需要一个特定的命令序列。通过持续执行一个用户自定义的编程地址操作或者复位就可以退出BSL装载区。用户还可以自定义一个口令来防止通过BSL非法访问MSP430的内存1.2.4]TA6邮箱系统(]MB)sYS模块通过JTAs接口来交换用户数据。建立JTAG邮箱系统的用意是希望在调试、编程、和测试的过稈中有一个接口可以直接访问CPU,它对所有的430系列的器件是相同的,并且它几乎不占用用户的应用资源。选用]TAG接口的原因是它兼容所有的430器件,对调试、编程和测试米说亡是一个独立的资源。]TAG邮箱系统的应用:I.快速的fash编程].为使用安全熔丝提供钦件进入口令K.实时的数据交换(RTDX)13存储器映射的使用和功能下图是MSP430F5438的内存映射图。尽管不同的器件的地址范围不同,但整体上是相同的。Can Generates NMI on read write/fetchGenerates PUC on tetch accessProtectable for read/write accessesAlays able to access PMM registers from(i Mass erase by user able fromMass erase by user able fromBbck erase by user able fromSegme nt e rase by user able fromAddressName/PurposeProperties00000M-OOFFFhPeripherals wth gaps00000h-00FFhReserved for system-extension00100h-0OFEFh00FFOh-oOFF3hDescriptor type00 FF4h-OOFFThstart ad dress of descriptor structure01000h4011FFhBSL_Seg_o012000-013FFhBSL Seg 101400h15FFhBSL Seg 2Xxxx01600h017FFhBSL Seg 3xxx17FCh-017FFhBSL Signature Location018oh0187=hUser Info D01880h018FFhUser info c0190oh0197Fhxxxx01980h019FFhUser Info A01AD0h-01A7FhCalibrationA8oh-0lAFFhnfo-Bock Device ID, De scriptor01c00h-05BFFhRAM 16K880-05BFFhAlternate Interrupt Vectors05c0oh-oFFFFhProgram b(64×5)kOFF7Ch-FF7FhApplication Signature LocationOFF8On-oFFFFhntemupt VectorsDOh-45BFrogram hi(192+x)k45c00h-FFFFFhVacant(1)对于SYS和PNM,访问权限是可编程的(2)在空闲的内存地址中,访问数据总线将得到03FF1值。1.3.1空白的存储器空间访问空白的存储器空间将产生一个NI中断。从空白地址读得到的结果是3ffh。在cP取指令过程中,它航相当于]NP$。访问空白的外设空间将产生一次PUC。启动代码执行之后,访问空白外设空间就和访问空白公司地址:州市登云路425号杭州利尔达科投大厦:57-88001:07:90959第3页共214页D丽沉LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COM内存地址样,将会产生次NM3.2JTAG的关闭机制在B0R之后01BFEh处的值将被当成复位向量去启动引导代码。引导代码査询了BSL的标志,应用程序可以根据这个标志选择关闭还是打开TAG的调试。1.33SYS的中断向量发生器SYS模块集中了所有用户NMI(UNM)源、系统NM源及其他模块的 BOR/POR/PU℃源。他们合并成三个中断向量。中断向量寄存器 SYSRSTIV, SYSSNⅣV, SYSUNⅣV用来确定哪个标志位请求了中断服务要求或者引发」 BOR/POR/PUC复位。当最高优先级的中断发生时,并且其使能,会在相应的寄存器 SYSRSTIVSYSSNⅣV、 SYSUNIⅴ产生一个数字徧移量。这个偏移量被直接加到稈序计数器(PC),形成一个分支选择进入中断处理程序。关闭中断不会影响 SYSRSTIV、 SYSSNIV、 SYSUNIV寄存器的值。读寄存器 SYSRSTIV、SYSSNIV, SYSUNIV,会在这些寄存器中白动复位挂起最高优先级的中断标志。如果有力外的中断标志位置位,在响应原先的中断服务后被立即响应。对寄存器 SYSRSTIV、 SYSSNⅣ、 SYSUNTV的写操作将会自动复位相应寄存器里的所有挂起的中断标志位1.3.3,1 SYSSNIV软件示例下面的软件示例是鮭议使用寄存器 SYSSNIV的方法。 SYSSNⅤ里的值被加到PC指针里,自动跳转到相应的中断服务程序。对于 SYSRSTIV和 SYSUNIV,效果类似。下面是一个应用在MsP430X5XX器件的一个例子。中断向量的优先级在具体的器件中可能不一样,要具体参考亡的数据手册。所有的向量应该用符号编码,可以很方使代码移植。SNI ISR: add &sYssNiv, Pc Add offset to jump tableRETIVector 0: No interruptJMP SVML ISRVector 2: SVMLIFGIMPSVMH ISRVcctor 4: SVMhIfgJMP DLYL ISRVector 6: DLYLIFGJMP DLYH ISRvector 8: DLY HIFGVMA ISRVector 10: VMAIFGJMP JMBI ISRVector 12: JMBINIFGJMBO ISRVector 14: JMBOUTIFGTask e starts hereRETIReturnSVML ISRVector 2Task 2 starts hereRETIReturnSVMH ISR:Vector 4Task 4 starts hereRETIReturnDELL ISRVcctor 6Task 6 starts hereRETIReturnDELH ISRVcctor 8Task 8 starts hereRETIReturnVMA ISRVector A公司地址:州市登云路425号杭州利尔达科投大厦:57-8800107:90959第4页共214页LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COMTask a starts hRETIReturnIMBI ISR.Vcctor CTask c startsRETIReturn1.4中断中断的优先级是固定的,并且是以各个模块的连接链米排列定义的,如图1-1所示。中断的优先级决定∫当系统同时有多个中断时,哪一个中断先执行。有三种类型的中断L.系统中断M.不可屏蔽中断(NMIN.可屏蔽中断RST/NMIPOR/PUCPUCcircuitKEYVhigh priorityINTSystem NMIUser NMIG旧ENMIModule A intModule b intInterruptdaisy chainWDT intand vectorsModule cMAB. 6LSBSModule D intlow priority图1·1中断优先级1.4,1不可屏蔽中断(NI)MSP430x5xx系列支持两级的不可屏蔽中断(NM),系统不可屏蔽中断(SNMI)和用户不可屏蔽中凼(UNMI)。一般来说,不可屏蔽中断不能被一般的中断使能位(GE)所屏蔽的。用户NM源只能通过独立的中断使能位(NMIE、ACCⅤIE、OFE)来使能当个用户NM中断响应后,其他的和与它处于同优先级的NMI被自动禁止,这样来防止冋同一优先级的NMI发生嵌套。程序执行的开始地址存储在不可屏蔽中断向量里,如表1-2所示。为了兼容早期msp430系列的所开发的软件代码,软件无需重新使能用户NM源。NMI断源的方框示意图如图1-2所示。发生用户NM中断的中断源如下:O.当 RST/NMI配置成NM模式时的一个边沿信号P.发生晶体失效Q.对 Flash存储器的非法访问发生系统NM中断的中断源如下:R.电压管理模块(PMM) SVMH/SVMH供应电压故障公司地址:州市登云路425号杭州利尔达科投大厦:57-88001:07:90959第5页共214页(D前LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COMS.PMM超时T.对空白内存的访问U.JTAG邮箱事件1.4.2SNM时序连续的系统NM中断发生的频率高于它们被处玛的速度时(中断风暴),这时允许主程序在系统NM中断处理RE∏]指令结束后和下一次系统中断处理程序开始前执行一糸指令。在这种情况下连续的系统NM是不能被用户NM所中断的。这就避兔了在高频率的系统NM中断下产生封锁操作。ACCVACCVIFGUser NMIE15AccⅥEIRQA- PUCRETINMIFG1.4(NMIIFG)IE1.4(NMIIE)User NMIIFGosc FaultFG1.1 (OFIFGIE1.1 (OFIESVMLPMMSVMLIFGSystem NMIPMMSVMLIEIRQAPUCRETISVMHPMMSVMHIFGP MMSVMHIESystJMB eventSYS JMBIFGSYSJMBIE图1-2带可重入保护的NM中断1.4.3可屏蔽中断可屏蔽中断由具有中断能丿的外设所产生。每一个可屏蔽中断源可以通过中断使能位单独所禁止,也可以通过状态寄存器(SR)中的总中断使能位(G|E)所禁止每个独立夕设中断将在各自的模块章节中进行只体的讨论。中断处理当有一个外设中断请求发生后,并且外设中断使能位和GIE位都置位的情况下,中断服务将被调用。而不可屏蔽中断只需相应的使能位被置位就可以了。1.4.4.1中断响应从检测到中断请求到第一条中断服务子程序指令被执行需要延迟时间5个时钟周期,图1-3所示。中断的逻辑执行过程如下:1完成当前正在执行的指令。2.将指向下一条指令的PC指针压入堆栈3.程序状态寄存器(SR)压入堆栈。公司地址:州市登云路425号杭州利尔达科投大厦:57-8800107:90959第6页共214页前LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COM4.当执行完最后·条指令时如果有多个中断被挂起等待响应时,则选择局优先级的中断。5.单中断源中断标志位自动复位。多中断源的标志位将被保留,以备软件查询使用。6清除状态寄存器(SR)。终止任何形式低功耗模式。因为G位被清除,其它的中断也被禁止。7.中断向量里的值被载入到PC里:程序中断服务程序的入口地址廾始执行。BeforeAftelInterruptInterruptItem1Item1sP→tem2TosItem2PCSPSRTOS图1-3中断处理1.4.4.2中断响应中断处理子程序的终止指令:RETI(从一个中断服务程序中返回)中断返回执行下面的流程,其占用了5个周期,如图1-4所示1状态寄存器(SR)从堆栈中弹出。先前SR中的GE和 CPUOF等各种设置开始生效,不管在中断服务程序中SR如何设置2.PC从堆栈中弹出,从断点处执行程序BeforeAfterReturn From InterruptItem 1Item 1Item 2sP→+tem2TOSPCPCSPSRTOSSR图1-4中新返回1.4.4.3中断嵌套如果在中断服务程序中GIE位置位,那么中断嵌套是允许的。当允许中断嵌套时,任何正在执行的中断将会被另外一个中断所打断,而不管它的中断优先级如何。公司地址:州市登云路425号杭州利尔达科投大厦:57-88001:07:909519第7页共214页( D前LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COM1.5工作模式MSP430系列是为超低功耗的应用而设计,不同的工作模式如图1-5所示。工作模式主要考虑以下三方面的需求:V.超低功耗W.速度和数据的吞吐量Ⅹ.最小的外设电流消耗低功耗模式LPMO到LPM4可通过设置状态寄存器中的 CPUOFF, OSCOFF,SCG0和SCG1位来配置。在状态寄存器中设计 CPUOFF, OSCOFI,SCG0和SG1模式控制位的好处是在进入到中断服务之前能够把当前的操作模式侏存到堆栈中。如果被压入釗堆栈中被保护起来的SR在中服务程序中没有被改变,那么当程序退出中断时将回到先前的操作模式。如果在中断服务子稈序中修改压入堆栈中的SR寄存器的内容,可以使程序返回到一个不同的工作模式。模式控制位和堆栈可以被何指令所访问。当设置了模式控制位后,所选择的操作模式将立即生效。使用被关闭时钟的外设操作将会被停止直到时钟被激活。当然也可以通过设置各自相关的寄存器来关闭外设。所有的IO引脚和RAM寄存器保持不变。可以通过允许的中断来实现唤醒功能。当进入LPM5模式时,电源管理模块的LDO被关闭。所有的RAM寄存器的内容和O配置丢失也包括IO的配置。可以通过电源或 RST/NMI事件来实现唤醒功能。在一些器件,也可以通过IO来文现唤醒功能。请参阅具体器件的 datasheet公司地址:州市登云路425号杭州利尔达科投大厦:57-88001:07:909519第8页共214页前LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COMFrom act ive modeLPM5VeoH= off(all modules off),BrownoutfaultPort wakeupSecurityRISIFNMIviolationReset wakeuDoBOReventRATANMIBOR(Reset eventVMH OVP-faulDLoad calibration datsvSH faultSVML OVPfaulDoPOR eveCSVsL faultPORWDT Active(Time expired, OverflowyviolatiWDT ActiveSecurity Key violatioPUCla sh key violationPeripheral area fetchFLL unlock fauCPUO FF=1OSCOFF=DActive Mode: CPU is ActiveMMREGOFF=1SCG0=DVarious Modules are activeto LPM5SCG1=0LPMOCPUIMCLK=。ffFLLACLK= on=onLPMACPUOFF=1CPUOFF1OSCoFF=1CPU/MCLK offOSCOFF=0FLL= offSCG0=1SCG0=1ACLK = offSCG1=0CPUOFF=1CPUOFF=1SCG1=1Voes=onOSCOFF=DOSCOFF=0LPM1SCG0=OSCG0=1CPUMMCLK= offSCG1=1SCG1=1FLL= offLPM3ACLK =onLPM2CPUMMCLK= offoncPU/McLK=。ffFLL= offAcLK=。nAcLK=。nVoos = onEventsOperating modes/ Reset phasestAny enabled interrupt and NMi performs this transtionArbitrary trans itionstAn enabled reset always restarts the device图1-5操作模式SCGI SCG0 OSCOFF CPUOFF模式CPU和时钟状态0活动CPU,MCLK是活动的。ACLK活动。SMCLK选择性活动 ISMCLKOFF-0LPM0CPU、MCLK都禁止。ACLK活动。SMCLK选择性活动( SMCLKOFF=0)如果ACLK、MCLK SMCLK SMCLKOFF=O)均源自DCO,则DCO仍然使能。DCO是使能的证,FLL亦使能。0IPM1CPU、MCIK禁止。ACLK活动。SMCLK选择性活动公司地址:州市登云路425号杭州利尔达科投大厦:57-88001:07:90959第9页共214页前LSD MCU TECIINOLOGY CO. LTD利尔达单片机技术有限公司WWW,LIERDA.COM( SMCLKOFF=0),如果ACLKMCLK SMCLK SMCLKOFF=0)均源自DCO,则DCO仍然使能。FI禁止LPM2CPU、MCLK禁止。ACLK活动。SMCLK禁止。如果ACLK、MCLK、SMCLK( SMCLKOFF=0)均源自DCO,则DCO仍然使能。FLL禁止。LPM3 CPU,MCLK禁止。ACLK使能。SMCLK禁止。如果ACLK源自DCO,则DCO使能。FLL禁止LPM4CPU和所有的时钟都禁止LPM5当 PMMREGOFF=1,芯片停止。不保留存储器数据1.5.1进入和退出低功耗模式个使能的中断事件可以把MsP430从LPM0到LPM4的低功耗模式下唤醒。LPM5只能通过电源循环或者RST/NMI事件来退出,在一些器件中也可以通过IO来唤醒退出。进入和退出1LPM0到LPM4的低功耗模式,可以通过下面的程序流程实现:Y.进入中断服务程序:PC和SR被压入堆栈CPUOFF,SCG1和 OSCOFF自动复位Z.从中断服务程序中的返回操作原先的SR从堆栈屮弹出,恢复先前的操作模式存储在堆栈中的SR的位可以在中断服务程序中修改,在RET指令执行后将返回到·个不同的工作模式i Enter LPMO ExamplebIs #GIE+CPUOFF SREnter PMoi Program stops hereExit LPMO Interrupt Service RoutincBIC #CPUOFF, O(SP)Exit Pmo on retiRETIEnter LPM3 ExamplebIs #GIE+CPUOFF+SCGl+SCGO SREnter LPM3Program stops hereExit Lpm3 Interrupt service routineBIC #CPUOFF+SCGl+SCG0, 0(SP)Exit LPM3 on RETIRETI公司地址:州市登云路425号杭州利尔达科投大厦e:5-8800157:99519第10共214页