EE319K Introduction to Embedded Systems
Course Catalog Description Embedded systems; machine language execution;
assembly and C language programming; local variables and subroutines;
input/output synchronization; analog to digital conversion and digital to
analog conversion; debugging; and interrupts.
Overview
Class: ACA 1.104, Monday, Wednesday, Friday 2-2:50pm
Office Hours (subject to change): Monday 11-12noon, Tuesday 11-12noon,
Friday 1-2pm
Instructor: Jonathan W. Valvano, ENS627, 471-5141
16145 T 12
16150 Th 12
16155 T 1
16160 Th 1
Andreas Gerstlauer Lecture TTh 12:30 ACA1.104
16165 W 3
16170 T 4
16175 W 4
16180 T 5
Jonathan Valvano Lecture MWF 2 ACA1.104
16205 Th 1
16210 Th 2
16215 Th 3
16220 Th 4
Ramesh Yerraballi Lecture TTh 3:30 CPE2.208
16225 W 2
16230 W 3
16235 W 4
16240 W 5
Text: Embedded
Systems: Introduction to ARM Cortex-M Microcontrollers,
ISBN: 978-1477508992 Available from Amazon.
Equipment to buy: Every group of two students will be
required to have a Texas Instruments LM3S1968 kit by the start of your lab
period on Thursday 2/7. Since this is a new kit with a lot of features
that can be used after EE319K is over. Starting Fall 2013 EE319K and EE445L
will be transitioning to a newer EK-LM4F120XL LaunchPad kit. If you can afford
it, we suggest each student purchase one kit at the start of the semester. The
first possibility is to buy or borrow a LM3S1968 kit from a previous
EE319K/EE445L student. If you obtain a kit from a previous student, you will
need the LM3S1968 board, USB cable, two male headers (soldered onto the board)
and a solderless breadboard. If you do buy a board/borrow from another student,
I recommend you let the TA test it to make sure the board is functional. The
second possibility is to purchase a new Texas Instruments LM3S1968 kit, which
includes a board, USB cable, two male headers (not soldered on) and solderless
breadboard. The Mouser part number is 595-EDU-VALVANO-K. The student cost will
be $60.00 per kit plus about $5 tax and is available from edu.mouser.com. You will have
to log in using a University of Texas email (details on Blackboard). Every
student should own their own volt
Sparsh Singhai
Saugata Bhattacharyya
Chinmaya Dattathri
Emily Ledbetter
Kevin Gilbert
Siavash Zangeneh Kamali
Yen-Kai Huang
Michael Xing
Nathan Quang Minh Thai
Katherine Olin
Mitchell Crooks
Prachi Gupta
Mark Meserve
Outcomes: After the successful conclusion of EE319K students should be able to understand the basic components of a computer, write assembly and C language programs that perform I/O functions and implement simple data structures, manipulate numbers in multiple formats, and understand how software uses global memory to store permanent information and the stack to store temporary information.
Lab lectures These
are optional sessions given by the TAs to help answer lab questions.
Fridays ENS127
3-4pm (covering the lab due the following week)
Mondays ENS127
6:30-7:30pm (covering the lab due the same week)
Mondays ENS127
7:30-8:30pm (covering the lab due the same week)
Tuesdays ENS306 6:30-7:30pm (covering the lab due the same week)
I strongly encourage students to take an active role in this class.
Questions are welcome before, during and after class. Please feel free to
email, visit or call me if you have questions.
Things you should
recall from EE306/BME303
1. Bits
Numbers - Unsigned and Signed Integer representation in 2’s
Complement
True/False - Logical Operations
Characters - ASCII representation
2. Gates
AND, NAND, OR, NOR, NOT, XOR
DeMorgan’s Laws
3. Computer Components
Central Processing Unit: Arithmetic Logic Unit, Control
Unit, Registers
Memory – ROM and RAM
Address Space and Addressability
I/O
4. LC3 Assembly Language
Instruction Set (ISA)
Pseudo-ops
Op-codes and Operands
Memory operations
Arithmetic and Logic operations
Control operations – Branches/Jumps
Addressing Modes
5. Programming
Algorithms
Flow-Charts
Data Types
Arrays
Interrupts
1) The understanding of embedded systems (a system with the computer hidden
inside)
2) Assembly language and C programming
3) Understanding how the computer executes instructions (fetch opcode, fetch
operand, read data, operate, and write data)
4) The use of a microcontroller (strategic use of RAM ROM and I/O) Microcontrollers
typically have a little RAM and a lot of ROM. Globals, locals and the heap go
in RAM. Constants and programs go in ROM.
5) Debugging and verification using a simulator and on the microcontroller
(embedded systems typically do not have a print function)
6) How input/output actually happens (the students wire up analog and digital
signals to the LM3S1968 and measure them with a voltmeter)
7) The implementation of an I/O driver (a set of programs that perform
input/output)
8) Understanding, from an architecture standpoint, how local variables and parameters
work (e.g., a space on the stack is dynamically created, the local variable is
accessed using stack-pointer relative addressing, then the space is
deallocated.)
9) Analog to digital conversion (ADC) e.g., the students interface a slide
potentiometer to the ADC, and write software that measures the position of the
slide, creating a display like “1.23 cm”
10) Interrupt synchronization, real-time ADC sampling (periodic timer
interrupts),
11) Digital to analog conversion (DAC), used to make simple sounds
12) Design and implementation of
Grading: 30% Laboratory assignments, due on Thursday (performed in groups
of 2, one solution turned in)
15% In class Exam 1, Friday, February 22, 2-2:50pm, ACA1.104, in regular classroom
HW0 through HW5
Lec1 through Lec4, and Lec5 through slide 11 (no arrays)
Worksheets WS_01 to WS_04, and
Worksheet WS_05 questions 1 to 5 (no arrays)
Labs 1, 2, and 3
20% In lab Exam
There will be suggested programming problems to solve, then 3 or 4 times per
semester there will be a 10-minute in class quiz, where the problems will be
selected from the suggested programming problems. The date of each quiz will be
announced in class around 1 week in advance. The specific dates for these
quizzes will not be posted in the syllabus or on blackboard. Cutoff scores for
the corresponding letter grades will not be determined until after the final
exam.
Attendance: Students are expected to attend lectures. The book covers
more information than the class, and we will use lectures to map our way
through the book. If you miss class you may find it difficult to catch up.
Spring
1/14 |
|
None, do not go to lab |
1/21 |
|
Go
to |
1/28 |
Lab 1 |
Digital I/O, parallel port, direction register and logical function, written in assembly (simulated, groups of two) |
2/4 |
|
Real board demonstration, bring your board to lab, |
2/11 |
Lab 2 |
For-loops, while-loops, if-then branching, subroutines, and time delays, written in assembly (simulated and board, groups of two) Sometime after Lab 2 and before Lab 3 arrange to have your TA solder the 66 pins onto the board. |
2/18 |
Lab 3 |
LED and switch interface |
2/25 |
Lab 4 |
Debugging
Techniques, one switch, one LED |
3/5 |
Lab 5 |
Traffic Light Controller, written in assembly (simulated and board, groups of two) |
3/18 |
Lab 6 |
LCD device driver, decimal fixed-point output, local
variables |
3/25 |
|
Exam 2 (closed book), room TBA, 7-9pm March 28 |
4/1 |
Lab 7 |
Digital Piano using a 4-bit DAC, C (simulated and board, groups of two) |
4/8 |
Lab 8 |
Real-time Position Monitor, ADC, interrupts, LCD, mixture of assembly and C (simulated and board, groups of two) |
4/15 |
Lab 9 |
Distributed DAS, serial port interrupts, FIFO queue, mixture of assembly and C (simulated and board, groups of four) |
4/22 |
|
|
4/29 |
Lab 10 |
Design competition, written in C (simulated and board, groups of two) |
The
following schedule is preliminary; please check the web for the most recent
version.
Date |
Lecture |
Book |
Lecture Schedule |
Week 1 1/14 to |
Lec1 |
Chapter 1, Chapter 2 |
Introduction Course
administration; Embedded systems, development cycle; Flow charts, data flow
and call graph uVision
- simulator; digital logic; sOhm’s Law |
Week 2 no class 1/21 |
Lec2 |
Chapter 2 and 3, Sections 4.1.2, 4.2(Patt, Chapters 11 and 12) |
Architecture– Arm Cortex-M3 architecture and execution; Simple
addressing modes; Memory allocation; C Programming (C Primer) - Introduction
to C; Structure of a C program I/O, Execution, stack, subroutines - Parallel ports, direction
registers; Logical and shift operations; C Programming – Assignment and
Boolean Expressions. |
Week 3 1/28 to
2/1 |
Lec3 |
Chapters 2 and 3, Section 4.6 |
Debugging - Debugging Keil uVision, Switch input and
LED output Arithmetic - Arithmetic operations; Condition code bits; C
Programming – Functions |
Week 4 |
Lec4 |
Chapters 4 and 5 |
Board- Demo of the board); Modular programming - If-then, loops; C Programming – Loops |
Week 5 2/11
to 2/15 |
Lec5 |
Sections 6.1-6.3, 4.4, (Patt, Chapters 14, 16) |
Subroutines parameters and the stack; Pointers - Indexed addressing;
Arrays; Strings Advanced functional debugging. C Programming – Arrays, Indexing,
Pointers; |
Week 6 2/18
to 2/22 |
Lec6 |
Chapters 1 – 5 |
Timers – Timers; Debugging
dump; Profiling Review for Test 1:
|
2/22 |
|
|
February 22 - Test 1 (closed book), in regular class room |
Week 7 2/27
to 3/2 |
Lec7 |
Section 6.5, 7.6, 7.1-7.5 |
FSMs - Finite state machines (FSMs) Locals, parameters - Local variables; Stack frames and parameter passing; I/O synchronization C Programming - Structures and data types; FSMs in C |
Week
8 |
Lec8 |
Section 7.1-7.5 |
C Programming – Scope of variables in
C (Local/Global); Parameter Passing: Call-by-value and Call-by-reference. LCD
interface - LCD programming; Number conversions I/O
Synchronization; Fixed-point
numbers
|
3/11 to 3/15 |
|
|
Spring Break |
Week 9 3/18
to 3/22 |
Lec9 |
Section 7.6, 7.7,
7.8 (Patt, Chapter 17) |
Thread synchronization
|
Week 10 3/25
to 3/29 |
Lec10 |
Section 9.1, 9.2, 9.3, 9.4, 9.6 (Patt, Chapter 17) |
Interrupts -interrupts and
interrupt processing; SysTick interrupts C programming – C/assembly
interface; Review for Test 2 DAC conversion - Digital to
analog conversion (DAC); Sound generation |
3/28 |
|
Exam 2 |
March 28 - Test 2
(closed book): In lab
(during evening), room TBA, students are expected to have a laptop with Keil
uVision for the Arm
installed and have wireless internet access |
Week 11 |
Lec11 |
Section 10.1, 10.2, 10.3, 10.4 |
ADC conversion - Analog to
digital conversion (ADC) Lab 8 design methods |
Week 12 |
Lec12 |
Section 6.8, Section 8.2 |
Thread communication -
Producer-consumer problems; FIFO queue; C Programming - FIFO. Serial I/O - universal asynchronous receiver transmitter (UART);
UART programming and interrupts; Lab 9 introduction |
Week 13 4/15 to 4/19 |
Lec13 |
Section 11.1-11.4, (Patt,
Chapter 19, skip Sections 19.4) |
|
Week 14 |
Lec14 |
|
C structures, abstraction, software design, software testing |
Week 15 4/29
to 5/4 |
Lec15 |
|
Review for Final Exam: Chapter 1 – 11 |
5/4 |
|
|
Design
Competition in Class |
The
following schedule is preliminary; please check the web for the most recent
version.
Due Date,
Monday 2pm |
Homework Schedule, show to TA during class http://users.ece.utexas.edu/~valvano/Volume1 |
1/23 (Wednesday) |
Homework 0: Definitions and numbers |
1/28 |
Homework 1: Introduction to C |
2/4 |
Homework 2: Numbers, arithmetic and logical operations |
2/11 |
Homework 3: Loops and arithmetic operations |
2/18 |
Homework 4: Pointers and functions, call by value, call by reference |
2/25 |
Homework 5: Practice number conversion, carry/overflow bits |
3/4 |
Homework 6: Arrays, indexing, pointers |
3/11 |
Homework 7: Practice Exam 2s, Exam2_sum and Exam2_Quad |
3/25 |
Homework 8: Practice Exam 2s |
4/1 |
Homework 9: Pointers and testing, (Patt, Chapters 15, and 16 (Patt, Chapter 17) |
4/8 |
Homework 10: C programming assignment |
4/15 |
Homework 11: C programming assignment |
4/22 |
Homework 12: C programming assignment |
4/29 |
Pop quiz (evaluations) |
Computer
Usage: Computers in ENS507 are available for your usage. TA's in the laboratory
are checking off programs and supervising while on duty, thus you can expect to
have only a brief consultations with them. You should learn to develop software
while on the computer. This course involves some projects that require extended
periods of time to complete and a project cannot be done just overnight. Get
started on an assignment early so you can get help if you need it. There are
not enough machine hours to give everyone more than enough time to complete
each program. We expect most students to have a laptop have access to a machine
to run at home. Unfortunately, expect the laboratory to be crowded and machine
time to be scarce if you attempt to work in the lab a day or two before an
assignment is due. You will be competing with students in other courses for
computer time. We need your assistance in the laboratory. Please report any
equipment problems to the TA if they are present. If a TA is not present use
the form provided in the lab. If you do this we can rapidly get repair service.
Please help to keep the lab clean.
Lab Partners: See the Lab manual
EE319K kit handed out by TAs
6 LEDs (20 mA, 2 red, 2 yellow, and 2 green LEDs)
6 220 ohm 5%, 0.25 watt resistors
3 push-button switches
3 10k ohm 5%, 0.25 watt resistors
3 1.5k ohm 5%, 0.25 watt resistors
3 12k ohm 5%, 0.25 watt resistors
2 feet of 4-Wire 24 gauge solid wire, used to prototyping
1 0.1 uF ceramic bypass cap, place across
power and ground of the 7406
1 headphone jack, used in lab 7 to create audio
1 20k ohm slide pot, used in labs 8 and 9 to measure distance
Item to get from long term checkout
Item
to get from your TA
Should
you buy a computer? We expect each EE319K student to have a personal
laptop. This laptop will greatly simplify lab completion, and it is required to
complete Exam 2. Let it be perfectly clear that the following remarks are my
personal opinion, and do not reflect an official position of the department,
college, or university. I feel very strongly that you should have your own
computer on which you develop your software and write your reports. I think
both software development and report writing should be done without paper,
pencil and erasers. Having a computer at home allows you to organize your
information (files, directories etc.) as well as your schedule (allocate your
software development time for that the time of day during which you are most
creative and energetic.) Physiologically most people are more energetic in the
morning. On the other hand, there are fewer distractions late at night.
Which computer should I buy? Y
PCBArtist. You will be drawing a 5 or 6
circuit diagrams as part of your lab assignments. You are free to draw these
diagrams in any manner you wish as long as the information is presented in a
complete and professional manner. One option for drawing circuits is PCBArtist,
which can be downloaded at http://www.4pcb.com/
. Be careful when downloading and installing this free program; it wants to
install a lot of unnecessary add-ons. Therefore we will post the basic
installer on Blackboard, and we suggest you install the Blackboard-posted
version. The use of a drawing program like PCBArtist is required for EE319K
students. If you plan to use a different circuit drawing program, please get it
approved by your TA.
Homework
submission
All homework will be submitted in class as one piece of printed paper.
There will be approximately one homework assignment each week, due at the start of class on
Mondays. Late homework will not be accepted. You are allowed to work in groups
of 1 or 2 students on homework. However, both students must complete the online
activities, Each student turns in one piece of paper with their name on the
top.
There will be a signup for Lab checkout times. Each student will have
a specific checkout time which will be when their lab will be demonstrated to
their TA. You can only switch Lab sections using official add/drop
procedures.
Legal
Stuff: The 12th class day is January 30. The drop policy is extremely
complicated. See your academic advisor or the Dean of Students for more
information. Course evaluation is conducted on the last class day in accordance
with the Measurement and Evaluation Center form. The final exam is at the time
and place stated in the course schedule. The University of Texas at Austin
provides upon request appropriate academic adjustments for qualified students
with disabilities. Students with disabilities may request appropriate academic
accommodations from the Division of Diversity and Community Engagement, For more information, contact Services for Students with
Disabilities, 471-6259, http://www.utexas.edu/diversity/ddce/ssd/.
Religious Holy Days By UT Austin policy, you must notify me of your
pending absence at least fourteen days prior to the date of observance of a
religious holy day. If you must miss a class, an examination, a work
assignment, or a project in order to observe a religious holy day, I will give
you an opportunity to complete the missed work within a reasonable time after
the absence.
Scholastic dishonesty: "Faculty in the ECE Department are committed
to detecting and responding to all instances of scholastic dishonesty and will
pursue cases of scholastic dishonesty in accordance with university policy.
Scholastic dishonesty, in all its forms, is a blight
on our entire academic community. All parties in our community -- faculty,
staff, and students -- are responsible for creating an environment that educates
outstanding engineers, and this goal entails excellence in technical skills,
self-giving citizenry, an ethical integrity. Industry
wants engineers who are competent and fully trustworthy, and both qualities
must be developed day by day throughout an entire lifetime. Scholastic
dishonesty includes, but is not limited to, cheating, plagiarism, collusion,
falsifying academic records, or any act designed to give an unfair academic
advantage to the student. The fact that you are in this class as an engineering
student is testament to your abilities. Penalties for scholastic dishonesty are
severe and can include, but are not limited to, a written reprimand, a zero on
the assignment/exam, re-taking the exam in question, an F in the course, or
expulsion from the University. Don't jeopardize your career by an act of
scholastic dishonesty. Details about academic integrity and what constitutes
scholastic dishonesty can be found at the website for the UT Dean of Students
Office and the General Information Catalog, Section 11-802."
You are encouraged to study together and to discuss information and concepts
with other students. You can give "consulting" help to or receive
"consulting" help from such students in oral form. However, this
permissible cooperation should never involve one student having possession of a
copy of all or part of work done by someone else, in the form of an email, an
email attachment file, a portable storage device, or a hard copy. Copying of
any part of a program is cheating without explicit reference to its source. We
do enter lab assignments turned in by EE319K students through a plagiarism
checker, comparing them to assignments of this and previous semesters. If we
find two programs that are copied, there will be a substantial penalty to both
students, e.g., failure in the course. Students who cheat on tests or in lab
will fail. Prosecution of cases is very traumatic to both the student and
instructor. It is appropriate to use software out of the book, class website as
long as all copy-pasted software is explicitly referenced. Copy-pasting
software from current or past EE319K students is scholastic dishonesty.
Policies concerning the use of other people's software in this class:
· I strongly encourage you to study existing software.
· All applications and libraries must be legally
obtained. E.g.,
You
may use libraries that came when you bought a compiler.
You may use software obtained
from the web.
You may copy and paste from the
existing source code.
· You may use any existing source code that is clearly
referenced and categorized:
original: completely written by
you,
derived: fundamental approach
is copied but it is your implementation,
modified: source code
significantly edited to serve your purpose,
copied: source code includes
minor modifications.
Abet
material
Three lecture hours and one laboratory hour a week for
one semester.
Design Assignments: Labs 5, 8, 9, 10 (1 week each)
Laboratory Projects: Labs 1, 2, 3, 4, 6, and 7
SCH Engineering Topics 3 (Including: 1 SCH of Engineering Design)
Relationship of the Course to ABET EC2000 Program Outcomes:
Ö |
ABET EC2000 Program Outcomes |
Ö |
a. An ability to apply
knowledge of mathematics, science, and engineering |
Ö |
b. An ability to design and conduct experiments, as well as to analyze and interpret data |
Ö |
c. an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability |
|
d. An ability to function on multi-disciplinary teams |
Ö |
e. An ability to identify, formulate, and solve engineering problems |
|
f. An understanding of professional and ethical responsibility |
Ö |
g. An ability to communicate effectively |
|
h. The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context |
Ö |
i. A recognition of the need for, and an ability to engage in life-long learning |
Ö |
j. A knowledge of contemporary issues |
Ö |
k. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice |
ABET
Criterion 9: Program Criteria for Electrical Engineering Curriculum
Achieved:
|
ELECTRICAL ENGINEERING PROGRAM CRITERIA |
Ö |
Programs must demonstrate that graduates have a knowledge of: |
|
1. Probability and statistics, including applications appropriate to the program name and objectives; |
Ö |
2. Mathematics through differential and integral calculus, basic sciences, computer science, and engineering sciences necessary to analyze and design complex electrical and electronic devices, software, and systems containing hardware and software components, as appropriate to program objectives. |
Ö |
3. (Electrical) Advanced mathematics, typically including differential equations, linear algebra, complex variables, and discrete mathematics. |
|
|
Curious about my research? See http://users.ece.utexas.edu/~valvano/research