Cleveland State University

Department of Electrical and Computer Engineering

 

EEC 417 / 517

Embedded Systems

 

The reason that most people don’t know a lot about embedded systems is implied in the name.  “Embedded,” which means “hidden,” “buried,” or “behind the scenes.” An embedded system is anything that is controlled by a microcontroller, digital signal processor (DSP), FPGA, or other special-purpose computing device. Some common examples include thermostats, alarm systems, cell phones, answering machines, robots, and toys. Any electronic system that does anything beyond the merely trivial is probably an embedded system that has a special purpose computer as its “brain.” This course teaches the student how to program an embedded system. Following are some useful links for this course.

·        The syllabus is available at http://academic.csuohio.edu/simond/courses/eec417/syllabus.html

·        The required hardware and price list for this course is available at http://academic.csuohio.edu/simond/courses/eec417/parts.html

·        The project guidelines are available at http://academic.csuohio.edu/simond/courses/eec417/project.html

The emphasis in this course is on software development, although we must interface with hardware in order to do anything useful. There are dozens of microcontrollers and dozens of DSPs that could be used to teach an embedded systems course. We have chosen to use one of Microchip’s microcontrollers because of the convenient development tools that they have available, and because of their widespread use in the embedded systems industry.

 

This course uses Microchip’s PIC16F877 microcontroller. The 3.7 Mbyte data sheet for the PIC16F877 can be downloaded from Microchip’s web site. Find the data sheet at the Microchip web site by searching for “PIC16F877 DATASHEET”. The data sheet for this part number is combined in a single document with three other part numbers, so the datasheet is titled “PIC16F87X Data Sheet.”

 

Many companies and individuals use Microchip’s PIC for embedded systems development. As such, there are a lot of good web sites available that are chock full of useful information and sample projects. The following free e-books are available for download.

·        Embedded Systems Programming with the PIC16F877, by former CSU student Tim Green

·        Coin-Cell-Powered Embedded Design, by John Peatman

 

Microchip PIC Web Sites

Embedded Systems Web Sites

Embedded Systems Electronics Distributors

How to Find Electronics Parts

 

Lab Assignments and Lecture Slides

 

The following zip files contain the lecture slides, lab instructions, questions, and source code that you will need to complete the weekly lab assignments. Each zip file includes an InstructionsXX.doc file, where XX is the lab number. You should go through this file step by step in order to learn the material. Each zip file also includes a GradeXX.doc file. You should answer all of the questions in this file and hand your answers in by the due date. Each zip file also has some additional files that will help you complete the lab. The zip files are as large as 4 MB, so depending on your Internet speed, you may have to be patient for the downloads.

 

Introductory Lecture PowerPoint Slides

 

Lab One

Introduction to the Microcontroller Development System

Lab01.zip

Solution01.doc

 

Lab Two

The In-Circuit Debugger

Lab02.zip

Solution02.doc

 

Lab Three

Timing and Timer Interrupts

Lab03.zip

Solution03.doc

 

Lab Four

Long Programs; Capture/Compare/Pulse Width Modulation (PWM)

Lab04.zip

Solution04.doc

 

Lab Five

Pulse Width Modulation; Breadboard Design

Lab05.zip

Solution05.doc

 

Lab Six

Universal Synchronous / Asynchronous Receiver / Transmitter (USART)

Lab06.zip

In order to do Lab 6, you will need to use a Windows-based Serial Port Program on your PC. I wrote a very simple Visual Basic 6 Serial Port Program that you can use. To install the program on your PC, download SerialInstall.zip (1.49 MB), unzip it, and run Setup.exe. If you want the source code, I have also made that available in SerialSource.zip (4 KB). You will also need to connect an RS-232 interface chip between the PIC and the PC. A schematic showing how to connect a Maxim RS232 transceiver is available at the Maxim web site www.maxim-ic.com.

Solution06.doc

 

Lab Seven

LED Display; Synchronous Serial Port; Keypad Scanning

Lab07.zip

Solution07.doc

 

Lab Eight

Step Motor Control

Lab08.zip

Solution08.doc

 

Lab Nine

Debouncing; EEPROM; Program Memory Modification; Indirect Addressing

Lab09.zip

Solution09.doc

 

Lab Ten

The Inter-Integrated Circuit Bus

Lab10.zip

Solution10.doc

 

Lab Eleven

Fixed Point Math

Lab11.zip

Solution11.doc

 

Lab Twelve

Floating Point Math

Lab12.zip

Solution12.doc

 

Some of the labs require ASCII character codes. ASCII is an acronym for American Standard Code for Information Interchange, which is a standard way of representing characters with numbers. The ASCII character codes are available at ascii.html.

 

Test Solutions

 

Quiz01a Solution.doc (Version a)

Quiz01b Solution.doc (Version b)

 

Midterma Solution.doc (Version a)

Midtermb Solution.doc (Version b)

 

Quiz02a Solution.doc (Version a)

Quiz02b Solution.doc (Version b)

 

Quiz03a Solution.doc (Version a)

Quiz03b Solution.doc (Version b)

 

Quiz04a Solution.doc (Version a)

Quiz04b Solution.doc (Version b)

 


Professor Simon’s Home Page

Department of Electrical and Computer Engineering

Cleveland State University


Last Revised: December 15, 2009