EE319K Introduction to Embedded Systems   EE319K will continue the bottom-up educational approach, started in BME303 and EE306. The overall educational objective is to allow students to discover how the computer interacts with its environment. It will provide hands-on experiences of how an embedded system could be used to solve EE problems. The focus will be understanding and analysis rather than design. The analog to digital converter (ADC) and digital to analog converter (DAC) are the chosen mechanism to bridge the CE and EE worlds. EE concepts include Ohms Law, LED voltage/current, resistance measurement, and stepper motor control. CE concepts include I/O device drivers, debugging, stacks, FIFO queues, local variables and interrupts.  You may use, edit, run or distribute these files as long as the copyright notices within the files remain. No specific warranty exists concerning the accuracy or reliability of these examples. I think they work, but history has shown, sometimes I can be wrong. 

Syllabus for EE319K Introduction to Microcontrollers

EE319K E-Book : Has reading material, interactive tools and instructor videos   UT.6.01x Embedded Systems - Shape The World 

Send comments to: Jonathan W. Valvano    Go to Lab Material      Lecture examples  Old Exams   Data sheets  Home Page  Pictures of TAs
Embedded Systems: Introduction to ARM Cortex-M Microcontrollers (Volume 1),   ISBN: 978-1477508992  Available from Amazon   Available from CreateSpace
To download all LM3S1968 software  ValvanoWare_1968.zip (For use with LM3S1968)
To download all TM4C123 software EE319K_ware.exe (EE319K Fall  2014, includes DLLs which will automatically install). This installer includes starter files for Labs 1-4. The starter files for Labs 5-10 will be delivered as part of the SVN repository.

Keil Debugger Issue: Keil real-board debugger used to work, now it quits immediately Window8KeilDebuggerFix.htm

Lectures (we are having trouble with the website, if you cannot see a file because of permissions, try clearing cookies), Fall 2014 lectures will be posted as we create them.
PowerPoint lectures written by Professors Ramesh Yerraballi, Andreas Gerstlauer, Bill Bard, Nina Telang, Vijay Janapa Reddi, and Jonathan Valvano

Lec1.ppt  


WS_01.doc

Introduction, microcontroller, binary, digital logic, Ohm's Law

TM4C123, Flowcharts, Design Cycle

TM4C123, embedded systems, Thumb-2

Lec2.ppt  


WS_02.doc  

 NOTGate-asm.zip

Rand100_4F120asm.zip

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  

 NOTGate-C.zip

Primes.zip

I/O Abstraction, software design, branches

Carry and overflow bits

 Lec5.ppt  

 

 WS_05.doc 

ParamPassingASM.zip

ParameterPassing_4F120.zip

FunctionalDebugging.zip

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 

PLL, Array access, Abstraction, finite state machines, linked structures, introduction to I/O synchronization

Lec8.ppt 
WS_08.doc
ModularProgramming.zip 

I/O synchronization, Thread synchronization, fundamentals of interrupts, Periodic interrupts with SysTick, DAC, sound generation. Modular programming in C

 Lec9.ppt 
WS_09.doc

LocalVariablesASM.zip  

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 
Lec13_UART.zip

2-D array, structures, Timer2A periodic interrupt, Kentec display, sounds

 

Project illustrating the use of struct

Lec14.ppt 

Floating Point (floating point will not be on the final exam)
Security (security will not be on the final exam)

Lec15.ppt 

Review

 


 

Starter files http://users.ece.utexas.edu/~valvano/arm/ 
 

Lab/homework materials (**to do ** or **old** means not done yet)

Link to download

Type

Description

EE319K_LabManualF14.pdf

EE319K_LabManualSp14.pdf

EE319K_LabManualF13.pdf

pdf

Fall 2014 Lab manual

Spring 2014 Lab manual 

Fall 2013 Lab manual

Lab 1 grading sheet     
Lab 2 grading sheet      
Lab 3 grading sheet     
Lab 4 grading sheet     
Lab 5 grading sheet      old
Lab 6 grading sheet       old
Lab 7 grading sheet     old
Lab 8 grading sheet    old

Lab 9 grading sheet   old
Lab 10 grading sheet   old(certification)

pdf

Grading sheets

 

 

 

 

 

 

 

 

If you are using PD0 or PD1 remove R9 and R10 from board

EE319Kkit.txt

text

List of components in the baggy each EE319K student receives

LabDemo  

SimpleProject_4C123asm.zip

InputOutput_4C123asm.zip

LaunchPadDLL.dll (new 9/2/2014)
Squarewaves_4C123asm.zip

pdf of instructions
Random Num
Switch in, LED output
 DLL to simulate Port F
Toggles two Port F pins

Details of the first and second EE319K lab demonstrations

EE319KLab1.dll

Lab 1 grader

