EE342. Microcontroller Based System Design
Microprocessor architecture, the microcontroller based system design context, and peripheral interfacing. C and machine language programming and debugging, and embedded applications. Associated laboratory exercises include topics such as stand-alone system programming, interfacing to peripherals, interrupts, timers, analog data acquisition, and intercomputer communications. Two hours of lecture and one two-hour lab per week.
Prerequisites: EE-241, and either EE-247 or CS-126 as corequisites.
This has long been one of my favorite courses. Over the course of the semester we do both hardware and software for an embedded application to, ultimately, do distributed control of an HO toy train layout. This involves programming the microcontroller (in C), building interface hardware, programming the Windows PC (using C++) for the application with which a user controls part of the train layout, and the communications (using USB) between the microcontroller and the PC. All of those things need to work together, and live cooperatively with the systems of the other students. It's an interesting challenge.
The current offering of this course is Spring 2017 (since I was on sabbatical during Fall 2016). It is normally offered in the fall of even numbered years.
This course is normally offered in the fall semester, and is normally taken by EE students with a particular interest in computers, or occasionally CS students. Background in digital design is necessary, and some experience with programming equivalent to an introductory programming course is needed, with either a follow up course taken or in progress (nominally EE247 or CS126). In this course we will be programming in C (for the embedded microcontroller) and C++ (on the Windows PC) although the depth we get into with C++ is pretty shallow. We are not really mastering C++ Windows programming, but doing just enough to have some perspective on it.