I. CATALOG DESCRIPTION: ET283 Microprocessor Fundamentals C 3, P 2, CR 4 This course presents the microprocessor/microcontroller as the principal component of embedded systems, providing information on the architecture and programming model using the C language. C programming techniques for arithmetic and logic operations along with flow control are introduced. The use of functions, I/O instructions and timers are presented with laboratory experiments. Corequisites: ET282 Digital Electronics 2 |
II. MATERIALS: Text: Embedded Controllers using C and
Arduino/2E, James M. Fiore, a free OER: PDF
ODT
HTML PRINT Lab Manual: Laboratory Manual for Embedded Controllers using C and Arduino/2E, James M. Fiore (OER): PDF ODT HTML PRINT Video: See the Embedded Programming playlist on my YouTube channel: ElectronicsWithProfessorFiore |
III. STUDENT LEARNING OUTCOMES: The student will demonstrate an understanding of numbering systems commonly encountered in computer systems. The student will display an understanding of microcontroller architecture and I/O structure. The student will demonstrate a basic proficiency in the C programming language. The student will demonstrate an understanding of the differences between programming a desktop computer and a microcontroller. The student will demonstrate a basic knowledge of how to use a host computer to program a microcontroller or other external target. Through the laboratory, the student will demonstrate practical insight and knowledge of interfacing and input/output devices. |
Success in this course requires a good working knowledge of digital circuit principles along with basic semiconductor theory. A working knowledge of a modern programming language such as Python is strongly advised. The math level is mostly algebra. Note that smart devices will not be allowed during tests. For lab, you'll need the standard array of goodies as used in ET151 Circuits 1 and ET153 Intro to Electronics (breadboard, DMM, hook-up leads, etc.) You may also find the purchase of an Arduino Uno (or similar) development board to be handy. These are relatively inexpensive (typically $25 or less) and widely available (Parts Express, Digi-Key, Mouser, Spark Fun, AdaFruit, etc.). A USB cable is required for it. Finally, you may wish to obtain a desktop C compiler for your home system such as Pelles C (freeware). Unless otherwise specified, all lab exercises require a technical report due no later than one week after the exercise. The report should include the programming code and circuit schematic (where appropriate) along with a description of both and an analysis of the results. Late penalty is one letter grade for the first half week, two letter grades for the second half week. Reports are not accepted beyond two weeks and receive a grade of 0. Remember, plagiarism is grounds for failure.
1 |
We start the course by diving right in to the C programming language from the desktop. We begin examing variable types and basic input/output (I/O) methods for text.
|
2 |
We look at basic decision making.
|
3 |
We examine iteration and looping methods this week.
|
4 |
Our discussion of pointers and addresses commences. Mastery of this material is imperative. Around here we will have our first test.
|
5 |
This week we turn our attention from desktop programming to programming embedded targets. We discuss computer hardware architecture and introduce the Arduino system.
|
6 |
We look at the basic circuitry of GPIO (General Purpose Input/Output) ports, how to set their direction and how tio write to them.
|
7 |
Our week begins with a discussion of input ports (AKA PINs) and how to read them.
|
8 |
This week we spend time on a variety of other items of interest, including an introduction to obtaining analog input.
|
9 |
We extend the concept of port reading to include analog input circuitry.
|
10 |
We continue our exploration of analog input signals via a variety of different sensors and associated applications. Around here we will have our second test (end of this week or possibly the next).
|
11 |
We begin our discussion of creating analog output signals.
|
12 |
Timers are discussed this week.
|
13 |
We examine interrupts.
|
|
We wrap up the course. Time permitting, we have our last in-class test.
|