Learning Materials
This page contains links to materials that can be used to teach an introductory class on embedded systems. These materials include lecture slides, and lab manual. PowerPoint lectures written by Professors Ramesh Yerraballi, Andreas Gerstlauer, Bill Bard, Nina Telang, Vijay Janapa Reddi, and Jonathan Valvano. For Volume 1, there are 14 lectures, corresponding to approximately one PowerPoint file per week. For each of the lectures there is a corresponding worksheet that can be used as a follow up to gauge students' understanding of that week's lecture. The worksheets contain a list of questions each student should be able to answer after that lecture.
Introduction to Robotics - Lecture slides, see TI Robot Systems Learning kit
Volume 1 - Lecture slides Download PowerPoint files
Lec1.ppt WS_01.doc |
Introduction, microcontroller, binary, digital logic, Ohm's Law MSP432, Flowcharts, Design Cycle embedded systems, Thumb-2 |
Lec2.ppt WS_02.doc |
Data flow graphs, call graphs, numbers Debugging, design of a microcontroller-based NOT gate Fixed-point, condition codes, errors, dropout, overflow, truncation, roundoff |
Lec3.ppt WS_03.doc |
Assembly syntax Functions, logic operations Parallel I/O Switches and LED interfaces |
Lec4.ppt WS_04.doc |
I/O Abstraction, software design, branches Carry and overflow bits |
Lec5.ppt WS_05.doc |
Functions, ARM Architecture Procedure Call Standard (AAPCS), parameter passing, call by value, call by reference, arrays,
indexing, functional debugging.
Code for parameter passing examples from the slides, book and more.
Parameter passing example (in C).
Functional debugging code from slides |
Lec6.ppt WS_06.doc |
SysTick, and review for Exam1 |
Lec7.ppt WS_07.doc |
Clock system, Array access, Abstraction, finite state machines, linked structures, introduction to I/O synchronization |
Lec8.ppt WS_08.doc |
I/O synchronization, Thread synchronization, fundamentals of interrupts, Periodic interrupts with SysTick, DAC, sound
generation. Modular programming in C |
Lec9.ppt WS_09.doc |
Local variables, LCD interface, blind cycle, fixed-point |
Lec10.ppt WS_10.doc |
ADC fundamentals, Nyquist Theorem ADC Programming |
Lec11.ppt WS_11.doc |
Fixed-point, Data acquisition system, Lab 8 |
Lec12.ppt WS_12.doc |
FIFO Queues UART |
Lec13.ppt WS_13.doc |
2-D array, structures, Timer0A periodic interrupt, LCD display, sounds Project illustrating the use of struct |
Lec14.ppt |
Floating Point |
Volume 2 - Lecture slides Download PowerPoint files
Volume 3 - See the MOOC on edx Real-Time Bluetooth Networks - Shape the World
Volume 1 - Lab Manual Download doc file
This lab manual is similar to the one we use here at the University of Texas to teach our introduction to embedded systems lab. Students are graded by designing, testing, and then showing their system to a teaching assistant or instructor. The first five labs are in assembly, and the last five labs are in C. Feel free to use this lab manual for educational purposes. You can download, edit, and repost as long as you leave the reference to the professors who generated the material and the link to the MSP432 book.
Lab 1. Digital Logic Implementation | Chapters 1, 2, 3, 4 |
Lab 2. For-loops, while-loops | Chapters 3 and 4 |
Lab 3. Switch and LED Interface | Chapters 2 and 4 |
Lab 4. Functional Debugging | Chapter 6 |
Lab 5. Traffic Light Controller | Chapters 6 and 8 |
Lab 6. Digital Piano | Chapters 9 and 10 |
Lab 7. LCD Device Driver | Chapter 7 |
Lab 8. Measurement of Distance | Chapters 8, 9 and 10 |
Lab 9. Measurement of Distance | Chapter 11 |
Lab 10. Systems-Level Approach to Embedded Systems | Chapters 1 - 11 |
Volume 2 - Lab Manual Download docx file
This lab manual is similar to the one we use here at the University of Texas to teach our advanced embedded systems lab. Students are graded by designing, testing, and then showing their system to a teaching assistant or instructor. Labs 1, 2, 3, 4, 5, 9, and 10 constitute component level microcontroller interfacing. Labs 6, 7, 8, and 11 comprise a systems level design of an embedded system. The labs were ordered in this way to allow two weeks after Lab 8 and before Lab 11 to have the PCBs to be manufactured. Feel free to use this lab manual for educational purposes. You can download, edit, and repost as long as you leave the reference to the professors who generated the material and the link to the MSP432 book.
Lab 1. ASCII to fixed-point output | Chapters 1, 2, 3 |
Lab 2. Debugging, oscilloscope fundamentals, logic analyzer, dump profile | Chapters 3, 5, 6, and 8 |
Lab 3. Alarm clock, LCD, edge-triggered interrupt, and timer interrupts | Chapters 3, 4, and 5 |
Lab 4. Wifi, IoT, LCD | Chapter 11 |
Lab 5. 12-bit DAC, SPI, Music player, audio amp | Chapters 6, 7, and 8 |
Lab 6. Introduction to PCB Layout | Chapter 9 |
Lab 7. Design and Layout of an Embedded System | Chapters 1-11 |
Lab 8. Software drivers for an Embedded System | Chapters 1-11 |
Lab 9. Temperature measurement, ADC, LCD | Chapter 10 |
Lab 10. DC Motor controller | Chapters 5, 6, and 7 |
Lab 11. Final Design and Evaluation of Embedded System | Chapters 1 - 11 |
Teaching Videos for the TM4C123
Professors Yerraballi and Valvano produced about 170 YouTube videos for the edX UT.6.02x online class. The videos are grouped into 15 YouTube playlists that correspond in number with the MOOC labs. The following is a list of links to the YouTube playlists:
1. Introduction to Class | |
2. Fundamental Concepts | Chapters 1 |
3. Electronics | Chapters 1, 2 |
4. Digital Logic | Chapters 1, 2 |
5. Introduction to C | Chapters 1, 2, 5 |
6. Microcontroller Ports | Chapters 3 and 4 |
7. Design and Development | Chapters 2 and 5 |
8. Switch and LED Interface | Chapters 2 and 4 |
9. Functional Debugging | Chapter 6 |
10. Finite State Machines | Chapters 6 and 8 |
11. UART Serial Interface | Chapters 7 and 8 |
12. Interrupts | Chapters 8 and 9 |
13. DAC and Sound | Chapters 9 and 10 |
14. ADC and Data Acquisition | Chapters 8, 9 and 10 |
15. Systems-Level Design | Chapters 1 - 11 |
Interactive web pages for the TM4C123
As part of the edX online class, we made some interactive web pages to illustrate fundamental concepts
2. Fundamental Concepts | Number conversions |
5. Introduction to C | Flowcharts, C vs assembly |
6. Microcontroller Ports | Input/output, direction register |
7. Design and Development | Successive refinement, if-then, loops |
11. UART Serial Interface | Blind, busy-wait, interrupt, serial port |
12. Interrupts | Mail box, context switch |
13. DAC and Sound | Sampling rate, precision, how a DAC works |
14. ADC and Data Acquisition | How an ADC works, Nyquist Theorem |