Cleveland State
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
Lab Two
The In-Circuit Debugger
Lab Three
Timing and Timer Interrupts
Lab Four
Long Programs; Capture/Compare/Pulse Width Modulation (PWM)
Lab Five
Pulse Width Modulation; Breadboard Design
Lab Six
Universal Synchronous / Asynchronous Receiver / Transmitter (USART)
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.
Lab Seven
LED Display; Synchronous Serial Port; Keypad Scanning
Lab Eight
Step Motor Control
Lab Nine
Debouncing; EEPROM; Program Memory Modification; Indirect Addressing
Lab Ten
The Inter-Integrated Circuit Bus
Lab Eleven
Fixed Point Math
Lab Twelve
Floating Point Math
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)
Department of Electrical and Computer Engineering
Last Revised: December 15, 2009