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.
The DEMOJM prototyping boards and the Coldfire family of processors have been discontinued by NXP (Formerly Freescale). So, we will neeed to shift to another microcontroller later in the course in order to do USB and have sufficient memory for doing interesting things. Meanwhile, we are continuing to use the S08SH8 processor and demo board that was used for EE247 Programming for Embedded Systems. That processor is very limited, but it affords the studenty an opportunity to get very close to the hardware. Much of what we are doing will make use of the serial port and the "terminal" program. Below are the syllabus (with projects) and some useful documents. This material will be supplemented by information on the USB microcontroller when that has been selected.
The course in the past made use of the Freescale/NXP "Coldfire" JM128 processor, which is now no longer available. Still, some of the materials below will continue to be useful, especially those concerned with programming on the Windows PC side of the interface.
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.