Use this DLL to simulate Lab 1.  Put the DLL in your Keil\ARM\BIN folder.

EE319KLab2.dll

Lab 2 grader 
 

Use this DLL to simulate Lab 2. It configures the logic analyzer within the simulator. Put the DLL in your Keil\ARM\BIN folder.


EE319KLab3.dll
Lab 3 grader  Use this DLL to simulate Lab 3. It configures the logic analyzer within the simulator. Put the DLL in your Keil\ARM\BIN folder.

EE319KLab4.dll
Lab 4 grader  Use this DLL to simulate Lab 4. It configures the grader within the simulator. You must export the symbols DataBuffer, TimeBuffer, DataPt, and TimePt for the grader to work. Put the DLL in your Keil\ARM\BIN folder.
edXLab10.dll Lab 5 grader (similar to edX lab 10) Use this DLL to simulate Lab 5.The EE319K lab grades are determined by the TA during checkout and not really a function of the score provided by the autograder. Put the DLL in your Keil\ARM\BIN folder.
edXLab13.dll
Lab 6 grader (similar to edX lab 13) Use this DLL to simulate Lab 6.The EE319K lab grades are determined by the TA during checkout and not really a function of the score provided by the autograder. Put the DLL in your Keil\ARM\BIN folder.
Lab 7 will not have a grader
 Lab7C_EE319K.zip
Use this project to perform Lab 7. Low level graphics interface. The Nokia project is for Lab 7B. The Sitronix ST7735 will be used in Lab 7C.
Lab 8 will not have a grader
Slide pot data sheet
  Uses the ADC to measure distance. You may use either display. Copy your LCD.s and print.s files from Lab 7 into this project.
Lab 9 starter will be your Lab 8
Lab 9 will not have a grader
  Connected to microcontrollers such that data collected on one system are displayed on the other
Lab 10 will not have a grader
YouTube video of superfinals

Lab15_SpaceInvaders.zip (for the Nokia 5110)
Keil uVision project, BMP, JPG, WAV, XLSX, TXT, C Use this project to perform Lab 10. Hand-held, arcade-style game. Runs on LM4F120/TM4C123 with Kentec display. Sights and sounds to build the game. There are three potential games to choose from: Connect Four, Space Invaders, and Pipe Dream
Porting_Project.pdf pdf Directions on how to port one uVision project into another

EE319K_LM3S1968_Artist.sch
EE319K_TM4C123_artist.sch

PCB Artist Drawing file

This starter file has the LM3S1968  or the TM4C123/LM4F120 and all the external parts that we will be using in EE319K. You can get this free program at http://www.4pcb.com/ but be careful because downloading attempts to add junk (say no to all special offers like buzzdock, aspca, etc.)

Lab 10 video from Fall 2012

