Programming the 16-Bit MSP430 Microcontroller

Programming the 16-Bit MSP430 Microcontroller

Copyright © 2017 by Tomislav N. Krnich

Chapter 0: Front Matter






Chapter 1: Getting Started with the MSP430 Microcontroller

Basic Skills that are Needed to Get Started

Short Introduction to the Microcontroller

Firmware versus Software

What You Need for Programming an MSP430 Microcontroller

Host License and Firmware Development Tool Market

MSP430 Microcontroller Market

Next update is planed for the week of 2017-08-20.

Programmer-Debugger Market

Target Board Market

Hardware Options: How to Enter the MSP430 Ecosystem Cheap and Easy

OPTION 1: Target Board with Replaceable MCU and Built-in Programmer-Debugger

OPTION 2: Target Board with a Fixed MCU, Built-in Programmer-Debugger, and Many Built-in Peripheral Devices

OPTION 3: USB Dongle Containing a Replaceable Target Board, Fixed MCU, and Built-in Programmer-Debugger

OPTION 4: Autonomous Programmer-Debugger with a Home-Built Target Board

OPTION 5: Autonomous Programmer-Debugger with Target Board, Fixed MCU, and Peripheral Devices

OPTION 6: Autonomous Programmer-Debugger with Target Board, Replaceable MCU, and No Peripheral Devices

Getting Your Beginner’s Development Kit

Building Your Own Adapter Circuit that Connects a Programmer-Debugger with a Target

Chapter 2: Introduction to MSP430 Microcontroller Architecture


Starting and Stopping a Microcontroller

The Big Picture of MSP430 Architecture

Clock Module and CPU

Data Bus

Memory Module

CPU Interrupt System

Watchdog Module

Peripheral Modules

Texas Instruments Technical Documentation

Chapter 3: Creating an MSP430 Firmware Development Project


USB Drivers for the Programmer-Debugger and UART Interface

Getting to know the “CCS Project Wizard”

Creating a New Project in CCS

CCS Main Window Essentials

Loading and Running your Firmware

Chapter 4: Reading and Writing to Memory


Register Variables and Bitfield Masks

Memory Register Diagrams

TIP: How to Force the CCS Debugger to Step Through Each Instruction

An Introduction to Bitwise Manipulation

This Article’s Model Memory Register and Masks

Preview of the Setting, Clearing and Toggling Operations

Setting Bits in a Register

Clearing Bits in a Register

Toggling Bits in a Register

TIP: Configuring the CCS “Variables View” so You Can See the Value of a Char Data Type

Reading the Bitfields in a Register

TIP: The Binary Integer Constant (Our Little Helper)

Testing the Contents of a Register

Stopping the Watchdog Timer

The General Purpose Input and Output (GPIO) Module

Chapter 5: MSP430 CPU Interrupt System


Basic Operation of the System

High-Level Architectural View

CPU Interrupt Logic and the Interrupt Vector

Interrupt Request Signals (IRQs)

Bitfields that Control Interrupt Request Signals (IRQs)

Types of System Resets

For More Information about the Interrupt System and Interrupt Vectors

Chapter 6: How to Write an Interrupt Service Routine (ISR)