Microprocessor Systems II & Embedded Systems

EECE.4520/5520 Microprocessors II and Embedded System Design

Credits: 3

Contact Hours: 3 hours of lecture

Instructor: Seung Woo Son


  • Required: Reese, Bruce, Jones, “Microcontrollers – From Assembly Language to C Using the PIC24 Family”, Course Technology/Cengage Learning, 2009.
  • Optional: Stephen G. Kochan, “Programming in C”, 4th Ed, Addison-Wesley, 2015.

Other supplemental materials: All supplemental materials can be found on the UMass Lowell Blackboard portal (https://www.uml.edu/blackboard/). These materials include lecture slides, handouts, recordings, assignments, quizzes, and other documentation.

Course Catalog Description:

This three-credit course provides a continuation of the study of microprocessors begun in EECE.3170 (Microprocessors Systems Designs I). Topics include CPU architecture, memory interfaces and management, coprocessor interfaces, bus concepts, bus arbitration techniques, serial I/O devices, DMA and interrupt-controlled devices. Focus will be placed on the design, construction, and testing of dedicated microprocessor systems (static and real-time). Hardware limitations of the single-chip system will be investigated along with microcontrollers, programming for small systems, interfacing, and communications, validating hardware and software, microprogramming of controller chips, and design methods and testing of embedded systems. Laboratories are directly related to microprocessor functions and embedded system designs.

Prerequisites: EECE.3110 (Electronics I Laboratory), EECE.3170 (Microprocessors I), EECE.3650 (Electronics I)

Grading: Lab assignments (30%), 2 Exams (20% each), Course project (30%)

Required or elective? This course is required for Computer Engineering majors while Electrical Engineers may use it as a technical elective.

Course Outcomes:

By the end of this course, students will understand and be able to use all of the following:

  1. Gain an understanding of embedded systems design
  2. Become capable of evaluating and implementing memory system organization
  3. Decoding and timing
  4. Understand different communication protocols and interfaces
  5. Become capable of implementing different memory system architectures
  6. Understand the interaction of hardware and software in embedded systems
  7. Understand emerging embedded system design technologies
  8. Develop and understand embedded software for different processor architectures

Course Topics

  • Introduction to embedded system design; lab tutorial; PIC microcontroller and IDE
  • ADC, Data Acquisition and Control
  • PIC24 pin out; C programming
  • Interrupts, timers, interrupted-driven IO
  • Asynchronous or synchronous IO (UART, I2C, SPI)
  • Pulse width modulation and DC motor control
  • Advanced topics


Note that below is a tentative schedule based on 14 meetings.

Week Topic Readings Assignment Note
1 Syllabus; Introduction to embedded system design; lab tutorial; PIC uC and IDE Chapter 2, 3
2 ADC (Analog to Digital Conversion), Data Acquisition and Control Chapter 11 Lab 1 out
3 PIC24 pin layout; C programming; Watchdog timers, GPIO, LED/switch IO Chapter 8
4 Lab session Lab 1 due; Lab 2 out
5 Interrupts, timers, interrupt-driven IO Chapter 9
6 Lab session Lab 2 due; Lab 3 out
7 Exam #1 Project proposal due
8 Async or sync IO (UART, I2C, SPI) Chapter 10 Lab 4 out
9 Lab session Lab 3 due
10 PWM and DC motor control Chapter 12 Project progress update due
11 Lab session Lab 4 due
12 Exam #2
13 Advanced topics; Catch-up course project Chapter 13
14 Course project presentation and demo Project report due