Skip to content
All courses
EMB 310
Term 6
4 credits

Advanced Microcontroller Architecture

EMB 310 provides students with an in-depth understanding of advanced microcontroller architectures beyond the basics covered in introductory courses. The primary focus is on ARM Cortex-M processors, exploring their core features, instruction sets, memory models, and advanced debugging capabilities. Students will learn to analyze and implement complex peripheral interactions, including high-speed communication protocols, analog-to-digital conversion strategies, and advanced timer functionalities crucial for real-time applications. The course emphasizes practical application through extensive hands-on labs, where students will program and debug embedded systems using professional development environments. Topics include interrupt handling optimization, direct memory access (DMA) configurations, power management techniques, and an introduction to real-time operating systems (RTOS) concepts and their integration. By the end of this course, students will be proficient in designing, implementing, and optimizing firmware for high-performance, resource-constrained embedded systems, preparing them for specialized roles in embedded software development.

Prerequisites

Course outline

Lectures, virtual labs, and graded assignments — completed in your browser.

01ARM Cortex-M Core Architecture and Advanced Instruction Setlecture
02Configuring and Optimizing GPIO and Basic Peripheralslab
03Advanced Interrupt Handling and NVIC Configurationlecture
04DMA-Driven Data Transfer between Peripheralsassignment
05Advanced Timer Modes: PWM, Input Capture, Output Comparelecture
06Implementing Advanced Timer Functions for Motor Controllab
07High-Speed Serial Communication Protocols Deep Divelecture
08RTOS Task Creation and Inter-Task Communicationassignment
09Memory Protection Unit (MPU) and Security Featureslecture
10Integrating a Simple RTOS for Multi-taskinglab
11Power Management and Low-Power Design Techniqueslecture
12Advanced Debugging and Trace Capabilitieslecture
13Comprehensive Midterm Reviewlecture
14Final Reviewlecture

Syllabus

### Course Outcomes
Upon successful completion of this course, students will be able to:
1. Analyze the architecture and instruction set of advanced ARM Cortex-M microcontrollers.
2. Design and implement firmware utilizing complex peripheral interfaces (e.g., advanced timers, high-speed ADCs, serial protocols).
3. Apply advanced memory management techniques, including DMA and memory-mapped I/O, to optimize system performance.
4. Integrate and configure basic Real-Time Operating System (RTOS) concepts for concurrent task execution.
5. Troubleshoot and debug embedded systems effectively using advanced debugging tools and methodologies.
6. Evaluate and implement power management strategies for embedded applications.

### Weekly Topic List
* Week 1: ARM Cortex-M Architecture Review and Advanced Instruction Set
* Week 2: Memory Model, Caching, and Bus Architectures
* Week 3: Advanced Interrupt Management and Nested Vector Interrupt Controller (NVIC)
* Week 4: Direct Memory Access (DMA) Controllers and Use Cases
* Week 5: Advanced Timer Architectures (PWM, Input Capture, Output Compare)
* Week 6: Analog-to-Digital Conversion (ADC) and Digital-to-Analog Conversion (DAC) Techniques
* Week 7: High-Speed Serial Communication (SPI, I2C, UART, USB On-The-Go)
* Week 8: Introduction to Real-Time Operating Systems (RTOS) Concepts
* Week 9: RTOS Task Management, Scheduling, and Inter-Task Communication
* Week 10: Memory Protection Unit (MPU) and Security Features
* Week 11: Power Management and Low-Power Design Techniques
* Week 12: Advanced Debugging and Trace Capabilities (SWD, JTAG, ITM)
* Week 13: Comprehensive Midterm Review
* Week 14: Final Review

### Grading Policy
* Knowledge Checks: 15%
* Assignments/Labs: 30%
* Quizzes: 25%
* Final Exam: 30%

### Required Materials
* Textbook: *The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors* by Joseph Yiu (latest edition)
* Development Board: ARM Cortex-M4 based microcontroller development kit (e.g., STMicroelectronics STM32F4 Discovery Board or similar)
* Software: Keil MDK-ARM uVision IDE (or equivalent professional IDE), ARM GNU Toolchain, J-Link/ST-Link debugging probe