MSP430 Family Kit Manual Datasheet by Texas Instruments

View All Related Products | Download PDF Datasheet
*9 TEXAS INSTRUMENTS MSP43O Family
Starter Kit
Evaluation Kit Manual
1999 Mixed-Signal Products
SLAS191A
IMPORTANT NOTICE
Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue
any product or service without notice, and advise customers to obtain the latest version of relevant information
to verify, before placing orders, that information being relied on is current and complete. All products are sold
subject to the terms and conditions of sale supplied at the time of order acknowledgement, including those
pertaining to warranty, patent infringement, and limitation of liability.
TI warrants performance of its semiconductor products to the specifications applicable at the time of sale in
accordance with TI’s standard warranty. Testing and other quality control techniques are utilized to the extent
TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily
performed, except those mandated by government requirements.
CERTAIN APPLICATIONS USING SEMICONDUCTOR PRODUCTS MAY INVOLVE POTENTIAL RISKS OF
DEATH, PERSONAL INJURY, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE (“CRITICAL
APPLICATIONS”). TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, AUTHORIZED, OR
WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT DEVICES OR SYSTEMS OR OTHER
CRITICAL APPLICATIONS. INCLUSION OF TI PRODUCTS IN SUCH APPLICATIONS IS UNDERSTOOD TO
BE FULLY AT THE CUSTOMER’S RISK.
In order to minimize risks associated with the customers applications, adequate design and operating
safeguards must be provided by the customer to minimize inherent or procedural hazards.
TI assumes no liability for applications assistance or customer product design. TI does not warrant or represent
that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other
intellectual property right of TI covering or relating to any combination, machine, or process in which such
semiconductor products or services might be or are used. TI’s publication of information regarding any third
party’s products or services does not constitute TI’s approval, warranty or endorsement thereof.
Copyright 1999, Texas Instruments Incorporated
iii
Contents
Section Title Page
1 Getting Started 1–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Installing the Software 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Hardware Installation 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 The STK/EVK-PCB Operating Conditions 12. . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 How to Install the Hardware 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Programming the Monitor Software Into an
Erased EPROM (EVK Only) 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 MSP-STK/EVK430x320 Target Connectors 16. . . . . . . . . . . . . . . . . . . . . . . . .
1.2.5 MSP-EVK430x330 Target Connectors 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.6 The LCD 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.7 Schematic for the MSP-STK/EVK430x320 110. . . . . . . . . . . . . . . . . . . . . . . . .
1.2.8 Schematic for the MSP-EVK430x330 111. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.9 Starting the STK Demo Program 112. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.10 Executing a Program with the STK 112. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.11 How to Use Breakpoints 122. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.12 Accessing the Port on the MSP430x320 STK/EVK 123. . . . . . . . . . . . . . . . . .
1.2.13 How to Use an Interrupt Routine 124. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Loading a Program Into the EPROM Via the Terminal 125. . . . . . . . . . . . . . . . . . . . . .
2 Monitor Commands 2–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Syntax Conventions 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Memory Organization 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Commands 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Monitor Restrictions 3–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Register R4 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 The Instruction CALL R4 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Peripheral Hardware/Registers 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 RAM Locations for the Monitor 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Writing Data Into the EPROM 35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Treatment of Interrupts 4–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Use of Interrupts in the Monitor Environment 41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Half Duplex Monitor Software UART 5–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 Transmission Parameters of the Software UART 51. . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Identification of Bit Pattern AA55h 51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Special Treatment of <ESC> in the Software UART 54. . . . . . . . . . . . . . . . . . . . . . . .
5.4 Transmitting One Character 55. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Transmitting a String 57. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 Receiving a Character 58. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Using Interrupt Vectors in the EPROM 6–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 The Identification Bit Pattern After a Reset 61. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
7 Memory Configurations for MSP430 Devices 71. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A Difference Between STK and EVK A1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of Illustrations
Figure Title Page
11 MSP-STK430 Program Group 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 MSP/EVK430 Program Group 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 Terminal Screen 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 Programming the Device 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 MSP-STK/EVK430x320 Target Connectors 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 MSP-EVK430x330 Target Connectors 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17 Supplied LCD Mechanical Data 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 LCD Segment Digits 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 LUXMETER Demo Program 112. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
110 Properties 113. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111 Getting Started Demo Program 114. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112 ASM430 Assembler Window 115. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113 gs_stk1.asm Window Display 116. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
114 gs_stk1.asm 117. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115 Terminal Window 118. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
116 Terminal Transfer 119. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
117 HyperTerminal Display 120. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
118 Terminal | execute gs_stk1.txt 121. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
119 Terminal Breakpoint 123. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
120 Basic Timer Interrupt Routine 124. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121 Terminal | Interrupt 125. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122 Programming Voltage and Jumper Location 126. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123 EPROM LCD and Interrupt Routine 127. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
124 HyperTerminal Window 128. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125 Transfers \ Send Text File 128. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
126 Send Text File Dialog Box 129. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
127 Burn Failed Message 130. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21 Memory Organization 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 Help Command 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23 Byte, Word Commands 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24 Initializing the Terminal Program Command 24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25 User Reset Command 25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26 Register Command 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27 Register Specified Command 27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28 Modify One Register 28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 Modify Additional Registers 29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
210 Revise Memory Modification 210. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
211 Memory Byte, Word Command 211. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
212 Memory Modification 212. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
213 Revised Memory Modification 213. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
214 Transfer Data Command 214. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
215 EPROM Erase Check Command 215. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
216 Location of a Breakpoint Command 216. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217 Set a Breakpoint Command 217. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
218 Clearing a Breakpoint Command 218. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
219 Clearing a Breakpoint Location 218. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
220 Starting the Application Command 219. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31 CALL R4 Instruction Code 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32 RAM Area 272h to 3FEh 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33 RAM Area 200h to 3FFh for the MSP430x32x Family 34. . . . . . . . . . . . . . . . . . . . . . . . . . .
34 Temporary Burn Routine in the MSP430x32x RAM Area 35. . . . . . . . . . . . . . . . . . . . . . . .
41 Monitor Interrupts for the MSP430x32x Family 41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 P0.0 Interrupt Example 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 Identification of Bit Pattern AA55h for the MSP430X32x Family 52. . . . . . . . . . . . . . . . . .
52 Special Treatment of ESC 54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53 Transmitting the s Character 56. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61 Identifying AA55h After Reset 62. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71 Memory Map of the STK/EVK 71. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72 Memory Map of the STK/EVK430X32x 72. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73 Memory Map of the STK/EVK430X33x 73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of Tables
Table Title Page
11 LCD Connector 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31 Peripheral Registers and Bits 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41 Type of Interrupt 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 Interrupt Vectors for the MSP430x32x Family 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43 Interrupt Vectors for the MSP430x33x Family 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 Function/Vector 51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
11
1 Getting Started
This chapter provides installation and programming instructions for the starter Kit MSP-STK430x320, and
the evaluation Kits MSP-EVK430x320 and MSP-EVK430x320.
NOTE:
This manual covers both the MSP-STK430x320 and MSP-EVK430x320 kits. The
actual icons and/or windows on the computer screen may differ from those shown
in the book due to software version upgrades.
In this documentation, the term STK/EVK is used interchangeably to represent both kits. The programs used
in this manual are provided in the installation directory ..\stk\examples, or in ..\evk\examples. These
programs demonstrate the user-friendly environment of the MSP430 starter and evaluation kits.
The main difference between the MSP-EVK430x320 and the MSP-EVK430x330, besides the peripheral
blocks, is the memory map. The memory map is described in chapter 2 under Memory Organization.
1.1 Installing the Software
Exit all MS-Windows programs prior to loading this software.
The setup program installs all necessary files for running programs on the STK/EVK. The setup program
adds the appropriate program group and icons to the Windows program manager.
To install the software:
1. Insert MSP430-STK/EVK disk 1 in the floppy drive and run setup.exe.
2. In the Select Components window, choose the applications to load. The Starter Kit and
Simulation Environment button are the default. Make a choice and select Next.
3. Choose the desired COM port for the hardware connection. The default is set to COM port 2.
Select the port to be used, then select Next.
4. Read the licensing agreement and answer the question at the bottom of the screen. If YES is
selected to the licensing agreement, a prompt to close all other applications running in Windows
will appear.
5. The setup.exe program automatically creates and loads the MSP430-STK/EVK software to the
recommended directory (C:\ADT430), unless otherwise indicated. Choose the directory and
select Next.
6. Insert Disk 2 when prompted. Select OK when disk 2 is in the floppy drive.
7. Setup.exe places MSP430 icons in the ADT430 program folder, unless otherwise indicated.
Select Next.
8. Setup is complete. Please take a moment to fill out and return the registration card to ensure
receiving further software updates.
The ADT430 program folder should contain the following icons: Simulation Environment, Read me SIM,
Help SIM, ASM430 Assembler, Sensor Demo, and UnInstall the STK430 and EVK430 Terminals.
MS-Windows is a trademark of Microsoft Corp.
E C: ‘\ W/NDOWS \SfJ/t Mmm thg/me #107430 rrr E" E % ASM43D HeadmeSTK 5TK43U UnlnslalSTK Assembler T elminal E; c; \ wmpows ‘u 5mm MD/m \ng um um r430 FF F EVKABU ASM43EI Read me EVK Unlnslall EVK ASSmeIEl
12
Figure 11. MSP-STK430 Program Group
Figure 12. MSP/EVK430 Program Group
NOTE: EVK/STK430 Terminal icon
Before clicking the EVK/STK430 Terminal icon, ensure the standard Windows Applications
Terminal and Notepad are installed in the Windows directory. The Windows terminal emulator
is configured to use serial port COM2 by default.
1.2 Hardware Installation
The STK/EVK kit hardware includes the STK/EVK-PCB and one 9-pin cable for connection to the PCs serial
communication port. The EVK also contains the PRG430 along with the necessary cables.
1.2.1 The STK/EVK-PCB Operating Conditions
Temperature range 10°C 45°C
Humidity 40% 70%
Current consumption
(Approximate Values) 0.7 mA at 3 V, 25°C, no connection to serial port
1 mA at 5 V, 25°C, no connection to serial port
5 mA at 3 V, 25°C, serial port connected
5.5 mA at 5 V, 25°C, serial port connected
Note: The current consumption is measured without any additional external
connections.
Operating voltage 3 V or 5 V
Note: The operating voltage is selectable as 3 V or 5 V on the STK/EVK-PCB
by making the appropriate connections (see Figure 15 or 16,
depending on the system you have).
13
1.2.2 How to Install the Hardware
This section targets three main parts: the setup of the serial interface, the programming adapter, and the
power supply.
LCD and UVEPROM
The EVK is supplied with the LCD and a UVEPROM, separate from the EVK PCB. Install the EPROM and
LCD into the EVK PCB before proceeding. Refer to the STK/EVK target connectors section for the correct
LCD orientation. The STK has a one-time programmable (OTP) device mounted on the PCB.
Serial Communication
Connect the STK/EVK-PCB to the serial communications port of the PC using the 9-pin cable that is
supplied. Use the Settings/Communications. . .command to set the communication port to which the cable
is connected. The default selection is COM2.
The HyperTerminal (which uses the Terminal icon) is used to communicate to the STK/EVK MSP430 chip
via a Monitor Program that has already been downloaded into the EPROM of the chip. The HyperTerminal
settings used are: data bits7; parityeven; stop bits1; flow controlnone.
Voltage Sources
The following four sources supply the voltage for the STK/EVK-PCB:
1. PC serial interface
Typically, the serial interface of the PC supplies the STK/EVK-PCB voltage using the 9-pin cable.
The user must determine if the serial interface can meet the electrical requirements of the
STK/EVK PCB. Some PC manufacturers do not source enough current and voltage from the
serial port to power the STK/EVK devices. If this is the case, a 9-volt battery can be connected in
parallel to the serial port.
2. 3.6 V lithium battery
A battery can be assembled onto the STK/EVK that supplies the STK/EVK-PCB with power.
3. Programming Adapter
The Programming Adapters power supply is stabilized to 5 V (this can only be used on the EVK).
4. Target system
The power supply from a target system can be connected to the STK/EVK-PCB. A supply voltage
of 3 V to 5 V can be used.
CAUTION: Different Power Supplies
If there is more than one power supply connected, the STK/EVK is supplied
with the higher voltage, provided the data sheet supply voltage ranges are
not exceeded.
If the HyperTerminal program is running on the PC, the serial communication cable has been installed, the
proper com port is selected, and the proper voltage is supplied, the screen will look like Figure 13.
, STK1W557HypelT ...... I EE EE EE E
14
MSP–STK430A320
>_
Figure 13. Terminal Screen
A help message is displayed on the screen automatically if the Monitor message MSP-STK430x320 is not
received by the STK/EVK control software, where x is the current revision letter.
Reset Button
NOTE: Pins for the STK Demo Program
Some pins of the MSP430 device will be used for the sensor demo program (only available on
the STK):
A5 (connected to the sensor)
Seg0. . .Seg13 (connected to the LCD Display)
Com1. . .Com4 (connected to the LCD Display)
R03. . .R33 (connected to the LCD R-Ladder)
P0.0 (connected to the Trigger button)
The string MSP-STK430x320 should appear in the HyperTerminal window (white background
area of the STKW95 HyperTerminal window). In addition, the LCD display on the evaluation
board (EVK or STK) should display MSP430.
If both do not appear, simply press the reset button on the evaluation board (identified with an
RES etched next to it) one time.
NOTE:
The MSP430 evaluation board requires very low supply voltages due to its ultra-low
power consumption characteristics. In this case, the RS232 interface, or a 3.6 V
lithium battery (if installed) provides the supply voltage for the STK/EVK.
Due to PC com port differences, it may be necessary to jumper the board down to
3 V or supply an external battery. To jumper the board, refer to the diagram in the
STK/EVK Target Connectors section, and place one jumper across the Vcc holes,
and another across the Vcc/LCD holes where the default for both of these is open.
HyperTerminal is a trademark of Hilgraeve.
3': PROGRAM DEV/CE MSP 430 rum“: mo.._m.m ' “"9““ _ E wilh Vevjly Palh: c:\aduan\evk I: "i“. 5.“! _ Eilex: Qilecloliex: _ Em, Check _ _ 1! 1 ‘1 L] l— b! file lea me‘lxl [examples] ' ' M“ 1"” ' PIE325 mm" ‘5“ E I 1 RAM 5123 [—9.] - Parallel Poll — -Hange for Erase Check I Readout— : t::1; 5'5": -"' Length: -"' C LPT; _ - Slam: Communication Conlvol Menage:
15
Changing the RS232 interface to another COM port (other than COM2) of a personal computer, requires
a change to the COM port assignment in the current version of the terminal emulator.
1.2.3 Programming the Monitor Software Into an Erased EPROM (EVK Only)
The following steps are recommended to program the Monitor into an EPROM after it has been erased:
1. Connect the EVK-PCB to the programming adapter.
2. Connect the programming adapter to the PC.
3. Apply the power supply to the programming adapter (not included in the kit).
4. Start the Program Device software and:
select the file mon_140.txt in the STK directory
select with Verify
select EPROM device
select the correct parallel port where the adapter is connected
click on the Program button.
For detailed information see the MSP430 Family Programming Adapter Manual.
Figure 14 shows the pop-up that will appear when programming the Monitor software into an erased
EPROM EVK.
Figure 14. Programming the Device
Di ital Si nals: #5:.» , 1 5‘ A 5 n v a . 1 'n.‘ ‘ A A A a :2 J wulum U
16
1.2.4 MSP-STK/EVK430x320 Target Connectors
Digital Signals:
Pin 1 XIN Pin 9 NC Pin 17 PO.0
Pin 2 XOUT Pin 10 CI Pin 18 PO.1
Pin 3 XBUF Pin 11 TP.0 Pin 19 PO.2
Pin 4 RST/NMI Pin 12 TP.1 Pin 20 PO.3
Pin 5 TCK Pin 13 TP.2 Pin 21 PO.4
Pin 6 TMS Pin 14 TP.3 Pin 22 PO.5
Pin 7 TDI Pin 15 TP.4 Pin 23 PO.6
Pin 8 TDO Pin 16 TP.5 Pin 24 PO.7
External Supply 35V dc
Only Required If Stand
Alone Operation
Pin 1 A4
Pin 2 A5
Pin 3 A2
Pin 4 A3
Pin 5 SVCC
Pin 6 REXT
Pin 7 A0
Pin 8 A1
3 V
5 V Close
Open
5 V
5 V
3 V
LCD
3 V
5 V
3 V
Open
Close
Close
VCC
VCC
VPP-Input
Apply 12-20 V dc If
Programming Using Serial
Port
Default
VPP Fuse F250 mA
Connector To Programming
Adapter MSP-PRG430x
(Only EVK)
LCD Signals: LCD (Only STK)
Pin 1 R33 Pin 11 SEG6 Pin 21 SEG16
Pin 2 R23 Pin 12 SEG7 Pin 22 SEG17
Pin 3 R13 Pin 13 SEG8 Pin 23 SEG18
Pin 4 R03 Pin 14 SEG9 Pin 24 SEG19
Pin 5 SEG0 Pin 15 SEG10 Pin 25 SEG20
Pin 6 SEG1 Pin 16 SEG11 Pin 26 COM0
Pin 7 SEG2 Pin 17 SEG12 Pin 27 COM1
Pin 8 SEG3 Pin 18 SEG13 Pin 28 COM2
Pin 9 SEG4 Pin 19 SEG14 Pin 29 COM3
Pin 10 SEG5 Pin 20 SEG15 Pin 30 NC
Figure 15. MSP-STK/EVK430x320 Target Connectors
Vpp—lnput ADP’Y 124W DC i' . Connscts k0 Serlal programmlng vla Senal P0“ or PC Vpp Fuse F250mA PoMnotassembledi / (not assembled) +—'3 - I J2 Exkemal Supply 3«5V DC 0 ; Only required If stand alone operation Conneclorlo a ‘6 55 @ 2:12;“an *N a 9 Ground MSP»PRG4SOB I.E u 3E “‘5 V00 \ __‘. m 5%. "$3 '1 3v close E- a E E - 5v 'open ,mEI IElE/S Vcc LCD LCD \ 3“} 3:; 32:3 . , ‘ rconeoo—oze g 3" 3V °I°55 W | -« ' Devaun ’Resetbunon PDJ u: vmnzcnx fl— For; PM \ LCD 35 was \ was a: TPO.‘ a 888$888+I 6' ,_ XBUF n PM PM . D TCK \ TDI Buzzer (not assembled) LCD (no! assembled) M COMZ COMO SEG‘ SEGS _ _ SEGZ7 SE62? R13 Vec NC COM3 DOM! SE60 SE62 SEGZG SEGZB R03 R23 NC
17
1.2.5 MSP-EVK430x330 Target Connectors
Pin z = Power
g = Ground
Figure 16. MSP-EVK430x330 Target Connectors
18
1.2.6 The LCD
Figure 17 shows the segment type LCD supplied with the STK/EVK.
40.00 ± 0.25
1.80x 19 = 34.20 ± 0.10
0.90 ± 0.05 0.90
2.90 ± 0.15 2.90 ± 0.15
120
Digit 7 6543 210
2.00 8.30 4.10
VEWING AREA
6.00 4.85
±
14.40 0.25
Figure 17. Supplied LCD Mechanical Data
Ema HWQ 0G
19
The LCD is connected to the STK/EVK as shown in Table 11.
Table 11. LCD Connector
PIN NO. COM1 COM2 COM3 COM4
1 COM3
2 COM4
3COM2 – –
4 COM1 – – –
5– – – –
6 6C 6F 6H 6E
7 6A 6B 6D 6G
8 5C 5F 5H 5E
9 5A 5B 5D 5G
10 4C 4F 4H 4E
11 4A 4B 4D 4G
12 3C 3F 3H 3E
13 3A 3B 3D 3G
14 2C 2F 2H 2E
15 2A 2B 2D 2G
16 1C 1F 1H 1E
17 1A 1B 1D 1G
18 0C 0F 0H 0E
19 0A 0B 0D 0G
20 COM1 – – –
E
A
FB
G
EC
D
H
H
C
Digit 60Digit 7
Figure 18. LCD Segment Digits
Ha
110
1.2.7 Schematic for the MSP-STK/EVK430x320
A
A
B
60 SEG20
59 SEG19
58 SEG18
57 SEG17
56 SEG16
55 SEG15
54 SEG14
53 SEG13
52 SEG12
51 SEG11
50 SEG10
49 SEG9
48 SEG8
47 SEG7
46 SEG6
45 SEG5
44 SEG4
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
9
8
7
6
5
4
3
2
1
68
67
66
65
64
63
62
61
PO.1
PO.2
PO.3
PO.4
PO.5
PO.6
PO.7
R33
R23
R13
R03
SEG0
SEG1
SEG2
SEG3
SVCC
REXT
A2
A3
A4
A5
XIN
XOUT
CI
TP.0
TP.1
TP.2
TP.3
TP.4
TP.5
PQ.0
DVCC
AVCC
DVSS
AVSS
A1
A0
XBUF
RST/NMI
TCK
TMS
TDI
TDO
COM3
COM2
COM1
COM0
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MSP430P325IPM
U3
STK 64 QFP CHIP
EVK 68PLCC SOCK
RI7
820 k RI8
820 k RI9
820 k RI6
1.8 M
SOLDER
VCC =3 V
VCC =5 V
EYES
0
Open
GND
6
7
8
9
1
2
3
4
5
J2
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
COM1
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
COM1
COM2
COM3
COM4
SEG0
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
SEG8
SEG9
SEG10
SEG11
SEG12
SEG13
SEG14
COM0
COM1
COM3
COM2
Not Assembled On EVK
D11
LL503A
AK
R15
2.7 k
D11
LL40348
AK
R20
220 k
8C850
E
B
C
GND
C7
22µF 16 V
+
I
D9
LL4348
AK
GND
8C850
T4
T3
C
E
T2
E
C
B
D8
LL4348
AK
D7
LL4348
AK
R10
33 k
R9
100 k
8C850
B
C
E
R14
22 K
R13
100 k
GND
3
4
1
2
2
4
6
8
1
3
5
7
9
J1
10
11 12
14
13
R23
1M
TAST1
Not Assembled On EVM
J4
GND
C7
22 pF
6
1
x1
32 kHx
R24
00HM
1
3
2
r9l232
D5
R22
2.7 k
Not Assembled On EVM
NC
LM283SLP2.5
U5
CA
GND
D4
LL103A
AK
DVCC/AVCC
VCC_MSP
XOUT
RST/NMI
GND
J1 Not Assembled onSTK
10 DNF
C7
+
47µF 10 V
C9
GND
R1
100 k
D3
LL103A
K
R23
1 k
R3
4.7 M
3
4
1
2
J3
GND
C1
100 NF
TAST1
RESET
R7
270 K
GND
D6
LL103A
AK
C5
C6
100 NF
10µF 30 V
1
2
3
45
6
7
8
R5
560 K
R4
510 K
R6
150 K
S/F
PQ
GND
EN_
OUT1
OUT2
IN3
IN2
C4
10µF 30 V
+
+
100 NF
C3
D2
LL103A
AK
D1
LL103A
AK
VCCEXT
SOLDER EYES
VCC = 3 V 0
VCC = 5 V Open
TPS720100
2
3
45
6
7
S/F
PQ
GND
EN_
OUT1
OUT2
IN3
IN2
R6
100 k
47µ36 V
+
C8
18
D13
LL303A
K
A
D12
LL434B
K
D14
LL383A
AK
R21
10 k
TL751L1200
U1
U4
GND
BU1
V_EIN
F1
FD 25 A
R11
120 K
R12
100 k
T1
2c h 35 am 4‘ ._¢ é kw 8) 15 m w u 15 ‘2 m m w 1 $3 3 T w m J; a h‘ “E , Sc 5 m L 3:: :5: < 3.="" ,3="" :="" 8553="" e="" .2="" 2c="" h="" 2="" m="" 2="" 30="" n="" com="" 0="" mm="" an="" d="" aaa!)="" mm;="" m="" 9mm="" ‘="" sohnnm="" am="" w="" 2="" n33;="" .|_="" iéiég="" .siég="" km="" :6="" 8)="" (="" s.="" 18="" v="" ‘="" a="" e.="" mm="" mm="" le5;="" e="">
111
1.2.8 Schematic for the MSP-EVK430x330
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
VCC
CI
TP0.0
TP0.1
TP0.2
TP0.3
TP0.4
TP0.5
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0
P2.1
P2.2
GND
VCC
NC1
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
P2.3
P2.4
P2.5
P2.6
P2.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
P4.0
P4.1
P4.2
P4.3
P4.4
P4.5
P4.6
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
P4.7
GND
COM3
COM2
COM1
COM0
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
NC2
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
GND
XIN
XOUT
XBUF
RST
TCK
TMS
TDI
TDD
VCC
R23
R13
R03
S29
S28
S27
S26
S25
S24
S23
R23
1.5 k
R24
10 k
R25
100 k
R26
NTC
R27
NTC
C10
390 nF
C9
39 nF
Not Assembled
R28 0
Not Assembled
Buzzer
Not Assembled
COM1
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
COM1
COM2
COM3
COM4
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
COM0
COM1
COM3
COM2
T21B010
LCD
J2
6
7
8
9
1
2
3
4
5
D15 LL103A
D14
LL103A
E
B
C
T2
BC860
R15
22 k
R16
100 k
D10
LL103A
C13
+
22 µF
D8
LL4148
GND R18
2.7 k
D5
LL4148
220 k
R16
C
B
E
T3
CB
E
T4
BC850
BC850
R13
820 k
R14
100 k
T1
E
B
C
BC850
P0.2
R12
820 k
D7
LL4148
D6
LL4148
R11
100 k
P0.1
R10
100 k
IN
C4
C3
EN
OUT
C1
C2
NC
1
2
3
4
8
7
6
5
TL751L12QD
D7
LL103A
R9
100 k
C12
33 µF
D12 LL103A
D11
LL4148
F1
F0.25 A
GND GND
C12
100 N
VCC
BU1
Buchse
GND
Not Assembled
SF
PG
GND
EN
OUT1
OUT2
IN1
IN2
8
7
6
5
1
2
3
4
TPS7201QD
R7
270 k
D5
ZDIODE
9.1 V
C7
10 µF
+
C8
100 N
R5
560 k
R4
510 k
R6
150 k
GND
J1
C610 µF
+
10 V
C6100 N
Solder Eyes
VCC = 3 V, 0
VCC = 5 V, Open
1
3
5
7
9
11
13
2
4
6
8
10
12
14
TDO
TDI
TMS
TCK
GND
VCC_MSP
XOUT
TDI
R8
1OO k
GND XIN
32 KHz
X1
XOUT
R22
820 k
R23
R21
820 k
R13
R20
820 k
R03
R19
1.8 M
GND
Solder Eyes
VCC = 3 V, 0
VCC = 5 V, Open
VCC
D4
LL103A
R3
4.7 M
RST
C4
100 N
R1
C3
100 N
D3
LL103A
R7
1 k
100 k
Reset
Test3
GND
2
S1
1
C2
100 N
C1
47 µF
+
10 V
D2
LL103A
D1
LL103A
VCC EXIT
GND
3 6mm D emo
112
1.2.9 Starting the STK Demo Program
In the HyperTerminal program, type a d to start the demo program. If the HyperTerminal program has been
closed, double click on the Sensor Demo icon to start the demo program.
LUXMETER Demo Program:
The STK Monitor includes a demo program that shows a metering application. The application hardware
consists of the light sensor, a trigger button, and a voltage reference for the analog-to-digital converter.
When the program starts, the screen displays demo and the measured light values are shown on the LCD
display (measured in irradiance). The values are updated every 5 seconds. The A on the left side of the
LCD indicates that the shown value is less than one second old. Any keystroke interrupts the demo program
and switches back to the Monitor/HyperTerminal program. If the STK is disconnected with the demo running,
the program will run until a mounted battery is discharged. To correctly exit the program push the <ESC>
key.
Voltage Reference
Trigger Button Light Sensor
Figure 19. LUXMETER Demo Program
1.2.10 Executing a Program with the STK
To execute a program, write a test program or use the gs_stk1.asm file, which is located in the
C:\ADT430\STK\EXAMPLES directory. Figure 111 is the Getting Started demo program.
NOTE: Programming Hint
During development, a program should reside in the free RAM area (240h-3FFh for the
MSP430x320, and 272h50Ch for the MSP430x330) making program modification during
debug phase possible. Any code written to the devices EPROM area on the STK cannot be
erased. The stack pointer for the MSP430x33x device resides at 005DEh.
C:\ADT lt3U\ASM \ASM 43D.EXE -| -z C'\ADT43EI\STK\EXAMFLE5I _ —\
113
How to use the command line parameters of the assembler:
The default command line parameters of the assembler (asm430.exe) are -z and -I. These
parameters are set in the Properties of the Assembler icon after installation. For further
information on command line parameters see the Assembly Language Tools User’s Guide.
To change the parameters, select the ASM430 Assembler icon with one left mouse click. Click on
the file menu in the Windows Program Manager and select the Properties command. Select the
shortcut tab. Depending on the version of Windows being used, the screen will show the following
dialog on the screen:
Command
Figure 110. Properties
NOTE: File | Properties...
If the installation is not changed, the parameters -z and -I will be added to the targets statement.
If the Start in: properties are adjusted to the source code directory, the path of the source file
should not be entered.
114
;****************************************************************************
;Getting Started 1 Demo Program (C) TEXAS INSTRUMENTS on 2/96
;****************************************************************************
SIM .set 0 ; 1 = Simulator
; 0 = STK/EVK
RAM_orig .set 00240h ; Free Memory startadress
SP_orig .set 003DEh ; stackpointer
;––– Control register definitions
IE1 .equ 0h
IE2 .equ 01h
IFG1 .equ 02h
IFG2 .equ 03h
ME1 .equ 04h
ME2 .equ 05h
WDTCTL .equ 0120h
WDTHold .equ 80h
WDT_wrkey .equ 05A00h
GIE .equ 08h
;****************************************************************************
;Reset : Initialize processor
;****************************************************************************
.sect MAIN ,RAM_orig
RESET
MOV #SP_orig,SP ; initialize stackpointer
MOV #(WDTHold+WDT_wrkey), &WDTCL ; Stop Watchdog Timer
;––– Clear Special Function Registers
MOV.B #08h, IE1 ; ! Monitor !
CLR.B IE2
CLR.B IFG1
CLR.B IFG2
JMP $ ; Endless Loop
File gs_stk1.asm
Figure 111. Getting Started Demo Program
.5153 M430 Assemble! Phil! Nan" nssu-ler wrshn L- [Iv/vs] .p’rigll 1:) "15.19“ Imus lnslruluntz. Incorpnnm: su-ru Mn [45-]:
115
Use the assembler icon in the ADT430 Program Folder to assemble the gs_stk1.asm file, which is located
in the C:\ADT430\STK\EXAMPLES directory, and is shown in Figure 111. Ensure that the Start in: property
of the assemble icon is set to the source directory (C:\ADT430\STK\EXAMPLES). Click on the ASM430
Assembler icon.
The following screen will appear (the version number, date, and copyright date may differ from that shown
below):
Figure 112. ASM430 Assembler Window
NSF"! nacro Issenllr version 1.. [IV/M] Copyright (c) "osmoo lens Ilsvuunks Incurpuraua Source HI- |.asn]: 9575!!” .text untnlualizea .uau unillthlizea .IISS unhithuzw MI” 2!. 258 Sin 0‘ inilhnnn la“: mer- nsseuler run tnwleten for gs_stlu.asn !
116
Enter the source name gs_stk1 and press ENTER. This will cause the assembler to assemble gs_stk1.asm
into gs_stk1.txt. The following display will appear:
Source File
Figure 113. gs_stk1.asm Window Display
The assembler output file is named gs_stk1.txt. This file is created only if the assembler is invoked with the
option -z. To verify that the gs_stk1.txt file was created, check the ADT430\STK\EXAMPLES directory.
An additional listing of gs_stk1.lst is created when the option -l is used. To review the gs_stk.lst output,
double-click on the file name and view using an appropriate viewer. Figure 114 is a listing of gs_stk1.asm:
117
MSP430 Macro Assembler Version 1.08 [09/96] Tue Jun 30 07:20:38 1998
Copyright (C) 1995, 1996 Texas Instruments Incorporated
c:\adt430\stk\examples\gs_stk1.asm Page 1
1;***************************************************************************
2;Getting Started 1 Demo Program (C) TEXAS INSTRUMENTS on 2/96
3;***************************************************************************
4
5;*** Set this variable to 1 for the use on the Simulator***
6 00 SIM .set 0 ; 1 = Simulator
7 ; 0 = STK/EVK
8 0240 RAM_orig .set 00240h ; Free Memory startadress
9 03de SP_orig .set 003DEh ; stackpointer
10
11 ;––– Control register definitions
12
13 00 IE1 .equ 0h
14 01 IE2 .equ 01h
15 02 IFG1 .equ 02h
16 03 IFG2 .equ 03h
17 04 ME1 .equ 04h
18 05 ME2 .equ 05h
19
20 0120 WDTCTL .equ 0120h
21 80 WDTHold .equ 80h
22 5a00 WDT_wrkey .equ 05A00h
23
24 08 GIE .equ 08h
25
26;**************************************************************************
27; ; Reset : Initialize processor
28;**************************************************************************
29 0240 .sect MAIN ,RAM_orig
30 0240 RESET
31 0240 403103de MOV #SP_orig,SP ; initialize stackpointer
32 0244 40b25a800120 MOV # (WDTHold+WDT_wrkey) , &WDTCTL
; Stop Watchdog Timer
33
34 ;––– Clear Special Function Registers
35 024a 42f20000 MOV.B #08h,IE1 ; ! Monitor !
36 024e 43c20001 CLR.B IE2
37 0252 43c20002 CLR.B IFG1
38 0256 43c20003 CLR.B IFG2
39
40 025a +3fff JMP $ ; Endless Loop
No Errors, No Warnings
gs_stk1.lst
Figure 114. gs_stk1.asm
, STK1W557HypelT ...... I EE EE EE E
118
Next, the object file gs_stk1.txt will be downloaded to RAM of the MSP430-STK/EVK.
The PC downloads the object file gs_stk1.txt to RAM of the MSP430_STK/EVK. The PC uses the
HyperTerminal to communicate with the Monitor Program in the EVK/STK EPROM or ROM.
Windows95 (NT) provides a terminal emulator icon under Start/Programs/Accessories.
Double-clicking with the mouse on the STK430 terminal icon also starts the HyperTerminal. The STK430
icon is located under the ADT430 program group.
Serial communication is set up for the STK/EVK as needed. When the serial interface of the STK/EVK is
connected to the COM2 port of the PC, the LCD display on the STK/EVK will show MSP430, and the Monitor
in the MSP430 device will send the following string:
MSPSTK430A320
>_
Figure 115. Terminal Window
. STKIWSS , HypevTeuninal
119
Open the pulldown menu Transfer in the HyperTerminal to load the program using the RS232 into the
STK/EVK, as shown in Figure 116. Select the Send Text File menu item.
NOTE:
MSPSTK430A320
>_
Send Text File
Receive text file...
View Text File...
Send Binary File...
Receive Binary File...
Pause
Resume
Stop
Transfer
Figure 116. Terminal Transfer
NOTE: The help menu can be displayed by typing an h.
. STK1W95 , HypevTelminal WV EU FF E
120
Select the assembler output file gs_stk1.txt in the examples directory from the Send Text File . . dialog box.
Figure 117 shows the HyperTerminal screen displaying the following data after loading gs_stk1.txt into the
STK/EVK.
Init
MSPSTK430A320
>@0240
31 40 DE 03 B2 40 80 5A 20 01 F2 42 00 00 C2 43
01 00 C2 43 02 00 C2 43 03 00 FF 3F
q
>downloaded _PC_ _SP_ _SR_
reg 0000 4204 03de 0008 0000 f48c cd9f 0069 000e
reg 0008 : 0c62 4071 0000 ffd0 2051 0e10 08ac f84e
Figure 117. HyperTerminal Display
. STK1W95 , HypevTevminal FF EC FF F
121
In the HyperTerminal , type r0 <ENTER> to modify the program counter of the user program. The program
displays the current content of r0. Next type 0240 <ENTER> to set the start address as defined in
gs_stk1.asm. Exit the modify register mode by pressing the <ESC> key.
Each time the SPACE bar is pressed, the program executes one single step and the program displays the
registers contents. Typing a g followed by <ENTER> causes the program to continue from the current
address stored in the program counter. Pressing the <ESC> key stops the program.
NOTE: Single Step
The single step command should only be executed if the program counter points to an
instruction in the RAM. Otherwise this command acts like a go command.
>@0240
31 40 DE 03 B2 40 80 5A 20 01 F2 42 00 00 C2 43
01 00 C2 43 02 00 C2 43 03 00 FF 3F
q
>downloaded _PC_ _SP_ _SR_
reg 0000 4204 03de 0008 0000 f48c cd85 2ed4 10de
reg 0008 0c42 4068 0000 ffd0 2051 0e10 08ac b8
>r0
=reg 0000 4204 0240
=reg 0001 03de !
reg 000: 0008
>step
>executed _PC_ _SP_ _SR_
reg 0000 0244 03de 0008 0000 f48c cd85 2ed4 10de
reg 0008 0c42 4068 0000 ffd0 2051 0e10 08ac b842
>go..
>user break _PC_ _SP_ _SR_
reg 0000 025a 03de 0008 0000 f48c cd85 2ed4 10de
reg 0008 0c42 4068 0000 ffd0 2051 0e10 08ac b842
>
Figure 118. Terminal | execute gs_stk1.txt
Another way to start this program is to write the start address (in this instance 0240h) into memory location
03FEh. Each time the u user command is executed or the reset button is pressed, the start address (in this
instance 0240h) is written to the user program counter. Switch to the word mode by entering a w, and then
enter m3fe and <ENTER>. Now the start address can be entered (in this instance 0240), and press
<ENTER> and <ESC> to exit. Pressing u and then g starts the program.
NOTE: Use of the examples in MSP430 Simulation Environment
If the examples are used in the MSP430 Simulation Environment, the SIM constant (located
at the top of the assembler code) must be set to 1.
122
1.2.11 How to Use Breakpoints
Continue the Getting Started exercise by assembling and downloading the file gs_stk2.asm in the examples
directory as described previously.
This program includes a section for the reset vector, so the program counter is initialized after the download
and each time a user performs a reset.
;****************************************************************************
; Interrupt vectors
;****************************************************************************
.sect Int_Vect, USER_END-1
.word RESET ; POR, ext. Reset, Watchdog
.end
1. Start the program by typing g <ENTER>. The display indicates 0, then 1 on the LCD.
2. Press the <ESC> key to stop the program.
3. Type u <ENTER> to execute a user reset.
4. Set the breakpoint by typing s, and then 0264 (address) <ENTER>. This breakpoint stops the
program prior to changing the display.
5. Type s <ENTER> to stop the program. It stops prior to changing the display. Step through the
program by pressing the space bar showing how the display changes.
6. Clear the breakpoint by typing c, and then 0264 (address) <ENTER>.
Figure 119 shows these commands as they appear on the display.
13264
123
Enter The g-command to start the program
Press <ESC> to Interrupt the program
Enter the u-command to execute a user reset
Enter the s-command to set a breakpoint
Enter the address of the breakpoint
Enter the g-command to start the program
Automatic stop on breakpoint
Press the SPACE key to execute a single step
>downloaded _PC_ _SP_ _SR_
reg 000: 0240 03de 0008 0000 f48c 0010 0000 15de
reg 0008 0e62 404d 0000 ffd0 2153 0e14 28ad feff
>go . .
>user break _PC_ _SP_ _SR_
reg 0000 0260 03de 0009 0000 f48c 0000 0000 15de
reg 0008 0e62 404d 0000 ffd0 2153 0e14 28ad 34af
>user reset _PC_ _SP_ _SR_
reg 0000 0240 03de 0008 0000 f48c 0000 0000 15de
reg 0008 0e62 404d 0000 ffd0 2153 0e14 28ad 34af
>set Bkpt 0000 0000 0264
>
>go_
>BP halted _PC_ _SP_ _SR_
reg 0000 0264 03de 000b 0000 f48c 0000 0000 15de
reg 0008 0e62 404d 0000 ffd0 2153 0e14 28ad 0000
>step
>>executed _PC_ _SP_ _SR_
reg 0000 026a 03de 0008 0000 f48c 0000 0000 15de
reg 0008 0e62 404d 0000 ffd0 2153 0e14 28ad 0000
>
Figure 119. Terminal Breakpoint
1.2.12 Accessing the Port on the MSP430x320 STK/EVK
Assemble and download the file gs_stk3.asm in the examples directory, as described previously.
Press the trigger button on the demo to start the program. Press the trigger button to toggle the display
between 0 and 1.
The following instructions are necessary:
;––– Init Port
BIC.B #01h,P0DIR ; Set P0.0 as input
BIC.B #01h,POIE ; Disable P0.0 interrupt
;––– Test of Port
124
$ML1 BIT.B #01h,P0IN ; Test P0.0
JNZ $ML1 ; Do nothing if P0.0 low
1.2.13 How to Use an Interrupt Routine
Assemble and download the file gs_stk4.asm in the examples directory, as described previously.
1. When an interrupt occurs, the program sends the contents of the program counter and status
register to the stack.
2. Next, the program branches to the starting address of the interrupt routine.
3. The interrupt routine normally ends with the RETI instruction.
4. The RETI instruction loads the data, which was saved to the stack at the beginning of the interrupt
routine, to the status register and program counter.
5. The program continues from the point of interruption.
Using interrupt routines allows the MSP430 to use low power modes. Selecting a low power mode causes
the program to stop at the current position, and an activity that causes an interrupt automatically clears the
low power mode. The interrupt continues program execution at the starting address of the corresponding
interrupt routine. The RETI loads the saved program data to the status register and program counter.
Loading the status register and program counter clears out the low power mode bits, and the program
continues with the next instruction. Figure 120 is the Basic Timer Interrupt routine.
BIS #CPUOFF,SR ; set CPUoff Bit
;****************************************************************************
; Basic Timer Interrupt routine
;****************************************************************************
Int_BT ; Basic Timer 128 Hz (7.8 ms)
DEC.B lcd_timer ; decrement SW lcd-timer
JNZ Int_BT_end ; !0 : no action
BIC #CPUOFF,0(SP) ; Clear CPUoff Bit
MOV.B #lcd+ival,lcd_timer ; = 0 : load again
Int_BT_endRETI
To use the interrupts, the interrupt vector table must be set up as follows:
;****************************************************************************
; Interrupt vectors
;****************************************************************************
.sect int_Vect, USER_END-31
.word RESET ; no source
.word Int_BT ; Basic Timer
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; NMI, Osc. fault
.word RESET ; POR, ext. Reset, Watchdog
.end
Figure 120. Basic Timer Interrupt Routine
. STK1W95 , HypevTevminal EE EE EE E
125
Set a breakpoint at address 025Eh, and single step through the program. A longer reaction time can be
expected for any step beyond address 025Eh. At this time, the CPU is off and waiting for the Basic Timer
interrupt.
NOTE: Only two breakpoints may be set at any one time.
>step
>executed _PC_ _SP_ _SR_
reg 0000 : 0268 03de 0008 0000 f48c 0000 6ed4 10df
reg 0008 : 0c62 409e 0000 ffd0 2051 0e14 28ac f84e
>step
>executed _PC_ _SP_ _SR_
reg 0000 : 026a 03de 0008 0000 f48c 0000 6ed4 10df
reg 0008 : 0c62 409e 0000 ffd0 2051 0e14 28ac f84e
>step
>executed _PC_ _SP_ _SR_
reg 0000 : 0270 03de 0008 0000 f48c 0000 6ed4 10df
reg 0008 : 0c62 409e 0000 ffd0 2051 0e14 28ac f84e
>step
>executed _PC_ _SP_ _SR_
reg 0000 : 025e 03de 0008 0000 f48c 0000 6ed4 10df
reg 0008 : 0c62 409e 0000 ffd0 2051 0e14 28ac f84e
>step
>executed _PC_ _SP_ _SR_
reg 0000 : 0262 03de 0008 0000 f48c 0000 6ed4 10df
reg 0008 : 0c62 409e 0000 ffd0 2051 0e14 28ac f84e
>
Figure 121. Terminal | Interrupt
1.3 Loading a Program Into the EPROM Via the Terminal
After debugging, the program is ready to load. The program is loaded to the EPROM for the EVK, or ROM
for the STK. The STK requires a programming voltage. The EVK requires a jumper between pins 13 and
14 of the programming connector. Figure 122 show the locations for the programming voltage and the
connector jumper.
126
VPP -Input
Apply If
programming via serial
port
VPP fuse F250 mA
Connects to programming
adapter MSP-PRG430x
(EVK only)
Jumper for programming the EPROM
of an EVK with the Monitor
Figure 122. Programming Voltage and Jumper Location
To load a program into the MSP430 EPROM/ROM using the HyperTerminal, the following points must be
considered:
The Monitor code must already be programmed into the EPROM/ROM (only the EVK is supplied
with the code for the monitor program mon_x.txt).
The STK/EVK 9-pin D-SUB-connector must be connected to the serial interface (the default is
COM2) of the PC.
The supply voltages of the STK/EVK must be applied by connecting the STK/EVK to the serial
interface of the PC and by connecting the programming supply voltage.
NOTE: Programming the EVK using the Serial Port
Attach a jumper between PIN 13 and PIN 14 on the Programming Adapter connector (see
Hardware Installation in Chapter 9).
If the assembled file gs_stk5.asm is downloaded, the program routines for the LCD, and the interrupt routine
of the previous example will be written into the EPROM/ROM (see sections in the code).
127
;****************************************************************************
; Section in EPROM
;****************************************************************************
.sect PrepLCD, EPROM_orig
;––– Prepare LCD and Basic timer
PrepLCD MOV.B #1h,LCDM ;LCD : Analog generator on Low
; impedance 4 Mux active
; all outputs are Seg
MOV.B #057h,BTCTL ; Basic Timer : SSEL=0 DIV=0 Reset=1
; ACLK
; 32768/256 = 128 Hz
; (7.8 ms debounce time)
; LCD frame frequency @ 4 Mux: 64 Hz
BIS.B #BTME,ME2 ; Enable basic timer module
BIC.B #040h,BTCTL ; Basic Timer reset disabled
BIS.B #BTIE,IE2 ; enable basic timer interrupt
MOV.B #lcd_ival,lcd_timer ; load SW lcd timer
CALL #show_cir ; clear LCD
EINT ; enable interrupts
;––– clear LCD
.sect show_clr:,EPROM_orig+50h
show_clr MOV #15, r5 ; clear display memory
show_clrl MOV.b #0, LCD11(r5)
DEC r5
JNz show_clr1
RET
;****************************************************************************
; Basic Timer Interrupt routine
;****************************************************************************
.sect Int_BT ,EPROM_orig+100h
Int_BT ; Basic Timer 128 Hz (7.8 ms)
DEC.B lcd_timer ; decrement SW lcd-timer
JNZ Int_BT_end ; !0 : no action
BIC #CPUOFF,0 (SP) ; Clear CPUoff Bit
MOV.B #lcd_ival,lcd_timer ; =0 : load again
Int_BT_endRETI
Figure 123. EPROM LCD and Interrupt Routine
Now these routines can be used in any other program. This section does not have to be downloaded again,
even if the STK/EVK is disconnected from the power supply.
To load a program using the HyperTerminal, double click the terminal icon in the MSP-STK/EVK430 program
group in the Windows Program Manager. The HyperTerminal window appears as follows in Figure 124.
. STK1WSS»HypeITeIminaI W? E? FE E . STK1W85 , HypevTelminal
128
MSPSTK430A320
>_
Figure 124. HyperTerminal Window
To load a program into the MSP430 using the HyperTerminal, activate the Transfers/Send Text File. . .
command as shown in Figure 125.
MSPSTK430A320
>_
Send Text File
Receive text file...
View Text File...
Send Binary File...
Receive Binary File...
Pause
Resume
Stop
Transfer
Figure 125. Transfers \ Send Text File
Figure 126 shows the Send Text File dialog box.
Press Open [0 Send TXT Flle Semi 7'51 ‘ F'J'H _|_‘j‘3 E F I ll! Tum lxl _—f
129
Press Open to Send TXT FileChoose your Text File
Figure 126. Send Text File Dialog Box
Figure 127 represents a burn fail screen. If an error occurs during the programming of the EPROM, the
screen shows the message burn failed at XXXX. Where XXXX is the address where the programming cycle
failed the first time.
. STK1W95 , HypevTevminal EE EE EE E
130
>@C000
F2 43 30 00 F2 40 57 00 40 00 F2 D0 80 00 05 00
F2 C0 40 00 40 00 F2 D0 80 00 01 00 F0 40 80 00
01 42 B0 12 50 C0 32 D2
@C050
35 40 0F 00 C5 43 30 00 15 83 FC 23 30 41
@C100
D0 83 1F 41 06 20 B1 C0 10 00 00 00 F0 40 80 00
11 41 00 13
@03E0
40 02 00 C1 40 02 40 02 40 02 40 02 40 02 40 02
40 02 40 02 40 02 40 02 40 02 40 02 40 02 40 02
q
>burn failed at c000
>downloaded _PC_ _SP_ _SR_
reg 0000 0240 03de 0008 0000 f48c c010 0000 0010
reg 0008 0c62 4098 0000 ffd0 2051 0e14 28ac f84e
>
Figure 127. Burn Failed Message
In the gs_stk6.asm example, in the examples directory, only the addresses of the routines in the EPROM
are labeled. This supports easy use of program sections in the EPROM.
;****************************************************************************
; Addresses in EPROM
;****************************************************************************
PrepLCD .equ EPROM_orig ; EPROM Address of PrepLCD
;––– clear LCD
show_clr .equ EPROM_orig+50h ; EPROM Address of show_clr
; Basic Timer Interrupt routine
Int_BT .equ EPROM_orig+100h ; Basic Timer 128 Hz (7.8 ms)
21
2 Monitor Commands
This chapter describes the syntax conventions and the available commands of the Monitor Program.
2.1 Syntax Conventions
The numbers in brackets [ ] are optional.
x is a hexadecimal address.
n is the hexadecimal number of bytes to show.
i is the hexadecimal register number.
Only the r, m, and e commands expect <ENTER> or <ESC> commands.
The <ESC> key provides a keyboard interrupt for all command inputs except m.
The half-duplex UART prevents keyboard interrupts while entering a large number of bytes to
show the results of an action.
The registers are named in hexadecimal format from R0 to RF.
All addresses or memory/register contents must be entered in hexadecimal mode. Entering
zeros in the MSB is optional.
Errors in address or memory/register contents in the terminal input must be corrected by
re-entering all four hexadecimal digits. The leading (MSB) zeros are optional.
The Arrow, Insert, Delete, or Backspace keys can not be used to change an incorrect terminal
input.
2.2 Memory Organization
To use some commands, it is necessary to know the memory locations and their functions (see Figure 21).
In memory locations 000h to 0FFh, only the byte mode is possible. In memory locations 100h to 1FFh, only
the word mode is possible. Memory locations 010h to 0FFh are reserved for 8-bit peripheral modules, and
the locations between 100h and 1FFh are reserved for 16-bit peripheral modules.
INT. VECTOR
16 KB EPROM
512 B RAM
16 Bit Peripheral Modules
8 Bit Peripheral Modules
Special Function Register
FFFFh
FFE0h
FFDFh
C000h
03FFh
0200h
01FFh
0100h
00FFh
0010h
000Fh
0000h
INT. VECTOR
32 KB EPROM
1 KB RAM
16 Bit Peripheral Modules
8 Bit Peripheral Modules
Special Function Register
FFFFh
FFE0h
FFDFh
8000h
05FFh
0200h
01FFh
0100h
00FFh
0010h
000Fh
0000h
MSP430x320 MSP430x330
Figure 21. Memory Organization
. STK1W95 , HypevTevminal EE EE EE E
22
2.3 Commands
hThe h command displays the Help Command screen shown in Figure 22 with the available
commands.
Enter h at the command prompt
>Monitor Commands
h help
b,w byte, word mode
i,w monitor, user reset
r[x] inspect registers
mx[n] inspect memory
ex n eprom erase check
@x .. q load program
d run DEMO
sx set breakpoint
cx clear breakpoint
g go (free run)
<space> single step
<ESC> exit command
>_
Figure 22. Help Command
23
b,wThe b and w commands shown in Figure 23 switch to byte or word indication mode. The two
indication modes are only important for the memory inspect command m. The Monitor completes the
entered command (byte or word).
Enter b at the command prompt
Enter w at the command prompt
>MSPSTK430A320
>byte
>m0300 10
mem 0300 : 40 00 80 80 00 00 52 00 41 10 01 06 04 20 02 00
>word
>m0300 10
mem 0300 : 0040 8080 0000 0052 1041 1601 2004 0002
Figure 23. Byte, Word Commands
, stmwss , HypelT ...... I TEE EEE
24
iThe i command, shown in Figure 24, initializes the entire monitor program. This command performs
a software reset of the STK/EVK, but is only possible if the monitor is still running. If the contents of
memory location 3DEh are AA55h, the i command will start the user application. Turn off the hardware
supply voltage to return control to the monitor. This clears the bit-pattern AA55h.
Enter i at the command prompt
>init
MSPSTK430A320
Figure 24. Initializing the Terminal Program Command
. stmwss - HypelT eeeeee I fir E? WE E
25
uThe u command, shown in Figure 25, sets the user PC to the start vector of the loaded user program.
This performs a user reset of the application. In this example, the start vector of the user application,
located at address 03FEh, is 0300h.
Enter u at the command prompt
>user reset _PC_ _SP_ _SR_
reg 0000 0300 03de 0008 000u0 f48cP1c14 0069 000e
reg 0008 1a28 400f 0000 ffd0 4040 6803 e2c2 07a0
>
Figure 25. User Reset Command
. STK1W§57HypelT ...... I
26
r[i] The r <ENTER> command, shown in Figure 26, without a specific register number, shows all 16 CPU
registers R0 to R15. With this syntax, a modification of the register contents is not possible.
Enter r then <ENTER> at the command prompt
>init
MSPSTK430A320
>r
reg 0000 : 0300 03de 0008 0000 f48c 0010 0069 000e
reg 0008 : 1a28 402a 0000 ffd0 4040 6803 e2c2 07a0
>
Figure 26. Register Command
. stmwss - HypelT eeeeee I
27
Entering the command with the hexadecimal register number r[i] <ENTER> as shown in Figure 27, results
in displaying only the contents of the dedicated register i.
Type r5 <ENTER> at the command prompt
>r5
reg 0005 : 0010 _
Figure 27. Register Specified Command
NOTE: Modification of the Registers R1, R3, and R4
The Monitor Program does not allow the modification of registers R1, R3, and R4. R1 is the
stack pointer and can not be modified because of the internal program structure of the monitor.
R3 is the constant generator register and therefore cannot be modified. R4 is internally used
by the monitor, therefore, modification of R4 by the user application code will overwrite the
correct function in the monitor program and cause improper operation.
V . S [K1W95 , Hymeevminal Wpo r
28
Figure 28 shows the procedure for changing data in a register. Write new data into register r[i] by pressing
<ENTER> and the program displays the next register.
Type r5 <ENTER> at the command prompt
Type the new desired register contents and press <ENTER>
>init
MSPSTK430A320
>r5
reg 0005 : 0010 ffff
reg 0006 0069
>r5
reg 0005 : 0010 ffff_
If it is not desired to modify additional registers press <ESC>
Type r5 again to view the new content of the register
Figure 28. Modify One Register
. STK1W35 , HypevTelminal
29
Figure 29 shows the procedure to modify an additional register. Press <ENTER>, and the program displays
the next register.
Enter r <ENTER> to show the modified register contents
Press <ESC> here Modified registers r5, r6
>init
MSPSTK430A320
>r5
reg 0005 : 0010 aaaa
reg 0006 0069 bbbb
reg 0007 000e
>r
reg 0000 : 0300 03de 0008 0000 f48c aaaa bbbb 000e
reg 0008 : 9a28 4092 0000 ffd0 4040 6807 e6ca 87a4
>
Figure 29. Modify Additional Registers
210
Figure 210 shows the proper way to change incorrect entries. Using the Arrow, Delete or Insert keys as
inputs causes unpredictable behavior. After entering an incorrect register content, the entire input should
be entered again. Another method is to press <ESC> and to enter the r[i] command again.
NOTE:
The ENTER key must never be pressed after entering an incorrect input.
To start the register command type r <ENTER>
Enter <ESC>
Incorrect terminal input $%^&
Type r5 <ENTER> to modify register r5
Correct terminal input to modify r5
>init
MSPSTK430A320
>r
reg 0000 : 0300 03de 0008 0000 f48c 0010 0069 000e
reg 0008 : 9a28 406c 0000 ffd0 4040 6807 e2ca 87a0
>r5
reg 0005 : 0010 $%^& 4567
reg 0006 0069
>r
reg 0000 : 0300 03de 0008 0000 f48c 4567 0069 000e
reg 0008 : 9a28 406c 0000 ffd0 4040 6807 e2ca 87a0
>
Figure 210. Revise Memory Modification
. STK Was , HypevT elminal
211
mx[n] The m command allows the user to inspect (read/modify/write) memory locations. Use the m
command in conjunction with the b or w commands. The b or w command displays the memory as
shown in Figure 211.
Enter b at the command prompt
Enter w at the command prompt
Enter m220 20 at the command prompt
>init
MSPSTK430A320
>byte
>m220 20
mem 0220 : 48 00 02 00 20 20 00 08 00 20 00 00 09 00 02 80
mem 0230 : 01 00 00 00 00 00 02 00 00 44 20 00 00 50 00 00
>word
>m220 20
mem 0220 : 0048 0002 2020 0800 2000 0000 0009 8002
mem 0230 : 0001 0000 0000 0002 4400 0020 5000 0000
>_
Figure 211. Memory Byte, Word Command
The address x shown above as 220 must be entered to define the memory location. The number n, shown
above as 20, is optional. It defines the number of memory bytes that are to be displayed. Entering the m
command without n allows the memory contents at address x to be displayed or modified.
NOTE: Interrupt.
Viewing large memory areas will take some time because the output function to display memory
contents cannot be interrupted while the UART is operating in the half duplex mode.
212
Figure 212 shows how to modify memory contents. Modify the memory by typing in new data and pressing
<ENTER>. The program displays the next memory location. If no modification is necessary press
<ENTER>. To exit the memory command (mx) press the <ESC> key. Pressing <ENTER> toggles through
memory locations, displaying each new location after <ENTER>.
Enter bbcc then <ENTER> to modify memory
Enter aa then <ENTER> to modify memory
Show and modify memory location 0300h in word mode
Show and modify memory location 0300h in byte mode
Switch to word indication mode
Switch to byte indication mode
Press <ESC> here
Show only one memory location 0300h in word mode
>init
MSPSTK430A320
>byte
>m0300
mem 0300 : 31 aa
mem 0301 40
>word
>m0300
mem 0300 : 40aa bbcc
mem 0302 : 0400
>m0300
mem 0300 : bbcc
>_
Figure 212. Memory Modification
213
To revise an incorrect terminal input, perform the following functions as shown in Figure 213. Using the
Arrow, Delete or Insert keys as inputs causes unpredictable behavior. After entering an incorrect register
contents, the entire input should be entered again. Another method is to press <ESC> and enter the m
command again. Never type <ENTER> after entering an incorrect input.
Press <ESC>
Correction
Incorrect terminal input
Start the memory mode
View memory contents
>init
MSPSTK430A320
>byte
>m@#$% 20300 2
mem 0300 : 31 40
>m@#$% 2
>m0300 2
mem 0300 : 31 40
>_
Figure 213. Revised Memory Modification
214
@x The @x command loads program/data section(s), byte by byte, into the RAM/EPROM. A program
algorithm detects the correct download section (in the RAM or EPROM) and runs automatically. The
transfer can be made by using a keyboard or by file transfer (pull-down menu Transfers/Send Text
File in Hyperterminal program). If download is performed manually, it can be terminated with a q
keystroke. Normally the data associated with the load command is a content of linker or
assembler-generated program/data files.
Figure 214 is an example of the format of such a program/data file:
>@0220
C2 43 12 00 3B 40 B4 02 92 12 D4 FF F2 40 FF 00
32 00 B0 12 90 D8 B0 12 48 D8 B0 12 C8 D7 B0 12
72 D7 B0 12 0E D7 B0 12 56 02 B0 12 72 D7 B0 12
1C D8 30 40 52 02 06 12 F2 F0 FB 00 03 00 B2 40
1D 00 12 01 B2 40 0B 09 14 01 56 42 03 00 66 F2
FC 27 16 42 18 01 36 90 00 10 05 38 3B 40 40 DA
92 12 D4 FF 04 3C 3B 40 4C DA 92 12 D4 FF 36 41
31 40 00 03 B2 40 80 5A 20 01 30 40 20 02 06 12
52 12 12 00 52 12 11 00 F2 40 19 00 12 00 F2 42
11 00 B2 40 FF 00 12 01 16 42 10 01 F2 41 11 00
F2 41 12 00 76 F0 EB 00 B0 12 7A D7
@03FE
20 02
q
>downloaded _PC_ _SP_ _SR_
reg 0000 : 0220 0400 0008 0000 f8b8 0010 0000 0003
reg 0008 : 0000 2837 0000 f0c2 fffe fffe fffe fbfe
Figure 214. Transfer Data Command
The @x command sets the memory-modification address to the address where program/data files are
stored. All code lines following the @x command represent data in byte format. These bytes will be copied
sequentially to the specified section address. The q command terminates the section input and returns the
control back to the Monitor Program.
NOTE: Programming an EPROM
While programming the EPROM, be sure that the file being used has the correct section
addresses and contains the correct program/data. Programming an EPROM location once will
prevent a second programming at this location in the STK. For more information see the
Hardware Installation section in this manual.
. snnwss » HypelTelmlnal
215
ex n The EPROM erase check (ex n) command verifies that the EPROM is empty. The EPROM is empty
if the contents of all EPROM-memory locations are FFh. The x represents the starting address to
verify that the EPROM has been erased. The n portion of this command will show the number of
bytes that have been erased. The Monitor ceases checking the EPROM if a memory location other
than FFh is detected and displays that memory location as shown in the Figure 215.
Check if there is memory space at C040h for 20h Words
Memory location C040h is not erased and is displayed
Enter mC040 20 <ENTER> to start memory mode (to show 20h)
>mC040 20
mem c040 : ffff ffff ffff ffff ffff ffff ffff ffff
mem c050 : 4035 000f 43c5 0030 8315 23fc 4130 ffff
>eC040 20
mem c050 : 4035>
Figure 215. EPROM Erase Check Command
. snuwss , HypelT ...... I
216
sThe s command allows a breakpoint to be set. The program supports the capability of having two
breakpoints. Breakpoints may be set only if the program is in RAM. Typing an s shows the
breakpoints that are currently set. Figure 216 shows how to enter the location of the breakpoint.
Set a breakpoint by Typing s
Enter the location of the breakpoint: 24e
MSPSTK430A320
>Set Bkpt 0000 0000 24e
Figure 216. Location of a Breakpoint Command
Both breakpoint addresses are displayed. A breakpoint address that contains all zeros indicates that no
breakpoint is set. Enter the address to set a breakpoint. Pressing the <RETURN> key activates the
breakpoint at that address.
. anwss » HypelTeImmal
217
The address of the two breakpoints should not be identical. Only two breakpoints are supported, a third
breakpoint cannot be set. In order to set another breakpoint, one breakpoint has to be cleared first with the
c command. Figure 217 shows the breakpoint after entry.
To set a breakpoint type s
Enter the location of the breakpoint: 24e <ENTER>
>init
MSPSTK430A320
>Set Bkpt 0000 0000 24e
>Set Bkpt 024e 0000
Press <ESC> here
Figure 217. Set a Breakpoint Command
. STK1W§57HypelT ...... I To c
218
cThe c command is used to clear a breakpoint. Typing c shows the set breakpoints, as shown in
Figure 218.
Clear a breakpoint by typing a c
>Clr Bkpt 024e 0000
Figure 218. Clearing a Breakpoint Command
To clear one of the breakpoints (other than zero), it is necessary to enter the associated address. Typing
the <ENTER> key after entering the address clears the breakpoint. See Figure 219.
Press <ESC> here
To clear a breakpoint type c
To clear a breakpoint enter the location: 24e <ENTER>
Start set breakpoint mode by typing s to show the cleared breakpoint
>Clr Bkpt 024e 0000 24e
>set Bkpt 0000 0000
Figure 219. Clearing a Breakpoint Location
219
gThe g command starts/restarts the user application that is loaded into RAM. The system retrieves
the start vector of a users application from memory location (3FEh on the 320 STK/EVK, 5FEh on
the 330 EVK) if a new program is loaded, or after executing a PUC command or a user reset.
Otherwise, the program execution continues with the actual PC (R0). Return to the Monitor occurs
after pressing any key on the keyboard. The g command functions as stated if the user application
is not running in an interrupt routine (GIE=0 if interrupt nesting is not allowed), and the user
application has not disabled the GIE bit.
Enter g to start the user application
>init
MSPSTK430A320
>@0300
31 40 00 04 B2 40 80 5A 20 01 07 43 17 53 FE 3F
@03FE
00 03
q
>downloaded _PC_ _SP_ _SR_
reg 0000 : 0300 03de 0008 0000 f48c 1d14 0069 000e
reg 0008 : 1a28 4032 0000 ffd0 4040 6803 e2c2 07a0
>go.._
Figure 220. Starting the Application Command
220
31
3 Monitor Restrictions
3.1 Register R4
The Monitor Program uses the R4 register internally to return data from the user application to the
Hyperterminal. Modifications to the value stored in R4 will result in unexpected behavior of the Monitor
Program. The Monitor command r, to change the register contents, is not supported for R4. The register R4
can be modified by the user application code. Consequently, the user should exercise caution when using
this register.
It is possible to interrupt the user application by pressing the ESC key on the keyboard. This works only if
the GIE bit has not been cleared. One exception is possible in spite of a cleared GIE flag. If the user
application runs on a breakpoint, program execution will branch to the Monitor as the program runs.
Problems may occur if the user application uses most of its time in interrupt routines. While the application
is servicing an interrupt, a new interrupt can only occur if the GIE bit has been set. The GIE bit is set only
if the first interrupt routine explicitly sets it within the routine itself, thereby allowing for nested interrupts.
Starting the user application with the Monitor causes the Monitor Program to set the GIE bit. If the GIE-bit
was reset before in the user application, it will remain set. This ensures the availability of the RS232
communication but influences the users software application. The particular interrupts can be enabled with
their associated interrupt flags.
3.2 The Instruction CALL R4
In the user application, it is possible to return to the Monitor with the instruction CALL R4. The monitor should
be started prior to this so that the contents in R4 are valid and to initialize the Monitor.
A single step should not be executed over the CALL R4 instruction because this will cause unpredictable
behavior of the Monitor. The following code is an example that uses the instruction CALL R4.
NOTE:
Execute the single step command only if the program counter points to an instruction in
the RAM.
WDTCTL .equ 0120h
WDTHold .equ 80h
WDT_wrkey .equ 05a00h
.text 0240h
RESET: MOV #03DEh,SP
MOV # (WDTHold+WDT_wrkey),&WDTCTL ; stop Watchdog
; Timer
MOV #0h,R7
WAIT: INC R7
CALL R4
.sect Int_Vect ,03FEh
.word RESET
.end
Figure 31. CALL R4 Instruction Code
32
3.3 Peripheral Hardware/Registers
Do not modify the following peripheral registers and bits because UART operation uses these register and
bits.
Table 31. Peripheral Registers and Bits
REGISTER ADDRESS BITS
TCDAT 44h All
TCPLD 43h All
TCCTL 42h All
IFG1 02h 3
IE1 00h 3
P0IES 14h 1, 2
P0DIR 12h 1, 2
P0IFG 13h2
P0IE 15h2
3.4 RAM Locations for the Monitor
The Monitor Program uses eighteen bytes of RAM, from address 200h to 212h, within the RAM area of the
MPS430x32x (which ranges from 200h to 3FFh for the MSPx32x family, and 200h to 5FFh for the MSPx33x
family). The user application should not use this memory area.
The Monitor Program needs no stack while running the user application. If the user application returns to
the Monitor Program using a breakpoint, single step, or keyboard interrupt, an additional stack size of 32h
bytes is needed for the Monitor Program. This Monitor Program stack is always set up on the top of the user
stack. When returning to the user application, the Monitor Program clears the entire user stack. If the user
program is inactive and the Monitor Program is running, 50 bytes are put onto the stack. The stack pointer
shown in Figure 33 reflects the application situation, not the actual Monitor stack pointer. In these 50 bytes,
all register data valid in the application program is saved to be restored when the user application is
reactivated. Returning to the user application, the 50 bytes used are freed, and the stack pointer is pointing
to the user application.
33
In most cases, it is efficient to initialize the user stack which is allowed to grow (downwards) until it reaches
the address 270h (26Fh32h=23Eh). Thus, the resulting size of the maximum user stack is 16Dh
(3DCh272h=16Ah) on the MSP430x325 family and 360h (5DCh272h = 36Ah) on the MSP430x33x family.
Interrupt
Vectors
Identification Bit Pattern
Maximum Program,
Stack and Data Size
of User Application
Is 3FEh 272h
Stack Needed From
ROM Monitor
Temporary
Burn Routine
RAM Area Always Reserved
From ROM Monitor
3FEh
3E0h
3DEh
3DCh
272h
23Eh+32h = 270h
23Eh
23Dh
214h
212h
200h
Interrupt
Vectors
Identification Bit Pattern
Maximum Program,
Stack and Data Size
of User Application
Is 5FEh 272h
Stack Needed From
ROM Monitor
Temporary
Burn Routine
RAM Area Always Reserved
From ROM Monitor
5FEh
5E0h
5DEh
5DCh
272h
23Eh+32h = 270h
23Eh
23Dh
214h
212h
200h
RAM Area 272h3FEh for
the MSP430x320 RAM Area 200h5FFh for
the MSP430x330
Figure 32. RAM Area 272h to 3FEh
34
The user application data is located within the RAM area from 272h to 3FEh (5FEh for 33x). The locations
used statically (200h to 214h) and dynamically (stack) by the Monitor Program limit the size of the available
RAM. Due to limited size, two memory configurations are recommended as shown in Figure 33.
Interrupt Vectors
Identification Bit Pattern
Address Range for
Program, Stack and
Data of User
Application is 3DCh
to 214h
NOTE:
The User
Application Does
Not Set the Stack
Pointer SP
RAM Area Always Reserved
for ROM Monitor
3FEh
3E0h
3DEh
3DCh
214h
212h
200h
Interrupt Vectors
Identification Bit Pattern
Maximum Program,
Stack and Data Size
of User Application
Is Reduced by 50
Bytes, After Return
to the Monitor
Program
Stack Used by
Application
RAM Area Always Reserved
For ROM Monitor
3FEh
3E0h
3DEh
212h
214h
Stack Needed From
ROM Monitor, 50 Bytes
200h
SP
SP
User application inactive,
Monitor Program active
single step, breakpoint,
<ESC>
User application active
NOTE:
The identification bit pattern determines if the monitor code or a users code (program)
is executed after a power-up or hardware reset (PUC). See Section 5.2. The temporary
burn routine addresses are allocated for the EPROM burn routine, which must run in the
RAM. When data is written into the EPROM (program memory), code in the EPROM
cannot be executed. Therefore, the burn program has to be in RAM (loaded from the
EPROM) so it can be executed.
Figure 33. RAM Area 200h to 3FFh for the MSP430x32x Family
In most cases it is efficient not to initialize the user-stack, but to use the stack pointer set by the monitor.
214h RAM Area Always Reserved for ROM Monilol 212h 200h
35
3.5 Writing Data Into the EPROM
When data is written into the EPROM address range, software code is written into RAM locations 214h to
23Dh. All addresses 1000h or higher are assumed to be EPROM. After the write operation is completed,
the code in the RAM is no longer needed. The code is written into RAM when a write into the EPROM address
range is performed. Ensure that the data in these locations are not needed when the EPROM write code
is temporarily loaded into those locations.
A write into EPROM can be done when an application program is executed, or when the monitor is active.
For example, when the mx[n] command is executed:
Available RAM for
User Application
RAM Area Always Reserved
for ROM Monitor
214h
212h
200h
RAM Area Always Reserved
for ROM Monitor
212h
214h
200h
Temporary
Burn Routine
23Dh
23Eh
Available RAM for
User Application
No write to EPROM active
Figure 34. Temporary Burn Routine in the MSP430x32x RAM Area
User application data for the MSP430X33x family should be located within the RAM area (from 200h to
5FFh). The locations used statically (200h to 214h), and dynamically (stack) by the Monitor Program limit
the size of the available RAM.
NOTE:
The Identification Bit Pattern defines if the monitor code or a users code (program) is
executed after a power-up or hardware reset (PUC). See Section 5.2. The Temporary
Burn Routine users addresses are allocated for the EPROM burn routine which must
run in the RAM. When data is written into the EPROM (program memory), code in the
EPROM can not be executed. Therefore, the burn program has to be in the RAM (loaded
from the EPROM so it can be executed).
36
m1}; errupt
41
4 Treatment of Interrupts
This chapter describes the special treatment of interrupts in the Monitor environment.
4.1 Use of Interrupts in the Monitor Environment
The interrupt structure of the MSP430 is fully supported by the terminal program with one exception, the NMI
interrupt has the same interrupt vector as the RESET interrupt.
There are no restrictions on the interrupt flags, but certain restrictions apply to the interrupt vectors. It is
impossible to program the interrupt vectors located in the address range FFECh to FFFEh, because they
are preprogrammed in the EPROM area and can not be modified. The Monitor Program has the flexibility
to allow a second set of interrupt vectors in the RAM address range 3E0h to 3FEh (5E0h5FEh for the
MSP430X33x family) as shown in Figure 41. The Monitor Program branches program execution if an
interrupt occurs to the associated interrupt vector located in the second interrupt vector address range. The
instruction used is an absolute BR command (i.e., BR &0FFEAh for the ADC interrupt). Therefore, during
the use of the Monitor Program, the interrupt vectors are moved by an amount of FC00h below their normal
location.
Reset
NMI
P0.0 Interrupt
P0.1 Interrupt
Watchdog Interrupt
ADC Interrupt
Basic Timer Interrupt
Port0.2 to 0.7 Interrupt
FFFEh
Interrupt
FFE0h
Reset
NMI
P0.0 Interrupt
P0.1 Interrupt
Watchdog Interrupt
ADC Interrupt
Basic Timer Interrupt
Port0.2 to 0.7 Interrupt
03FEh
Interrupt
03E0h
Figure 41. Monitor Interrupts for the MSP430x32x Family
PqJJ
42
Figure 42 shows the handling of a P0.0 interrupt for the MSP430X32x family. For the MSP430X33x,
replace address 03FAh with 05FAh.
XXXX
XXXX BR & 03FAh
YYYY
03FAh
YYYY
P0.0 Interrupt
FFFAh
YYYY Is The Start Address
Of The Interrupt Service Routine
Figure 42. P0.0 Interrupt Example
The number of cycles an interrupt is additionally delayed in the Monitor Program depends on the type of
interrupt received.
Table 41. Type of Interrupt
TYPE OF INTERRUPT DELAY (NUMBER OF CYCLES)
RESET 14
IN_P01 10
All other interrupts 3
NOTE: Status Register Setting Exception After Interrupts
After entering the interrupt service routine of a Reset or a P0.1 interrupt, the zero-bit Z
and the carry-bit C in the status register SR are not reset as expected.
The interrupt vectors and the associated interrupt vector addresses of the MSP430E325 device are shown
in Table 42 (or Table 43 for the MSP430E33x).
43
Table 42. Interrupt Vectors for the MSP430x32x Family
INTERRUPT SOURCE INTERRUPT
FLAG SYSTEM
INTERRUPT WORD
ADDRESS PRIORITY
Power-up external reset watchdog RSTI, WDIReset 3FEh 15, highest
NMI
Oscillator fault
NMIIFG
OFIFGNonmaskable
Nonmaskable
3FCh 14
Dedicated I/O P0.0IFG Maskable 3FAh 13
Dedicated I/O P0.1IFG Maskable 3F8h 12
Maskable 3F6h 11
Watchdog timer WDTIFG Maskable 3F4h 10
Maskable 3F2h 9
Maskable 3F0h 8
Maskable 3EEh 7
Maskable 3ECh 6
ADC ADCIFG Maskable 3EAh 5
Timer port Maskable 3E8h 4
Maskable 3E6h 3
Maskable 3E4h 2
Basic timer BTIFG Maskable 3E2h 1
I/O Port 0 P0.27IFGMaskable 3E0h 0, lowest
Multiple source flags
Timer Port interrupt flags are located in the module
Table 43. Interrupt Vectors for the MSP430x33x Family
INTERRUPT SOURCE INTERRUPT
FLAG SYSTEM
INTERRUPT WORD
ADDRESS PRIORITY
Power-up external reset watchdog RSTI, WDIReset 3FEh 15, highest
NMI
Oscillator fault
NMIIFG
OFIFGNonmaskable
Nonmaskable
3FCh 14
Dedicated I/O P0.0IFG.0 Maskable 3FAh 13
Dedicated I/O P0.1IFG.1 Maskable 3F8h 12
Maskable 3F6h 11
Watchdog Timer WDTIFG Maskable 3F4h 10
Timer A CCIFG0†† Maskable 3F2h 9
Timer A TIFG†† Maskable 3F0h 8
UART Receive URXIFG Maskable 3EEh 7
UART Transmit UTXIFG Maskable 3ECh 6
ADCIFG Maskable 3EAh 5
Timer Port Maskable 3E8h 4
I/O Port P2 P2IFG.07Maskable 3E6h 3
I/O Port P1 P1IFG.07Maskable 3E4h 2
Basic Timer BTIFG Maskable 3E2h 1
I/O Port 0 P0.27IFGMaskable 3E0h 0, lowest
Multiple source flags
Timer Port interrupt flags are located in the module
44
51
5 Half Duplex Monitor Software UART
The Monitor Program provides several functions for handling serial data communications using the RS-232
interface. The user can call these functions by using the associated vectors in the terminal program. Use
the absolute address mode to call these functions. For example, a possible syntax for preparing the half
duplex software UART to receive characters is:
CALL &0FFD6h ;in address FFD6h the vector of RX_Prep is stored
another possible syntax is:
RX_Prep .equ 0FFD6h
CALL &RX_Prep ;in address FFD6h the vector of RX_Prep is stored
The STK/EVK software UART cannot be used for binary transfers for the following two reasons:
The protocol has only seven data-bits.
A zero cannot be received because this is the detection scheme for no-character-received.
The vectors related to these functions are stored in the following locations (see Table 51):
Table 51. Function/Vector
FUNCTION NAME VECTOR ADDRESS FUNCTION PURPOSE
TX_Word 0FFD0h Transmit 1 space and a four digit hex number in R11
TX_Char0FFD2h Transmit 1 char in TXData (20Eh)
TX_Table0FFD4h Transmit table (string address should be in R11)
RX_Prep0FFD6h Prepare halfduplex software UART for receive
TX_Prep0FFD8h Prepare halfduplex software UART for transmit
INT_RXTX 0FFDAh Interrupt service routine for receive and transmit
Ret_Mon 0FFDCh Return to the Monitor with a br Ret_Mon statement
Calling TX_Char, TX_Table, TX_Prep, or RX_Prep enables the GIE flag in the status register (SR). The GIE bit remains
set even if it was disabled before calling these routines.
5.1 Transmission Parameters of the Software UART
The transmission parameters of the MSP-STK/EVK430x320 and EVK430x330 are:
2400 Baud
1 start-bit
7 data-bits
1 parity-bit (even)
1 stop-bit
The RTS and DTR pins of the serial port must be set to high to provide the supply voltage for the STK/EVK
if no battery is assembled. This is done automatically in the Windows HyperTerminal program. If other
communication software is used, the specified pin levels must be met.
5.2 Identification of Bit Pattern AA55h
The interrupt service routine INT_RXTX is used for the receive and transmit function. If another INT_RXTX
service routine is being used, the identification bit pattern AA55h must be stored in memory location 3DEh
(5DEh for the MSP430x33x family). Otherwise, the INT_RXTX service routine will never branch program
execution to the vector located in the user interrupt vector table. This pattern remains in memory until it is
changed by the program or the power is switched off.
52
The flow chart in Figure 51 I illustrates the entry point of the INT_RXTX interrupt service routine:
INT_P0.1
no yes
Identification ?
Contents Of Memory
Location 3DEh
= AA55h P0.1 Interrupt Continues Program Execution
Upon The User Interrupt Vector Stored In
Memory Location 3F8h
User Interrupt Service Routine Branches
To INT_RXTX Service Routine From
ROM-Monitor ?
(First Instruction = CALL &0FFDAh ?)
yes no
Start Of Monitor Interrupt
Service Routine INT_RXTX
User Interrupt
Service Routine is
Continued
Receive/Transmit Interrupt Service
Routine
Half Duplex Software
UART Prepared For
Receive or Transmit ?
(PREPRX or PREPTX)
Interrupt Service Handler For Transmit Interrupt Service Handler For Receive
TX RX
Figure 51. Identification of Bit Pattern AA55h for the MSP430X32x Family
53
NOTE: Init Command
Do not use the Monitor init command out of the terminal emulator while the bit pattern
AA55h is stored in memory location 3DEh on the MSP430X32x, or 5DEh on the
MSP430X33x family. Otherwise, the user application with the reset vector stored at 3FEh
(5FEh for the MSP430X33x family) will be started.
To use the INT_RXTX interrupt service routine, first load the P0.1 interrupt-vector, which is responsible for
the timer interrupt used in the software UART. The P0.1 interrupt vector is stored in the user interrupt vector
table at address 3F8h.
The following code is an example of the user interrupt vector table and the associated branch to the
INT_RXTX routine.
UART: br &0FFDAh
RESET: br &0FFFEh
.sect Int_Vect,03E0h ; Use 05E0h for the MSP430X33x family
.word RESET ; Port0, bit 2 to bit 7
.word RESET ; Basic Timer
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; EOC from ADC
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; no source
.word RESET ; Watchdog/Timer, Timer mode
.word RESET ; no source
.word UART ; Address of UART handler
.word RESET ; P0.0
.word NMI ; NMI, Osc. fault
.word RESET ; POR, ext. Reset, Watchdog
end
In this example, all other interrupts will continue program execution at the reset vector of the terminal
program stored at address FFFEh.
NOTE: Identification Pattern AA55h
The identification pattern must be programmed as the last word of the complete download. To
assure this, the section containing only the identification, is the last section in the source file.
54
5.3 Special Treatment of <ESC> in the Software UART
The software UART treats a received ESC character in two different ways:
The software UART receives the ESC character and stores it at address 210h. The condition,
therefore, is that bit 0 in memory location 200h is reset.
The software UART receives the ESC and returns back to the Hyperterminal. The condition is
that bit 0 in memory location 200h be set.
End of ROM-Monitor
Interrupt Service Routine
Contents of
Memory Location
3DEh is AA55h for
MSP430X32x
(or 5DEh is AA55h
for MSP430X33x)
yes no
no yes
no yes
Bit 0 in Memory
Location 200h Set ?
Received Character
is <ESC>
Normal Return Out of
INT_RXTX
Interrupt
Service
The Return From Interrupt
is By-Passed
Into ROM-
Monitor
Figure 52. Special Treatment of ESC
BIC #01h,&200h ; reset bit 0, because no special treatment of <ESC> is
; wanted
BIS #01h,&200h ; reset bit 0, because special treatment of <ESC> is
; wanted
NOTE: Memory Location 200h
Only bit 0 in memory location 200h may be modified. A modification of the higher bits may result
in an unpredictable behavior of the terminal program.
55
5.4 Transmitting One Character
To transmit one character, copy AA55h to memory location 3DEh, or memory location 5DEh for the
MSP430X33x family. Store the character to transmit in RAM-location 020Eh.
TX: MOV #0AA55h,&03DEh ; &05DEh for MSP430X33x
MOV.B #a,&TX_Data ; put char to TX_Data
Call the function TX_Char to transmit the character stored at location 20Eh.
call &0FFD2h ; call of TX_Char
The function TX_Char includes the call of TX_prep implicit which prepares the half-duplex software UART
to receive. Therefore, it is not necessary to call TX_Prep before calling TX_Char.
56
The following code in Figure 53 is an example of transmission of the single character s.
WDTCTL .equ 0120h
WDTHold .equ 80h
WDT_wrkey .equ 05a00h
TXCHAR .equ 0FFD2h
TXTABLE .equ 0FFD4h
PREPRX .equ 0FFD6h
PREPTX .equ 0FFD8h
INT_RXTX .equ 0FFDAh
TXDATA .equ 020Eh
RXBUF .equ 0210h
.text 0240h
RESET: MOV #03DEh,SP ; use #05DEh on the MSP430X33x
MOV #(WDTHold+WDT_wrkey),&WDTCTL ; stop Watchdog Timer
EINT ; enable interrupt
TX: MOV #0AA55h,&03DEh ; prepare software UART for the use
; in user application
(05DEh FOR MSP430X33x)
MOV.B #a,&TXDATA ; put char to TXDATA
; BIC #01h,&200h ; use only if no special
; treatment of ESC is wanted
CALL &TXCHAR ; call transmit sub-routine in
; monitor
CALL &PREPRX ; prepare software UART for receive
; to get back to monitor with ESC
MOV #00h,&03DEh ; prepare software UART only for
; the use in the Hyperterminal
(05DEh FOR MSP430X33x)
ENDL: JMP ENDL
UART: BR &INT_RXTX
.sect Int_Vect,03E0h ; (use 05E0h on the MSP430X33x)
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word UART ; UART Routine
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.end
Figure 53. Transmitting the s Character
57
In Figure 53, the endless loop at the end of the program can be interrupted by pressing <ESC> in the
HyperTerminal. If no special treatment of <ESC> is required in the software UART, bit 0 in RAM location 200h
must be cleared. This bit is the ESC-active-flag and allows itself to return back to the Hyperterminal when
pressing the ESC key.
Conditions for implementation:
Correct setting of the P0.1 interrupt vector in the user interrupt vector table
The first statement of the user interrupt handler is an absolute branch to the INT_RXTX interrupt
service routine.
GIE is enabled.
The halfduplex software UART is set up to receive.
NOTE: Clear the Bit Pattern AA55h
Do not try to load a program while the bit pattern AA55h is stored at address 3DEh on
the MSP430x32x, or 5DEh on the MSP430x33x. To load a new program, clear the bit
pattern AA55h at address 3DEh on the MSP430x32x, or 5DEh on the MSP430x33x, or
switch off the STK/EVK for a short time to clear the RAM.
5.5 Transmitting a String
The first step to transmit a string is to move the bit pattern AA55h to memory location 3DEh on the
MSP430x32x, or 5DEh on the MSP430x33x. The address of the string must be stored in register R11.
The following program transmits the TEST String:
WDTCTL .equ 0120h
WDTHold .equ 80h
WDT_wrkey .equ 05a00h
TXCHAR .equ 0FFD2h
TXTABLE .equ 0FFD4h
PREPRX .equ 0FFD6h
PREPTX .equ 0FFD8h
INT_RXTX .equ 0FFDAh
TXDATA .equ 020Eh
RXBUF .equ 0210h
.data 0300h
STRING: .string TEST
.byte 0h
.text 0240h
RESET: MOV #03DEh,SP ; #05DEh on the MSP430X33x
MOV #(WDTHold+WDT_wrkey),&WDTCTL ; stop Watchdog Timer
EINT ; enable interrupt
TX: MOV #0AA55h,&03DEh ; prepare software UART for the
; use in user application
(&05DEh on the MSP430X33x
MOV #STRING,R11 ; Test: TX_table
; BIC #01h,&200h ; use only if no special
; treatment of ESC is wanted
CALL &TXTABLE ; call transmit sub-routine in
; monitor
(05DEh on the MSP430X33x
CALL &PREPRX ; prepare software UART for
58
; receive to get back to monitor
; with ESC
MOV #00h,&03DEh ; prepare software UART only for
; use in the ROM-Monitor
(&05DEh on the MSP430X33
ENDL JMP ENDL
UART BR &INT_RXTX
.sect Int_Vect,03E0h ; 05E0h on the MSP430X33x
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word UART ; UART Routine
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.end
5.6 Receiving a Character
A character received using the RS232 interface is written from the INT_RXTX interrupt routine into memory
location 210h. After performing a reset, this memory location contains zeros. Each byte (not equal to zero)
received is stored in memory location 210h.
The content of memory location 210h is checked to determine whether or not a byte has been received. After
reading the byte, this location must be cleared. The next-received character will overwrite memory location
210h with a new byte.
The following code is an example of receiving a character and transmitting the same character back.
WDTCTL .equ 0120h
WDTHold .equ 80h
WDT_wrkey .equ 05a00h
TXCHAR .equ 0FFD2h
TXTABLE .equ 0FFD4h
PREPRX .equ 0FFD6h
PREPTX .equ 0FFD8h
INT_RXTX .equ 0FFDAh
TXDATA .equ 020Eh
RXBUF .equ 0210h
.text 0240h
RESET MOV #03DEh,SP ; #05DEh on the MSP430X33x
MOV #(WDTHold+WDT_wrkey),&WDTCTL ; stop Watchdog Timer
EINT ; enable interrupt
RX MOV #0AA55h,&03DEh ; select user interrupt vector
; table (&05DEh on MSP430X33x)
CALL &PREPRX ; prepare software UART for
59
; receive to get back to monitor
; with ESC
WAIT TST.B &RXBUF ; char. in rxbuf ?
JEQ WAIT ; no, then wait
TX MOV.B &RXBUF,&TXDATA ; put char to TXDATA
CLR.B &RXBUF
; BIC #01h,&200h ; use only if no special
; treatment of ESC is wanted
CALL &TXCHAR ; call transmit sub-routine in
; monitor
CALL &PREPRX ; prepare software UART for
; receive to get back to monitor
; with ESC
JMP WAIT
UART BR &INT_RXTX
.sect Int_Vect,03E0h ; 050Eh on the MSP430X33x
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word UART ; UART Routine
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.end
The next example receives a string with a maximum of 100 (100=64h) characters, stores them, and then
transmits them after the <ENTER> key is pressed.
WDTCTL .equ 0120h
WDTHold .equ 80h
WDT_wrkey .equ 05a00h
TXCHAR .equ 0FFD2h
TXTABLE .equ 0FFD4h
PREPRX .equ 0FFD6h
PREPTX .equ 0FFD8h
INT_RXTX .equ 0FFDAh
TXDATA .equ 020Eh
RXBUF .equ 0210h
cr .equ 0dh
.data 0300h
STRING: .space 0064h ; reserves receive buffer
.text 00240H
RESET: MOV #03DEh,SP ; #05DEh on the MSP430X33x
MOV #(WDTHold+WDT_wrkey),&WDTCTL ; stop Watchdog Timer
510
EINT ; enable interrupt
CALL &PREPRX
MOV #0AA55h,&03DEh ; &05DEh on the MSP430X33x
RX: MOV #STRING,R7 ; load string address
WAIT: MOV.B #RXBUF,R6 ; char. in rxbuf ?
CMP.B #0h,r6
JEQ WAIT ; no, then wait
CLR.B &RXBUF
CMP.B #cr,R6 ; end of line
received?
JEQ TX
MOV.B R6,0(R7) ; put char. into string
INC R7
CMP #064h,R7 ; all 100 characters are
; received ?
JL WAIT
TX: MOV #STRING,R11 ; load string address
MOV #0h,1(R7) ; end of text character
; BIC #01h,&200h ; use only if no special
; treatment of ESC is wanted
CALL &TXTABLE
CALL &PREPRX
MOV #00h,&03DEh ; &05DEh on the MSP430X33x
ENDL; JMP ENDL
UART: BR &INT_RXTX
.sect Int_Vect,03E0h ; &05E0h on the MSP430X33x
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.word UART ; UART Routine
.word RESET ; Reset
.word RESET ; Reset
.word RESET ; Reset
.end
61
6 Using Interrupt Vectors in the EPROM
This chapter describes how to use interrupt vectors stored in the EPROM. The interrupt vectors are stored
in EPROM so they are not lost when power is removed.
6.1 The Identification Bit Pattern After a Reset
The reset start-up sequence checks the contents of memory location E9DEh to see if its contents are equal
to AA55h. If the memory location contents equal AA55h, the EPROM interrupt vector table with addresses
ranging from E9E0h to E9FEh is copied to the interrupt table in the RAM locations 3E0h to 3FEh on the
MSP430x32x, or 5E0h to 5FEh on the MSP430x33x family, and the key for the software UART is set to
AA55h to switch the monitor off. If the contents of memory location E9DEh are equal to 0000h, the next set
of interrupt vectors, located at 22h below the previous location, is tested like the first set previously
described. If the valid identification is set to AA55h after each power up or hardware reset, the user program
starts and the EPROM monitor is switched off. The only way back to the monitor is an indirect branch to
Ret_Mon (0FFDCh). The user program code implements a branch, as well as the condition for the branch.
62
Reset
Set Location of Identification
Address Pointer to E9DEh
Decrement Identification
Address Pointer By 22h
Identification ?
Contents of Identification
Address = 0000h
Identification ?
Contents of Identification
Address = AA55h
Copy EPROM Interrupt Vectors
And Identification AA55h
To RAM Interrupt Vectors
Jump To New Reset Vector
Address In RAM
Emergency Return
To Monitor ?
(Optional User Defined
yes: BR Ret_Mon)
Start Monitor
no yes
yes
Figure 61. Identifying AA55h After Reset
NOTE:
It is important that the emergency return to the Monitor routine works properly and
has been tested in RAM before burning it into the EPROM. If the actual
identification address contains address AA55h, the Monitor will NEVER start again.
Be sure to program the key as the last step in the evaluation of a program, after all
errors have been fixed.
63
The following example demonstrates how to implement and test the emergency come-back to the monitor
routine:
1. Set the variable DVLP to 0 after the routine has been successfully tested in RAM. The variable
TRIAL indicates the number of interrupt tables that have been burned. The last necessary input
is the start address BEGIN.
2. Insert the address where the program is stored. To find a free section in EPROM, use the m or
the e command.
3. The terminal is switched off and the program enters an endless loop after burning the program
and executing a reset, or after starting it with the go command.
4. To come back to the monitor, press and hold down the demo button and press the button.
;****************************************************************************
; Demo for Emergency Burn-over of already written ID = AA55h
;****************************************************************************
DVKO .set 1 ; Development = 1, Final = 0
TRIAL .set 1 ; Progressing trial number )start=1)
BEGIN .set 0C000h ; Startaddress of (new) code in EPROM
;––– definition of testpin
pin .set 01h ; testpin is P0.0
P0DIR .set 12h ; Port 0 direction control register
P0IN .set 10h ; Port 0 input register
;––– ddfine working sections
.if DVLP =1
.text 00240h ; code in RAM during development
.else
.text BEGIN ; code in EPROM at final run
.endif
;––– test routine is waiting for low at testpin
start
bic.b #pin, P0DIR ; testpin is input
bit.b #pin, P0IN ; test testpin
jnz user_prg ; jump to user program if testpin = 1
clr 003DEh ; clear ID in RAM (005DEh on MSP430X33x)
br 0FFDCh ; branch indirect to Monitor
;––– insert here the start up of your user program
user_prg
jmp user_prg ; Dummy endless loop
;––– define reset vector in RAM for development
.sect RAM_RES, 03FEh ; 05FEh on MSP430X33x
64
.word start
;––– additionally define reset vector in EPROM if final version
.if DVLP = 0
.sect EPRM_RES, 0E9FEh((TRIAL1)*22h)
.word start
; write identification to EPROM if final version. This MUSt be the LAST
section !
.sect IDENT, 0E9DEh((TRIAL1)*22h)
.word 0AA55h
.endif
NOTE: Identification Pattern AA55h
Program the identification pattern as the last word of the download. To assure this, the section
containing the identification should be the last section in the source file.
The following code is an example of the EPROM user interrupt vector table and the associated key for its
activation.
.sect Int_Vect,0E90Eh((TRIAL1)*22h)
.word POIFG.27 ; I/O Port 0
.word BTIFG ; Basic Timer
.word RESET ;
.word RESET ;
.word RESET ; (TimerB)
.word ADCIFG ; ADC, Timer/Port
.word RESET ; Timer/Port
.word RESET ; (SCI)
.word RESET ; (TimerA)
.word RESET ; (TimerA)
.word WDTIFG ; Watchdog timer
.word RESET ; (SPI)
.word POIFG.1 ; Dedicated I/O
.word POIFG.0 ; Dedicated I/O
.word OFIFG ; OSC. fault
.word WDTIFG ; Power-up, ext. Reset, Watchdog
.sect IDENT,0E9DEh((TRIAL1)*22h)
.word 0AA55h
.end
71
7 Memory Configurations for MSP430 Devices
The MSP430 is well suited for the development cycle. The Monitor Program provides the commands s and
c to set and clear breakpoints, and SPACE to perform a single step execution in the RAM area for these
devices.
Monitor
One-Time
Programmable
EPROM
RAM
16 Bit Peripheral
Modules
MSP430P325 in
MSPSTK430x320
FFFFh
EA00h
C000h
03FFh
0200h
0000h
Monitor
EPROM
RAM
MSP430E325 in
MSPEVK430x320
FFFFh
EA00h
C000h
03FFh
0200h
0000h
Monitor
EPROM
RAM
MSP430E337 in
MSPEVK430x330
FFFFh
EA00h
8000h
05FFh
0200h
0000h
0100h 0100h 0100h
16 Bit Peripheral
Modules 16 Bit Peripheral
Modules
8 Bit Peripheral
Modules 8 Bit Peripheral
Modules 8 Bit Peripheral
Modules
Figure 71. Memory Map of the STK/EVK
772 User Program. Data and Stack 21 4h 21 2h Reserved For Monilol 200h H COODh Program (— 11K)
72
RAM EPROM
Address Address
RESET
User
Interrupt
Vectors
Ident. (AA55h)
User
Program, Data
and Stack
Temporary
EPROM
Programming
Routine
Reserved
For
Monitor
3FEh
3E0h
3DEh
3DCh
23Eh
23Dh
214h
212h
200h
User
RAM
MONITOR
FFFEh
EA00h
E9FEh
E9E0h
E9DEh
E9DCh
C000h
User
Program
( 11K)
User
Interrupt
Vectors
RESET
Ident. (AA55h)
MSP430P325 in
MSPSTK430x320 MSP430E325 in
MSPEVK430x320
Figure 72. Memory Map of the STK/EVK430x32x
User Program. Data and Stack 214h 212h Reserved Fm Monilol 200h H EOODh Program (— 23K)
73
RAM EPROM
Address Address
RESET
User
Interrupt
Vectors
Ident. (AA55h)
User
Program, Data
and Stack
Temporary
EPROM
Programming
Routine
Reserved
For
Monitor
5FEh
5E0h
5DEh
5DCh
23Eh
23Dh
214h
212h
200h
User
RAM
MONITOR
FFFEh
EA00h
E9FEh
E9E0h
E9DEh
E9DCh
8000h
User
Program
( 28K)
User
Interrupt
Vectors
RESET
Ident. (AA55h)
MSP430P325
MSPEVK430x320 MSP430E337
MSPEVK430x330
Figure 73. Memory Map of the STK/EVK430x33x
74
A1
Appendix A
Difference Between STK and EVK
STK EVK
Initialization banner MSP-STK430x320 MSP-EVK430x320/MSP-EVK430x330
Device One mounted OTP device
MSP430P325IPM
Two windowed unbearable devices PMS430E325FZ or
PMS430E337HFD
Monitor Programmed Programmed in only one device. After erasing the device, the
monitor program (mon_140.txt for the MSPEVK430x320, and
mon_160.txt for the MSPEVK430x330) in the STK directory
must be programmed again. See Programming Adapter Manual.
LCD Assembled Not assembled
Sensor demo Hardware assembled Hardware not included
A2

Products related to this Datasheet

EXPERIMENTER MSP430FG4618/F2013
EXPERIMENTER MSP430F5529 EVAL BD
TARGET BOARD ZIF SKT MSP430
MSP430X32X EVAL BRD
MSP430X33X EVAL BRD
EXPERIMENTER MSP430F5438 EVAL BD