Back to Course List

EECS 373: Design of Microprocessor-Based Systems

Instructor: Professor Robert Dick, Professor Ron Dreslinski

This class is focused on the principles and practices of modern embedded systems design. In class, we will focus on computer architecture beyond the CPU, fundamentals of the hardware/software interface, techniques for sensing and controlling the physical world, and a few other topics. In lab, we will focus on the ARM Cortex-M3, Actel FPGAs, and other supporting hardware, to learn how to design, build, and program embedded systems. Labs during the first half of the course will focus on essential topics. The second half of the course will focus on the design and implementation of non-trivial, open-ended project involving both hardware and software. The labs and project will require a substantial amount of time - this is a lab-intensive class with a heavy workload.

Lab 1: FPGA + Hardware Tools
Lab 2: MCU + Software Tools
Lab 3: Memory and Memory-Mapped I/O
Lab 4: Interrupts
Lab 5: Timers and Counters
Lab 6: Serial Bus Interfacing
Lab 7: Data Converters
Lab 8: Wireless Communications

No textbook is required.

1. Introduction to Embedded
2. ARM Instructure Set Architecture
3. Assembly, C, and GNU Toolchains
4. Memory and I/O Architecture
5. Memory-Mapped Peripherals
6. Interrupts
7. Timers, Counters, Compares, and Captures
8. Memory Technologies (SRAM, DRAM, Flash)
9. Serial Communications (UART, SPI, I2C)
10. Data converters (ADC, DAC)
11. Wireless Communications
12. Circuit Board Design and Fabrication
13. Special Topics (varies)