ECE 36200 - Microprocessor Systems and Interfacing
Note:
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 Adv Level Lab
- CMPE Core
Normally Offered:
Each Fall, Spring
Campus/Online:
On-campus only
Requisites:
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):
- 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):
- Computer Organization and Design, ARM edition , 1st Edition , David Patterson and John Hennessey , Morgan Kaufmann Publishers , 2016 , ISBN No. 978-0128017333
- 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
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 |
| 5 | GPIO |
| 6 | Timers/PWM |
| 7 | C + DMA |
| 8 | DAC/ADC |
| 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 |
| 4 | GPIO |
| 5 | Interrupts |
| 6 | Timers |
| 7 | DMA |
| 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 |
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.