Texas Instruments MSP430, MSP-STK430x320, MSP-EVK430x320 Series Manual

Page 1
MSP430 Family
Evaluation Kit Manual
Starter Kit
1999 Mixed-Signal Products
SLAS191A
Page 2
IMPORTANT NOTICE
T exas 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 APPLICA TIONS. INCLUSION OF TI PRODUCTS IN SUCH APPLICATIONS IS UNDERST OOD TO BE FULLY AT THE CUSTOMER’S RISK.
In order to minimize risks associated with the customer’s 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
Page 3
Contents
Section Title Page
1 Getting Started 1–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Installing the Software 1–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Hardware Installation 1–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 The STK/EVK-PCB Operating Conditions 1–2. . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 How to Install the Hardware 1–3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Programming the Monitor Software Into an
Erased EPROM (EVK Only) 1–5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 MSP-STK/EVK430x320 Target Connectors 1–6. . . . . . . . . . . . . . . . . . . . . . . . .
1.2.5 MSP-EVK430x330 Target Connectors 1–7. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.6 The LCD 1–8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.7 Schematic for the MSP-STK/EVK430x320 1–10. . . . . . . . . . . . . . . . . . . . . . . . .
1.2.8 Schematic for the MSP-EVK430x330 1–11. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.9 Starting the STK Demo Program 1–12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.10 Executing a Program with the STK 1–12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.11 How to Use Breakpoints 1–22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.12 Accessing the Port on the MSP430x320 STK/EVK 1–23. . . . . . . . . . . . . . . . . .
1.2.13 How to Use an Interrupt Routine 1–24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Loading a Program Into the EPROM Via the Terminal 1–25. . . . . . . . . . . . . . . . . . . . . .
2 Monitor Commands 2–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Syntax Conventions 2–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Memory Organization 2–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Commands 2–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Monitor Restrictions 3–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Register R4 3–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 The Instruction CALL R4 3–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Peripheral Hardware/Registers 3–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 RAM Locations for the Monitor 3–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Writing Data Into the EPROM 3–5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Treatment of Interrupts 4–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Use of Interrupts in the Monitor Environment 4–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Half Duplex Monitor Software UART 5–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 Transmission Parameters of the Software UART 5–1. . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Identification of Bit Pattern AA55h 5–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Special Treatment of <ESC> in the Software UART 5–4. . . . . . . . . . . . . . . . . . . . . . . .
5.4 Transmitting One Character 5–5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Transmitting a String 5–7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 Receiving a Character 5–8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Using Interrupt Vectors in the EPROM 6–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 The Identification Bit Pattern After a Reset 6–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iii
Page 4
7 Memory Configurations for MSP430 Devices 7–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A Difference Between STK and EVK A–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of Illustrations
Figure Title Page
1–1 MSP-STK430 Program Group 1–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–2 MSP/EVK430 Program Group 1–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–3 Terminal Screen 1–4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–4 Programming the Device 1–5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–5 MSP-STK/EVK430x320 Target Connectors 1–6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–6 MSP-EVK430x330 Target Connectors 1–7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–7 Supplied LCD Mechanical Data 1–8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–8 LCD Segment Digits 1–9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–9 LUXMETER Demo Program 1–12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–10 Properties 1–13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–11 Getting Started Demo Program 1–14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–12 ASM430 Assembler Window 1–15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–13 gs_stk1.asm Window Display 1–16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–14 gs_stk1.asm 1–17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–15 Terminal Window 1–18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–16 Terminal Transfer 1–19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–17 HyperTerminal Display 1–20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–18 Terminal | execute gs_stk1.txt 1–21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–19 Terminal Breakpoint 1–23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–20 Basic Timer Interrupt Routine 1–24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–21 Terminal | Interrupt 1–25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–22 Programming Voltage and Jumper Location 1–26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–23 EPROM LCD and Interrupt Routine 1–27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–24 HyperTerminal Window 1–28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–25 Transfers \ Send Text File 1–28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–26 Send Text File Dialog Box 1–29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1–27 Burn Failed Message 1–30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–1 Memory Organization 2–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–2 Help Command 2–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–3 Byte, Word Commands 2–3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–4 Initializing the Terminal Program Command 2–4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–5 User Reset Command 2–5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–6 Register Command 2–6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–7 Register Specified Command 2–7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–8 Modify One Register 2–8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–9 Modify Additional Registers 2–9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–10 Revise Memory Modification 2–10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–11 Memory Byte, Word Command 2–11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–12 Memory Modification 2–12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–13 Revised Memory Modification 2–13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
Page 5
2–14 Transfer Data Command 2–14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–15 EPROM Erase Check Command 2–15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–16 Location of a Breakpoint Command 2–16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–17 Set a Breakpoint Command 2–17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–18 Clearing a Breakpoint Command 2–18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–19 Clearing a Breakpoint Location 2–18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2–20 Starting the Application Command 2–19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–1 CALL R4 Instruction Code 3–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–2 RAM Area 272h to 3FEh 3–3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–3 RAM Area 200h to 3FFh for the MSP430x32x Family 3–4. . . . . . . . . . . . . . . . . . . . . . . . . . .
3–4 Temporary Burn Routine in the MSP430x32x RAM Area 3–5. . . . . . . . . . . . . . . . . . . . . . . .
4–1 Monitor Interrupts for the MSP430x32x Family 4–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4–2 P0.0 Interrupt Example 4–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5–1 Identification of Bit Pattern AA55h for the MSP430X32x Family 5–2. . . . . . . . . . . . . . . . . .
5–2 Special Treatment of ESC 5–4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5–3 Transmitting the s Character 5–6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6–1 Identifying AA55h After Reset 6–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7–1 Memory Map of the STK/EVK 7–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7–2 Memory Map of the STK/EVK430X32x 7–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7–3 Memory Map of the STK/EVK430X33x 7–3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List of Tables
Table Title Page
1–1 LCD Connector 1–9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3–1 Peripheral Registers and Bits 3–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4–1 Type of Interrupt 4–2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4–2 Interrupt Vectors for the MSP430x32x Family 4–3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4–3 Interrupt Vectors for the MSP430x33x Family 4–3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5–1 Function/Vector 5–1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
Page 6
vi
Page 7
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.
1–1
Page 8
Figure 1–1. MSP-STK430 Program Group
Figure 1–2. 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 V alues)
Operating voltage
0.7 mA at 3 V, 25°C, no connection to serial port1 mA at 5 V, 25°C, no connection to serial port5 mA at 3 V, 25°C, serial port connected5.5 mA at 5 V, 25°C, serial port connected
Note: The current consumption is measured without any additional external
connections. 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 1–5 or 1–6,
depending on the system you have).
1–2
Page 9
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 HyperT erminal settings used are: data bits—7; parity—even; stop bits—1; flow control—none.
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 Adapter’s 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 HyperT erminal 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 1–3.
1–3
Page 10
MSP–STK430A320
>_
Figure 1–3. 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 T arget 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.
1–4
Page 11
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 1–4 shows the pop-up that will appear when programming the Monitor software into an erased EPROM EVK.
Figure 1–4. Programming the Device
1–5
Page 12
1.2.4 MSP-STK/EVK430x320 Target Connectors
External Supply 3–5V 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
V
CC
3 V 5 V
V
CC 5 V 5 V 3 V
VPP-Input Apply 12-20 V dc If Programming Using Serial Port
LCD 3 V 5 V
3 V
Default
Close
Open
Open Close Close
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
VPP Fuse F250 mA
Connector To Programming Adapter MSP-PRG430x (Only EVK)
1–6
LCD Signals:
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 1–5. MSP-STK/EVK430x320 Target Connectors
LCD (Only STK)
Page 13
1.2.5 MSP-EVK430x330 Target Connectors
Pin z = Power g = Ground
Figure 1–6. MSP-EVK430x330 Target Connectors
1–7
Page 14
1.2.6 The LCD
Figure 1–7 shows the segment type LCD supplied with the STK/EVK.
40.00 ± 0.25
± 0.15 2.90 ± 0.15
2.90
0.90
120
VEWING AREA
Digit 7 6543 210
2.00 8.30 4.10
1.80x 19 = 34.20
± 0.05 0.90
± 0.10
Figure 1–7. Supplied LCD Mechanical Data
6.00 4.85
±
14.40 0.25
1–8
Page 15
The LCD is connected to the STK/EVK as shown in Table 1–1.
T able 1–1. LCD Connector
PIN NO. COM1 COM2 COM3 COM4
1 COM3 – 2 COM4 3 COM2 – 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
A
E
C
H
FB
G
EC
D H
Digit 6–0Digit 7
Figure 1–8. LCD Segment Digits
1–9
Page 16
1.2.7 Schematic for the MSP-STK/EVK430x320
SEG1857SEG1756SEG1655SEG15
60 SEG20
59 SEG19
58
54 SEG14
53 SEG13
52 SEG12
51 SEG11
50 SEG10
49 SEG9
48 SEG8
47 SEG7
46 SEG6
45 SEG5
TP.1
32 kHx
33
TP.2
x1
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
TP.3
TP.4
TP.5
TAST1
GND
Not Assembled On EVM
44 SEG4
43 42
SEG3 SEG2
41
SEG1
40
SEG0
39
R03
38
R13
37
R23
36
R33
35
PO.7
34
PO.6
33
PO.5
32
PO.4
31
PO.3
30 29
PO.2 PO.1
28 27
PQ.0
1M
R23
3
4
J4
1
2
GND
61 62
COM0 COM1
63 COM2 COM3 TDO TDI TMS TCK RST/NMI XBUF A0 A1 AVSS DVSS
AVCC
64
65
66
67
68
1
2
3
4
5
6
7
8
9
484746454443424140393837363534
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
1
2345678
1011121314151617181920212223242526
DVCC
A2A3A4
REXT
SVCC
2.7 k R22
CA
DVCC/AVCC
U5
NC
3
LM283SLP–2.5
2
1
Not Assembled On EVM
r9l232
D5
GND
AK LL103A
D4
U3
MSP430P325IPM
A5
XIN
XOUT
00HM
R24
VCC_MSP
XOUT
STK 64 QFP CHIP
EVK 68PLCC SOCK
9
10111213141516
CI
TP.0
6 1
22 pF
C7
RST/NMI
GND
0
Open
EYES
RI6
5 V
3 V
1.8 M =
=
CC
CC
SOLDER
RI9
V
V
820 k
RI8
820 k
RI7
820 k
COM1S0S1S2S3S4S5S6S7S8S9
Not Assembled On EVK
20191817161514
678
9
SEG0
SEG1
J2
1
234
SEG2
5
D11
LL503A
AK
I
T2
E
C
B
22 K R14
T3
C
E
B
R13
100 k
8C850
SEG3
SEG4
+
22µ F 16 V
C7
AK
LL4348
D9
SEG5
13
SEG6
987654321
121110
SEG7
SEG8
SEG9
SEG10
GND
S10
S11
S12
S13
S14
COM1
COM2
COM3
COM4
SEG11
SEG12
SEG13
SEG14
COM0
COM1
COM3
COM2
R15
2.7 k
AK
LL40348
D11
220 k R20
B
E
8C850
C
T4
1–10
C7
10 DNF
RESET
+ –
GND
TAST1
AK
LL103A
D2
AK
LL103A
D1
246
8
10
9
= 3 V 0
= 5 V Open
SOLDER EYES
CC
CC
V
V
14
11 12
13
GND
8
OUT1
TPS720100
S/FPQGND
123
560 K
R5
510 KR6150 K
R4
+
C4
100 NF
C3
10µ F 30 V
J1 Not Assembled onSTK
OUT2
120 K
100 k
R11
T1
C
E
B
8C850
100 NF
C6
+
10µ F 30 V
567
IN3
IN2
U1
EN_
4
C5
AK
LL103A
D6
R7
270 K
GND
R12
AK
AK
LL4348
33 k
R10
LL4348
D8
D7
R9
100 k
GND
100 k
R6
+
47µ 36 V
C8
567
8
IN3
TL751L1200
FD 25 A
OUT1
OUT2
S/FPQGND
234
1
IN2
EN_
AK
LL383A
D14
U4
GND
10 k
R21
V_EIN
BU1
D13
D12
LL303A
LL434B
F1
K A
K A
GND
4.7 M
J1
1
357
K
D3
LL103A
A
1 k
R23
100 NF
C1
J3
C9
47µ F 10 V
R3
100 k
R1
3
4
1
2
VCCEXT
Page 17
1.2.8 Schematic for the MSP-EVK430x330
P1.3
P1.4
P1.5
C9
390 nF
39 nF
X1
32 KHz
TDI
11
13
TCK
GND
1OO k
R8
876
OUT1
OUT2
SFPGGND
TPS7201QD
1
234
150 k
R6
P1.6
GND
XIN
GND
IN1
S0S1S2S3S4S5S6S7S8S9S10
P1.7
5
IN2
EN
NC2 80
81
S23
82
S24
83
S25
84
S26
85
S27
86
S28
87
S29
88
R03
89
R13
90
R23
91
VCC
92
TDD
93
TDI
94
TMS
95
TCK
96
RST
97
XBUF
98
XOUT
99
XIN
100
GND
123456789
VCC
VCC
S19
S20
S21
S22
CI
TP0.0
TP0.1
TP0.2
R23
1.5 k
Not Assembled
R23
820 k
R22
RST
4.7 M
R3
D3
LL103A
R7
1 k
100 k
R1
2
Test3
Reset
1
C2
100 N
+
10 V
C1
47 µF
LL103A
D1
S11
S12
S13
S14
S15
S16
S17
S18
101112131415161718192021222324252627282930
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
R27
NTC
GND
XOUT
VCC_MSP
2468101214
J1
13579
TDO
Solder Eyes
10 V
+
C610 µF
C6100 N
C10
TDI
R4
R5
P1.2
XOUT
TMS
560 k
510 k
TP0.3
TP0.4
R24
R13
820 k
R21
C4
100 N
C3
100 N
S1
VCC EXIT
10 k
TP0.5
R25
100 k
Solder Eyes
R03
820 k
R20
LL103A
D4
GND
VCC = 3 V, 0
LL103A
D2
R26
NTC
VCC = 5 V, Open VCC = 3 V, 0
1.8 M R19
VCC = 5 V, Open
COM1
COM0
P2.0
D15
COM2
P2.1
P2.2
LL103A
R7
GND
COM3
VCC
GND
J2
12345
D14
R15
22 k
P0.2
P0.1
C8
+ C7
270 k
P4.7 5152535455565758596061626364656667686970717273747576777879
NC1
678
LL103A
E
BC860
BC850
E
B
100 N
10 µF
9.1 V
D5
P4.6
50
P4.5
49
P4.4
48
P4.3
47
P4.2
46
P4.1
45
P4.0
44
P3.7
43
P3.6
42
P3.5
41
P3.4
40
P3.3
39
P3.2
38
P3.1
37
P3.0
36
P2.7
35
P2.6
34
P2.5
33
P2.4
32
P2.3
31
COM1S0S1S2S3S4S5S6S7S8S9
Not Assembled
2019181716151413121110
9
S0S1S2S3S4S5S6S7S8
T2
C
BC850
B
R16
T1
Z–DIODE
100 k
C
GND
C
B
R13
820 k
R12
820 k
R11
Not Assembled
T3
Buzzer
D10
100 k
LL103A
D12
D11
F1
0
R28
LL103A
E
100 k
R14
D6
TL751L12QD
LL4148
F0.25 A
Not Assembled
C13
22 µF
+
LL4148
D8
LL4148
123
C1
C2
OUT
INC4C3
8
765
D7
LCD
T21B010
S10
S11
S12
987654321
S9
S11
S10
S12
S13
R18
2.7 k
GND
D5
R16
B
E
BC850
C
T4
LL4148
D7
100 k
R10
C12
33 µF
4
NC
EN
100 k
R9
LL103A
C12
100 N
VCC
S13
S14
S14
LL4148
220 k
COM1
COM0
COM1
GND
BU1
COM2
COM3
COM3
GND
GND
Buchse
COM4
COM2
1–11
Page 18
1.2.9 Starting the STK Demo Program
In the HyperT erminal program, type a d to start the demo program. If the HyperT erminal 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/HyperT erminal 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 1–9. 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 272h–50Ch 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.
1–12
Page 19
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 .
T o 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 1–10. 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.
1–13
Page 20
;**************************************************************************** ;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
1–14
Figure 1–11. Getting Started Demo Program
Page 21
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 1–11. 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 dif fer from that shown below):
Figure 1–12. ASM430 Assembler Window
1–15
Page 22
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 1–13. 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 1–14 is a listing of gs_stk1.asm:
1–16
Page 23
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 1–14. gs_stk1.asm
1–17
Page 24
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:
MSP–STK430A320
>_
1–18
Figure 1–15. Terminal Window
Page 25
Open the pulldown menu Transfer in the HyperTerminal to load the program using the RS232 into the STK/EVK, as shown in Figure 1–16. Select the Send Text File menu item.
NOTE:
Transfer Send Text File
MSPSTK430A320
>_
Receive text file... V
iew Text File...
Send Binary File... Receive Binary F
Pause
Resume Stop
Figure 1–16. Terminal Transfer
NOTE: The help menu can be displayed by typing an h.
ile...
1–19
Page 26
Select the assembler output file gs_stk1.txt in the examples directory from the Send T ext File . . dialog box. Figure 1–17 shows the HyperT erminal screen displaying the following data after loading gs_stk1.txt into the STK/EVK.
Init
MSP–STK430A320 >@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 1–17. HyperTerminal Display
1–20
Page 27
In the HyperT erminal , 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 SP ACE 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 1–18. 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.
1–21
Page 28
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 1–19 shows these commands as they appear on the display .
1–22
Page 29
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
>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
>
Enter the g-command to start the program
Automatic stop on breakpoint
Press the SPACE key to execute a single step
Figure 1–19. 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
;––– Test of Port
BIC.B #01h,P0DIR ; Set P0.0 as input BIC.B #01h,POIE ; Disable P0.0 interrupt
1–23
Page 30
$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 1–20 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)
Int_BT_end
To use the interrupts, the interrupt vector table must be set up as follows:
;**************************************************************************** ; Interrupt vectors
;****************************************************************************
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
RETI
.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 1–20. Basic Timer Interrupt Routine
1–24
Page 31
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 1–21. 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 1–22 show the locations for the programming voltage and the connector jumper.
1–25
Page 32
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 1–22. 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).
1–26
Page 33
;**************************************************************************** ; 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, LCD1–1(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_end
RETI
Figure 1–23. 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 .
T o load a program using the HyperT erminal, 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 1–24.
1–27
Page 34
MSP–STK430A320
>_
Figure 1–24. HyperTerminal Window
To load a program into the MSP430 using the HyperTerminal, activate the Transfers/Send Text File. . . command as shown in Figure 1–25.
Transfer Send Text File
MSPSTK430A320
>_
Receive text file... V
iew Text File...
Send Binary File... Receive Binary File...
Pause
Resume Stop
Figure 1–25. Transfers \ Send Text File
Figure 1–26 shows the Send Text File dialog box.
1–28
Page 35
Press Open to Send TXT FileChoose your Text File
Figure 1–26. Send Text File Dialog Box
Figure 1–27 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.
1–29
Page 36
>@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 1–27. 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)
1–30
Page 37
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
T o use some commands, it is necessary to know the memory locations and their functions (see Figure 2–1). 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.
FFFFh FFE0h FFDFh
C000h
03FFh
0200h
01FFh
0100h
00FFh
0010h 000Fh 0000h
INT. VECTOR
16 KB EPROM
512 B RAM
16 Bit Peripheral Modules
8 Bit Peripheral Modules
Special Function Register
MSP430x320
Figure 2–1. Memory Organization
FFFFh FFE0h
FFDFh
8000h
05FFh
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
MSP430x330
2–1
Page 38
2.3 Commands
h The 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
>_
2–2
Figure 2–2. Help Command
Page 39
b,w The b and w commands shown in Figure 2–3 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 (b
>MSP–STK430A320
>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
yte or word).
Enter b at the command prompt
Enter w at the command prompt
Figure 2–3. Byte, Word Commands
2–3
Page 40
i The i command, shown in Figure 2–4, 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
MSP–STK430A320
Figure 2–4. Initializing the Terminal Program Command
2–4
Page 41
u The u command, shown in Figure 2–5, 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 2–5. User Reset Command
2–5
Page 42
r[i] The r <ENTER> command, shown in Figure 2–6, 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
MSP–STK430A320
>r reg 0000 : 0300 03de 0008 0000 f48c 0010 0069 000e reg 0008 : 1a28 402a 0000 ffd0 4040 6803 e2c2 07a0
>
Figure 2–6. Register Command
2–6
Page 43
Entering the command with the hexadecimal register number r[i] <ENTER> as shown in Figure 2–7, results in displaying only the contents of the dedicated register i.
Type r5 <ENTER> at the command prompt
>r5 reg 0005 : 0010 _
Figure 2–7. 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.
2–7
Page 44
Figure 2–8 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
MSP–STK430A320
>r5 reg 0005 : 0010 ffff reg 0006 0069 >r5 reg 0005 : 0010 ffff_
2–8
Type r5 again to view the new content of the register
If it is not desired to modify additional registers press <ESC>
Figure 2–8. Modify One Register
Page 45
Figure 2–9 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
>init
MSP–STK430A320
>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
>
Modified registers r5, r6
Figure 2–9. Modify Additional Registers
2–9
Page 46
Figure 2–10 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>
Type r5 <ENTER> to modify register r5
Incorrect terminal input ’$%^&’
Correct terminal input to modify r5
>init
MSP–STK430A320 >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
>
2–10
Enter <ESC>
Figure 2–10. Revise Memory Modification
Page 47
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 2–11.
Enter b at the command prompt
Enter w at the command prompt
Enter m220 20 at the command prompt
>init
MSP–STK430A320
>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 2–11. 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.
2–11
Page 48
Figure 2–12 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>. T o exit the memory command (mx) press the <ESC> key. Pressing <ENTER> toggles through memory locations, displaying each new location after <ENTER>.
Switch to byte indication mode
Switch to word indication mode
Show and modify memory location 0300h in byte mode
Show and modify memory location 0300h in word mode
Enter aa then <ENTER> to modify memory
Enter bbcc then <ENTER> to modify memory
>init
MSP–STK430A320 >byte >m0300 mem 0300 : 31 aa mem 0301 40 >word >m0300 mem 0300 : 40aa bbcc mem 0302 : 0400 >m0300 mem 0300 : bbcc >_
2–12
Press <ESC> here
Show only one memory location 0300h in word mode
Figure 2–12. Memory Modification
Page 49
To revise an incorrect terminal input, perform the following functions as shown in Figure 2–13. 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.
Start the memory mode
Incorrect terminal input
Correction
Press <ESC>
>init
MSP–STK430A320
>byte >m@#$% 20300 2 mem 0300 : 31 40 >m@#$% 2 >m0300 2 mem 0300 : 31 40 >_
View memory contents
Figure 2–13. Revised Memory Modification
2–13
Page 50
@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 2–14 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 2–14. 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.
2–14
Page 51
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 2–15.
Enter mC040 20 <ENTER> to start memory mode (to show 20h)
Check if there is memory space at C040h for 20h Words
Memory location C040h is not erased and is displayed
>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 2–15. EPROM Erase Check Command
2–15
Page 52
s The 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 2–16 shows how to enter the location of the breakpoint.
Set a breakpoint by Typing ‘s’
Enter the location of the breakpoint: 24e
MSP–STK430A320
>Set Bkpt 0000 0000 24e
Figure 2–16. 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.
2–16
Page 53
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 2–17 shows the breakpoint after entry.
To set a breakpoint type s
Enter the location of the breakpoint: 24e <ENTER>
>init
MSP–STK430A320
>Set Bkpt 0000 0000 24e >Set Bkpt 024e 0000
Press <ESC> here
Figure 2–17. Set a Breakpoint Command
2–17
Page 54
c The c command is used to clear a breakpoint. Typing c shows the set breakpoints, as shown in
Figure 2–18.
Clear a breakpoint by typing a ‘c’
>Clr Bkpt 024e 0000
Figure 2–18. 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 2–19.
To clear a breakpoint type c
To clear a breakpoint enter the location: 24e <ENTER>
2–18
>Clr Bkpt 024e 0000 24e >set Bkpt 0000 0000
Press <ESC> here
Start set breakpoint mode by typing s to show the cleared breakpoint
Figure 2–19. Clearing a Breakpoint Location
Page 55
g The g command starts/restarts the user application that is loaded into RAM. The system retrieves
the start vector of a user’s 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.
>init
MSP–STK430A320
>@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.._
Enter g to start the user application
Figure 2–20. Starting the Application Command
2–19
Page 56
2–20
Page 57
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 MOV #0h,R7
WAIT: INC R7
CALL R4 .sect Int_Vect ,03FEh
.word RESET .end
Figure 3–1. CALL R4 Instruction Code
; Timer
3–1
Page 58
3.3 Peripheral Hardware/Registers
Do not modify the following peripheral registers and bits because UART operation uses these register and bits.
T able 3–1. 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 13h 2 P0IE 15h 2
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 3–3 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.
3–2
Page 59
In most cases, it is efficient to initialize the user stack which is allowed to grow (downwards) until it reaches the address 270h (26Fh–32h=23Eh). Thus, the resulting size of the maximum user stack is 16Dh (3DCh–272h=16Ah) on the MSP430x325 family and 360h (5DCh–272h = 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
RAM Area 272h–3FEh for
the MSP430x320
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
RAM Area 200h–5FFh for
the MSP430x330
5FEh
5E0h 5DEh
5DCh
272h 23Eh+32h = 270h
23Eh 23Dh
214h 212h
200h
Figure 3–2. RAM Area 272h to 3FEh
3–3
Page 60
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 3–3.
User application inactive,
User application active
3FEh
Interrupt Vectors
3E0h
Monitor Program active single step, breakpoint,
<ESC>
3FEh
Interrupt Vectors
3E0h
Identification Bit Pattern
SP
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
3DEh
3DCh
214h 212h
200h
Identification Bit Pattern
Stack Used by
Application
Stack Needed From
SP
ROM Monitor, 50 Bytes
Maximum Program,
Stack and Data Size
of User Application
Is Reduced by 50
Bytes, After Return
to the Monitor
Program
RAM Area Always Reserved
For ROM Monitor
3DEh
214h 212h
200h
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 3–3. 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 .
3–4
Page 61
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:
No write to EPROM active
Available RAM for
User Application
RAM Area Always Reserved
for ROM Monitor
214h 212h
200h
Available RAM for
User Application
Temporary
Burn Routine
RAM Area Always Reserved
for ROM Monitor
23Eh 23Dh 214h 212h
200h
Figure 3–4. 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).
3–5
Page 62
3–6
Page 63
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 (5E0h–5FEh for the MSP430X33x family) as shown in Figure 4–1. 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
Figure 4–1. Monitor Interrupts for the MSP430x32x Family
03FEh
Interrupt
03E0h
4–1
Page 64
Figure 4–2 shows the handling of a P0.0 interrupt for the MSP430X32x family. For the MSP430X33x, replace address 03FAh with 05FAh.
P0.0 Interrupt
FFFAh
XXXX
XXXX BR & 03FAh
03FAh
YYYY
YYYY Is The Start Address Of The Interrupt Service Routine
YYYY
Figure 4–2. P0.0 Interrupt Example
The number of cycles an interrupt is additionally delayed in the Monitor Program depends on the type of interrupt received.
T able 4–1. 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 4–2 (or Table 4–3 for the MSP430E33x).
4–2
Page 65
T able 4–2. Interrupt Vectors for the MSP430x32x Family
INTERRUPT SOURCE
Power-up external reset watchdog RSTI†, WDI NMI
Oscillator fault Dedicated I/O P0.0IFG Maskable 3FAh 13 Dedicated I/O P0.1IFG Maskable 3F8h 12
Watchdog timer WDTIFG Maskable 3F4h 10
ADC ADCIFG Maskable 3EAh 5 Timer port Maskable 3E8h 4
Basic timer BTIFG Maskable 3E2h 1 I/O Port 0 P0.27IFG
Multiple source flags
Timer Port interrupt flags are located in the module
INTERRUPT
FLAG
NMIIFG
OFIFG
SYSTEM
INTERRUPT
Reset 3FEh 15, highest Nonmaskable
Nonmaskable
Maskable 3F6h 11
Maskable 3F2h 9 Maskable 3F0h 8 Maskable 3EEh 7 Maskable 3ECh 6
Maskable 3E6h 3 Maskable 3E4h 2
Maskable 3E0h 0, lowest
WORD
ADDRESS
3FCh 14
PRIORITY
T able 4–3. Interrupt Vectors for the MSP430x33x Family
INTERRUPT SOURCE
Power-up external reset watchdog RSTI†, WDI NMI
Oscillator fault Dedicated I/O P0.0IFG.0 Maskable 3FAh 13 Dedicated I/O P0.1IFG.1 Maskable 3F8h 12
Watchdog Timer WDTIFG Maskable 3F4h 10 Timer A CCIFG0 Timer A TIFG UART Receive URXIFG Maskable 3EEh 7 UART Transmit UTXIFG Maskable 3ECh 6
Timer Port Maskable 3E8h 4 I/O Port P2 P2IFG.07 I/O Port P1 P1IFG.07 Basic Timer BTIFG Maskable 3E2h 1 I/O Port 0 P0.27IFG
Multiple source flags
Timer Port interrupt flags are located in the module
INTERRUPT
FLAG
NMIIFG
OFIFG
††
††
ADCIFG Maskable 3EAh 5
† †
SYSTEM
INTERRUPT
Reset 3FEh 15, highest Nonmaskable
Nonmaskable
Maskable 3F6h 11
Maskable 3F2h 9 Maskable 3F0h 8
Maskable 3E6h 3 Maskable 3E4h 2
Maskable 3E0h 0, lowest
WORD
ADDRESS
3FCh 14
PRIORITY
4–3
Page 66
4–4
Page 67
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 5–1):
T able 5–1. Function/Vector
FUNCTION NAME VECTOR ADDRESS FUNCTION PURPOSE
TX_Word 0FFD0h Transmit 1 space and a four digit hex number in R11 TX_Char TX_Table RX_Prep TX_Prep 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.
† † †
0FFD2h Transmit 1 char in TXData (20Eh) 0FFD4h Transmit table (string address should be in R11) 0FFD6h Prepare halfduplex software UART for receive 0FFD8h Prepare halfduplex software UART for transmit
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.
5–1
Page 68
The flow chart in Figure 5–1 I illustrates the entry point of the INT_RXTX interrupt service routine:
INT_P0.1
no yes
Identification ?
Contents Of Memory
Location 3DEh
= AA55h
yes
Receive/Transmit Interrupt Service
TX RX
Half Duplex Software
UART Prepared For Receive or Transmit ? (PREPRX or PREPTX)
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 ?)
Start Of Monitor Interrupt
Service Routine INT_RXTX
Routine
no
User Interrupt
Service Routine is
Continued
Interrupt Service Handler For Transmit Interrupt Service Handler For Receive
Figure 5–1. Identification of Bit Pattern AA55h for the MSP430X32x Family
5–2
Page 69
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.
5–3
Page 70
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
yes no
Memory Location
3DEh is AA55h for
MSP430X32x
(or 5DEh is AA55h
for MSP430X33x)
yes
yes
The Return From Interrupt
is By-Passed
Into ROM-
Monitor
Normal Return Out of
INT_RXTX
Interrupt
Service
no
no
Bit 0 in Memory
Location 200h Set ?
Received Character
is <ESC>
Figure 5–2. 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.
5–4
Page 71
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.
5–5
Page 72
The following code in Figure 5–3 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
5–6
Figure 5–3. Transmitting the s Character
Page 73
In Figure 5–3, the endless loop at the end of the program can be interrupted by pressing <ESC> in the HyperT erminal. 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 R1 1.
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
5–7
Page 74
; 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
5–8
Page 75
; 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
5–9
Page 76
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
5–10
Page 77
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.
6–1
Page 78
Set Location of Identification
no yes
Identification ?
Contents of Identification
Address = AA55h
Reset
Address Pointer to E9DEh
Decrement Identification
Address Pointer By 22h
Identification ?
Contents of Identification
Address = 0000h
Copy EPROM Interrupt Vectors
And Identification AA55h To RAM Interrupt Vectors
6–2
Start Monitor
Jump To New Reset Vector
Address In RAM
yes
Emergency Return
(Optional – User Defined
yes: BR Ret_Mon)
To Monitor ?
Figure 6–1. 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.
Page 79
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
6–3
Page 80
.word start
;––– additionally define reset vector in EPROM if final version
.if DVLP = 0 .sect “EPRM_RES”, 0E9FEh–((TRIAL–1)*22h) .word start
; write identification to EPROM if final version. This MUSt be the LAST
section !
.sect “IDENT”, 0E9DEh–((TRIAL–1)*22h) .word 0AA55h .endif
NOTE: Identification Pattern AA55h
Program the identification pattern as the last word of the download. T o 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–((TRIAL–1)*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
6–4
.sect “IDENT”,0E9DEh–((TRIAL–1)*22h) .word 0AA55h .end
Page 81
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
FFFFh
Monitor
EA00h
FFFFh
EA00h
FFFFh
Monitor
EA00h
One-Time
Programmable
EPROM
RAM
16 Bit Peripheral
Modules
8 Bit Peripheral
Modules
MSP430P325 in
MSP–STK430x320
EPROM
C000h
03FFh
RAM
0200h
16 Bit Peripheral
0100h 0100h 0100h
0000h
Modules
8 Bit Peripheral
Modules
MSP430E325 in
MSP–EVK430x320
C000h
03FFh
0200h
0000h
EPROM
RAM
16 Bit Peripheral
Modules
8 Bit Peripheral
Modules
MSP430E337 in
MSP–EVK430x330
8000h
05FFh
0200h
0000h
Figure 7–1. Memory Map of the STK/EVK
7–1
Page 82
User RAM
Address Address
3FEh
3E0h
3DEh
3DCh
RAM EPROM
RESET
User
Interrupt
Vectors
Ident. (AA55h)
FFFEh
EA00h E9FEh
MONITOR
RESET
Program, Data
23Eh 23Dh
Programming
214h 212h
200h
MSP430P325 in
MSP–STK430x320
Figure 7–2. Memory Map of the STK/EVK430x32x
User
and Stack
Temporary
EPROM
Routine
Reserved
For
Monitor
User
Interrupt
Vectors
E9E0h
E9DEh
E9DCh
C000h
Ident. (AA55h)
User
Program
(– 11K)
MSP430E325 in
MSP–EVK430x320
7–2
Page 83
User RAM
Address Address
5FEh
5E0h
5DEh
5DCh
RAM EPROM
RESET
User
Interrupt
Vectors
Ident. (AA55h)
FFFEh
EA00h E9FEh
MONITOR
RESET
Program, Data
23Eh 23Dh
Programming
214h 212h
200h
MSP430P325
MSP–EVK430x320
Figure 7–3. Memory Map of the STK/EVK430x33x
User
and Stack
Temporary
EPROM
Routine
Reserved
For
Monitor
User
Interrupt
Vectors
E9E0h E9DEh E9DCh
8000h
Ident. (AA55h)
User
Program
(– 28K)
MSP430E337
MSP–EVK430x330
7–3
Page 84
7–4
Page 85
Appendix A
Difference Between STK and EVK
STK EVK
Initialization banner MSP-STK430x320 MSP-EVK430x320/MSP-EVK430x330 Device One mounted OTP device
MSP430P325IPM
Monitor Programmed Programmed in only one device. After erasing the device, the
LCD Assembled Not assembled Sensor demo Hardware assembled Hardware not included
Two windowed unbearable devices PMS430E325FZ or PMS430E337HFD
monitor program (mon_140.txt for the MSP–EVK430x320, and mon_160.txt for the MSP–EVK430x330) in the STK directory must be programmed again. See Programming Adapter Manual.
A–1
Page 86
A–2
Page 87
Mouser Electronics
Authorized Distributor
Click to View Pricing, Inventory, Delivery & Lifecycle Information:
Texas Instruments: MSP-EVK430S320 MSP-EVK430S330
Loading...