Lab10: WavConv.m (Matlab/Octave script to convert wav files into C declaration with 4-bit sound

YouTube video;

Matlab/Ocatve script

To learn more about Game Engine design look at Chapter 15 of the E-book

 

LM4F120/TM4C123 Reference material 
Keil uVision instructions for download and setup version 4.74 (do not install version 5)

How to install EE319K/EE445L/EE345M software on a Macintosh
CortexM_InstructionSet.pdf              Assembly instruction set

CortexM4_TRM_r0p1.pdf                 Technical Reference Manual Cortex M4,  Assembly instruction set
QuickReferenceCard.pdf                    ARM® and Thumb-2 Instruction Set Quick Reference Card

CreatingProject.pdf                              uVision4 instructions

tm4c123gh6pm.pdf                            Data sheet of microcontroller

tm4c123gh6pmErrata.pdf                Known bugs of microcontroller

TM4C123_LaunchPadUsersManual.pdf  Board information

lm4f120.s           lm4f120h5qr.h            Assembly/C files will all the port addresses for the microcontroller.

tm4c123gh6pm.s   tm4c123gh6pm.h    Assembly/C files will all the port addresses for the microcontroller.

 

LM3S1968 Reference material 
LM3S1968.pdf                                    Data sheet

LM3S1968errata.pdf                           Known bugs

LM3S1968kit.pdf                                Evaluation kit, circuit diagram
lm3s1968.s                                       This assembly file contain all the port addresses for the microcontroller.

SystemDesignGuidelines.pdf                 How to design embedded systems

LM3S1968pins.pdf                              Piece of paper between board and protoboard (print at 100%)

LM3S1968soldering.pdf                       How to solder pins on the kit

RiT_OLED_P1420_revision2.pdf         OLED data sheet

Ifyoumessuptheboard.pdf                      How to reflash chip


 

Homework assignments (one page printouts turned in to TA at the start of class)
HW0.doc   HW0.pdf    Definitions and numbers, Due 9/2

HW1.doc   HW1.pdf   Circuits, Simple Assembly, Due  Monday 9/15 (Note the date has changed)

HW2.doc   HW2.pdf   Assembly programming, Switch/LED interface, Due  Monday 9/22

HW3.doc   HW3.pdf   Introduction to C, Practice Exam 1, Due in class, the day before  Exam1, Wednesday 10/1.

HW4.doc   HW4.pdf   HW4_Exercise4_1.zip  HW4_Exercise4_2.zip  HW4_Assignment4_2.zip Arrays in C, Practice Exam 1, Due in class, Monday 10/13.

HW5.doc   HW5.pdf   HW5_Assignment5_2.zip Functions in C, Practice Exam 1, Due in class, Monday 10/20 (remember to unzip).

HW6.doc   HW6.pdf   Two easy practice Exam2s, due in class, Monday 10/28

HW8.doc   HW8.pdf   Two harder practice Exam2s: Mode and BCD, due  Thursday 4/3 at the time of the exam

HW9.doc   HW9.pdf    Zyante functions and pointers, due Monday/Tuesday 4/14-15

HW10.doc HW10.pdf  Zyante structs and E-Book Game Desgin  due Wednesday/Thursday 4/23-24

HW-Extra.doc   HW-Extra.pdf    This is an optional homework that can be used to replace any missed homeworj and is due Monday/Tuesday 4/21-22


 

Old Exams  (old 9S12 exams)
Quiz1ASp11FunSize.pdf  old Valvano exam converted to TM4C123 (I don't have solution to this one)
Quiz1ASp12FunSize.pdf  old Valvano exam converted to TM4C123 (I don't have solution to this one)
Quiz1AF12.pdf   Quiz1AF12sol.pdf This is a Valvano exam, Fall 2012

Exam1Practice1.pdf  Exam1Practice1Sol.pdf This is a Yerraballi exam to be presented Monday 9/29/2014 7:30pm by TAs

Exam1Practice2.pdf  (I don't have solution to this one) This is a Yerraballi exam to be presented Tuesday 9/30/2014 7:00pm 

Exam1Practice3.pdf  Exam1Practice3Sol.pdf This is a Gerstlauer exam  

Exam1F13A.pdf  Exam1F13Asol.pdf   Exam1F13B.pdf  Exam1F13Bsol.pdf    Fall 2013 exams

Exam1Sp14.pdf      Spring 2014  (I don't have solution to this one)

Exam1F14sol.pdf Solutions to Fall 2014 exam 1


Exam2 - C Versions

CExam2_StringCompare.zip Easy practice Exam 2 involving ASCII strings

CExam2_Merge.zip  Medium difficulty  practice Exam 2 involving ASCII strings

CExam2C_CalculusSpring2013.zip  Medium difficulty  practice Exam 2 involving Math

CExam2C_PermuteCombine.zip  Medium difficulty  practice Exam 2 involving Math

CExam2_Moore.zip  Very difficult  practice Exam 2 involving Moore FSM, some C some assembly


Exam2_Sum.zip   Easy practice Exam2 involving strings and addition

Exam2_Quad.zip   Easy practice Exam2 involving arrays and multiplication

Exam2_Mode.zip Hard practice Exam 2 involving strings and pointers (60 min)

Exam2_Moore.zip Hard practice Exam 2 involving Port initialization and a Moore FSM (60 min)

StringCompare.zip Easy practice Exam 2 involving ASCII strings

Exam2_Merge.zip  Hard practice Exam 2 involving ASCII strings

Exam2_Sum32.zip  Easy practice Exam 2 involving 32-bit numbers and overflow (35min)

Exam2C_CalculusSpring2013.zip  Practice Exam shown in class Monday and Tuesday

Exam2thoughts.pdf Study guide for Exam 2 

Finals

FinalSp12_1968.pdf  Final exam from Spring 2012 converted to LM3S1968

FinalF12a.pdf   FinalF12aSol.pdf Final exam Fall 2012

FinalSp13a.pdf   FinalSp13aSol.pdf   FinalS13.pdf  S13Final.pdf   Final exam Spring 2013

FinalF13.pdf   FinalF13Sol.pdf   Final exam Fall 2013

ReferenceMaterialForFinalF13.pdf Reference material for Fall 2013 final , Wed, Dec 11, 7-10pm, location: JGB 2.324


Major changes for Fall 2014 EE319K
  Lab 5 will be written in C

  Exam 2 will be in C
  The LCD will be Nokia5110

  The autograding engine can be run, but the scores are not used for your grade

Major changes for spring 2014 EE319K
Code repository, such as SVN, starting with Lab 4

  Implement both receiver and transmitter in Lab 9

  More labs will have an autograding engine, put custom DLLs in the Keil\ARM\BIN folder

 

Last updated October 23, 2014 Send comments to: Jonathan W. Valvano .