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 ImplementationChapters 1, 2, 3, 4
Lab 2. For-loops, while-loopsChapters 3 and 4
Lab 3. Switch and LED InterfaceChapters 2 and 4
Lab 4. Functional DebuggingChapter 6
Lab 5. Traffic Light ControllerChapters 6 and 8
Lab 6. Digital PianoChapters 9 and 10
Lab 7. LCD Device DriverChapter 7
Lab 8. Measurement of DistanceChapters 8, 9 and 10
Lab 9. Measurement of DistanceChapter 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 outputChapters 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 interruptsChapters 3, 4, and 5
Lab 4. Wifi, IoT, LCDChapter 11
Lab 5. 12-bit DAC, SPI, Music player, audio ampChapters 6, 7, and 8
Lab 6. Introduction to PCB LayoutChapter 9
Lab 7. Design and Layout of an Embedded SystemChapters 1-11
Lab 8. Software drivers for an Embedded SystemChapters 1-11
Lab 9. Temperature measurement, ADC, LCDChapter 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 ConceptsChapters 1
3. ElectronicsChapters 1, 2
4. Digital LogicChapters 1, 2
5. Introduction to CChapters 1, 2, 5
6. Microcontroller PortsChapters 3 and 4
7. Design and DevelopmentChapters 2 and 5
8. Switch and LED Interface Chapters 2 and 4
9. Functional DebuggingChapter 6
10. Finite State MachinesChapters 6 and 8
11. UART Serial InterfaceChapters 7 and 8
12. InterruptsChapters 8 and 9
13. DAC and SoundChapters 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