Syllabus for Roster(s):

  • 21Sp ECE 3430-001 (ENGR)
  • 21Sp ECE 3430-002 (ENGR)
  • 21Sp ECE 3430-003 (ENGR)
In the UVaCollab course site:   ECE3430 Embedded S21

Course Description

ECE 3430 Introduction to Embedded Computing Systems

Learning Objectives

Upon successful completion of this course, you will be able to

  1. Design information processing systems
  • Information is represented by analog and digital, discrete-time voltages
  • Processing is accomplished using software executing on a micro-controller
  1. Develop a test plan to verify that the implementation you specify satisfies the requirements
  2. Verify the operation the implementation experimentally
  • Verification is accomplished using an embedded development platform and standard laboratory equipment
    • For example, oscilloscope, multi-meter, function generator, power supply, and so forth

Course Description

An embedded computer is designed to efficiently and (semi-) autonomously perform a small number of tasks, interacting directly with its physical environment.   This lab-based course explores architecture and interface issues relating to the design, evaluation and implementation of embedded systems . Topics include hardware and software organization, power management, digital and analog I/O devices, memory systems, timing and interrupts.

Prerequisites

  • ECE/CS 2330 Digital Logic Design
  • CS 2110 Software Development Methods
  • ECE 2660 Fundamentals of Electrical Engineering 2

Course Credits

This is a 4-credit course that meets for three 75 minute class meetings per week.   There is extensive outside programming expected as well.

Instructor

Adam Barnes

Texts

Cem Unsalan and H. Deniz Gurhan,  Programmable Microcontrollers with Applications: MSP430 LaunchPad with CCS and Grace (1st edition), McGraw-Hill Education, 2013, ISBN = 978-0071830034.

Computing Platform

We have selected the Texas Instruments MSP430 family of microcontrollers as an embedded computing platform for several reasons:

  • It is an industry standard device used in a wide range of applications including remote control, power monitoring, and wearable computing devices.
  • It is a 16 bit machine that facilitates an understanding of basic computer architectural concepts such as the use of index registers, stack pointers and indirect addressing. It also supports basic forms of Direct Memory Access.
  • It includes extensive debugging capabilities on-chip, including break points, single-stepping, and register and memory watches.
  • TI supplies an excellent free Integrated Development Environment.
  • The LaunchPad is a surprisingly functional platform available at a very low price ($9.99 retail).

Content

Overview of embedded systems; introduction to MSP architecture

Students are introduced to the architecture of the Texas Instruments MSP 430 family of microcontrollers, on which the lab assignments will be implemented.  We have designed and produced a set of plug-in header boards that attach to the MSP LaunchPad, a low-cost but surprisingly functional member of the MSP430 family of microcontrollers.   The LaunchPad allows students to experience all the salient features of embedded systems in an inexpensive package.

Students are also introduced to Code Composer Studio (CCS), a functionally rich development environment that supports the MSP family of devices.  Programs are written in C and CCS supports active debugging of programs on the MSP device.

An overview of the architecture of the MSP introduces the CPU, special purpose registers,  addressing modes, instruction set, clocking and timer systems, analog-to-digital conversion, interrupt processing, memory-mapped IO, power management, ports and peripherals and communications.

Introduction to Embedded C

You begin the semester with a series of projects to help you learn the C programming language, especially as used within an embedded environment.

Software-Implemented Finite State Machines

Several assignments deal with the design of a Finite State Machine (FSM), which is then implemented in software. Examples includes debouncing a switch, decoding quadrature encoding sequences, and digital filters.

Timers and Interrupts

You are introduced to concepts associated with elapsed time using hardware timers, along with the two methods for creating delays in an embedded system - interrupts and polling.

Pulse Width Modulation

A set of assignments enable the you to explore Pulse Width Modulation (PWM).   You are introduced to PWM by varying the perceived brightness of an LED with a modulated triangle function, that effectively represents the voltage across the LED. You will then use PWM to control the speed of a DC brush motor by implementing a simple closed-loop control scheme.

Flash memory and Serial Peripheral Interface (SPI)

One of the custom-designed header boards contains 2 512-Kbit serial flash memory chips accessed via the SPI (Serial Peripheral Interface) protocol.   You learn to use the SPI interface to send and receive data from an external flash memory.

Digital Signal Processing

You will learn how to implement a Digital Signal Processing (DSP) system, which processes digital representations of analog signals using digital filters implemented in software.