Skip to main content

Embedded Processor Design with the MSP430

Worcester Polytechnic Institute

2013

01Background

ECE 2049: Embedded Computing in Engineering Design[4] was my first deep dive into microcontrollers and embedded processors. The course introduced the unique computing and design challenges posed by embedded systems — the small, resource-constrained devices that are literally everywhere in modern life, from coffee makers and cell phones to automobile emissions controllers and home security systems. Recommended background for the course included:

  • ECE 2010: Introduction to Electrical and Computer Engineering [1]
  • ECE 2029: Introduction to Digital Circuit Design [2]
  • CS 2301: Systems Programming for Non-Majors [3]

A significant part of the learning experience involved working through the 1,000+ page Texas Instruments MSP430x5xx Family User's Guide. Understanding the register maps, memory-mapped peripherals, and which bits needed to be flipped to enable specific interfaces was essential. The course covered number and data representations including big endian and little endian byte ordering, binary-to-hex-to-decimal conversions, embedded system design in C, microprocessor architecture, and hardware/software dependencies.

02The MSP430 Platform

The course was built around the MSP-EXP430F5529 Experimenter Board from Texas Instruments[5], a development platform featuring the MSP430F5529 microcontroller with integrated USB. The board came loaded with peripherals that made it an excellent platform for hands-on embedded learning.

Key hardware included a 102×64 dot-matrix LCD display for rendering graphics and text, a 3-axis accelerometer for motion sensing, five capacitive touch pads mapped to shapes (X, Square, Octagon, Triangle, and Circle), multiple LEDs, and an analog thumb wheel. Each peripheral required reading the data sheet to understand its register interface, configuring the appropriate control registers, and writing device drivers to interact with it — all foundational skills for embedded systems engineering.

03Simon Game

The first major lab project was replicating the classic game Simon on the MSP430. The game randomly generated a sequence of shapes — X, Square, Octagon, Triangle, and Circle — using the five capacitive touch pads, displayed the pattern on the LCD, and required the player to repeat it back by pressing the corresponding keys. The pattern grew with each successful round — first one shape, then two, then three, and so on.

The LEDs flashed in sync as each key was pressed, providing visual feedback. As the player progressed through rounds, the delay between displaying each shape decreased, increasing the difficulty. The game logic was managed through a state machine implementation with distinct states for pattern generation, pattern display, player input, win conditions, and fail conditions. This project exercised multiple peripherals simultaneously — the LCD for rendering, capacitive touch pads for input, LEDs for feedback, and timers for controlling game speed.

04Sensor Projects

Additional lab projects demonstrated interfacing with the board's various sensors and peripherals. One project involved creating a maze game controlled by the 3-axis accelerometer — a virtual ball was rendered on the dot-matrix display, and tilting the board moved the ball through a maze. The implementation included collision detection to prevent the ball from clipping through walls, and win conditions triggered when the ball reached the target hole. This required reading the accelerometer registers in real time and translating the raw sensor data into smooth on-screen movement.

Another project implemented a real-time clock displaying the proper date and time using the onboard timer and converters. The display also read the chip's onboard temperature sensor through the ADC — the temperature reading visibly increased when placing a finger directly on the processor, demonstrating live analog-to-digital conversion and the relationship between the physical world and digital readings.

Date, time, processor temperature, and accelerometer X/Y/Z data displayed in real time on the MSP430.

05Lab Fundamentals

Throughout the course, lab exercises reinforced foundational embedded systems skills. Working through the extensive TI MSP430 data sheet was a recurring requirement — learning to locate register descriptions, understand bit field definitions, and translate documentation into working C code. Labs covered number system conversions between binary, hexadecimal, and decimal representations, which were essential for interpreting register values and memory addresses.

Other core topics included watchdog timer management — properly "petting the dog" at regular intervals to prevent the processor from resetting — sensor interfacing with attention to ADC resolution and voltage conversions, counter and timer configuration for precise timing control, and event-driven software design where the processor responded to interrupts rather than polling in a busy loop.

06References

[2]ECE 2029: Introduction to Digital Circuit Design — Worcester Polytechnic Institute
[3]CS 2301: Systems Programming for Non-Majors — Worcester Polytechnic Institute
[4]ECE 2049: Embedded Computing in Engineering Design — Worcester Polytechnic Institute