ECE 36200 - Microprocessor Systems and Interfacing


Nature of Design Experience: Through the completion of homework exercises, laboratory experiments, and an Embedded System Design Mini-Project, students will learn how to design, implement, and test a microcontroller-based embedded system.

Course Details

Lecture Hours: 3 Lab Hours: 3 Credits: 4

Counts as:

  • EE Advanced Selective
  • EE Elective - Adv Level Lab
  • CMPE Core

Normally Offered:

Each Fall, Spring


On-campus only


ECE 26400 and ECE 27000 (Minimum Grade of C) and (CS 15900 or ENGR 11700)

Requisites by Topic:

Prerequisites: High level language programming fundamentals, digital systems design fundamentals, familiarity with hardware description languages (e.g., ABEL) and programmable logic devices (PDSs).

Catalog Description:

An introduction to computer instruction sets, assembly language programming, organization, and interfacing.

Required Text(s):

  1. Computer Organization and Design RISC-V Edition: The Hardware Software Interface , 2nd Edition , David Patterson and John Hennessey , Morgan Kaufmann Publishers , 2020 , ISBN No. 9780128245583

Recommended Text(s):

  1. Computer Organization and Design, ARM edition , 1st Edition , David Patterson and John Hennessey , Morgan Kaufmann Publishers , 2016 , ISBN No. 978-0128017333
  2. Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C , 3rd Edition , Yifeng Zhu , E-Man Press LLC , 2017 , ISBN No. 978-0-98226926-6-0

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an ability to program a computer using assembly language. [1,2]
  2. an ability to use a computer to interface with other devices . [1,2,6]
  3. an ability to understand and simulate the functionality of a single-cycle processor. [1,2]
  4. an understanding of basic computer arithmetic algorithms . [1,2]

Lecture Outline:

Week Lecture Topics
1 Overview of a computer program to device technologies. Notion of performance, power wall. Similarities + differences between embedded and high-perf.
2 Operations + operand + addressing modes, endianness. Signed versus unsigned. Instruction representation Logical and arithmetic operations.
3 Control flow Procedure calls, recursion, stack operation. ASCII/binary representations. Pointers/Arrays
4 Practical programming examples, C-to-assembly transformations for complex programs. Contrasting LEGv8 and cortex-M0
6 Timers/PWM
7 C + DMA
9 Serial Communication Interfaces
10 Logic Design + data path construction. ISA to hardware
11 Control Logic + full single cycle
12 Add, subtract, multiply hardware
13 Division + floating point hardware
14 Sub word parallelism, SIMD extensions + matrix multiply example

Lab Outline:

Week(s) Lab Experiments
0 Micro setup
1 instruction decoder
2 assembly language - basic
3 assembly language - advanced
5 Interrupts
6 Timers
8 Final interfacing lab; combine interfaces (DAC+UART)
9 No lab - simulator introduction tutorial
10 start simulator (no eval) - design components, hook in decoder
11 Simulator part 2 - full data path
12 Simulator part 3 - Full single-cycle simulator

Engineering Design Content:

  • Synthesis
  • Analysis
  • Construction
  • Testing

Engineering Design Consideration(s):

  • Economic
  • Ethical
  • Health/Safety

Assessment Method:

Outcome 1 will be assessed based on scores received for the lab practical programming problems, for which a score of at least 60% on either of the two practical exams will be required or a score of at least 60% on each lab experiment to demonstrate basic competency. For Outcomes 2 and 3, basic competency will be assessed based on lab practical concept exams during your scheduled lab period, for which a score of at least 60% will be required to demonstrate basic competency. Outcome 4 will be assessed based on the Embedded System Design Mini-Project completed, for which a score of at least 60% will be required to demonstrate basic competency.