EE319K
Introduction to Embedded Systems
Email
all
professors and TAs (s21_ee319k@utlists.utexas.edu)
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
EE319K will continue the bottom-up educational approach, started in EE302 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. The hardware construction is performed on a breadboard and debugged using a multimeter (students learn to measure voltage and resistance). Software is developed in ARM Cortex-M assembly and C; most labs will be first simulated then run on the real LM4F120/TM4C123 board. Software debugging occurs during the simulation stage. Verification occurs in both stages. Labs 1, 3, 4 are written in ARM assembly language. Labs 8 and 9 are written in a combination of assembly and C. Labs 2, 5, 6 and 10 are written in C.
EE319K is team-taught. All five lecture sections will share the same TAs, PowerPoint slides, lab assignments, Quizzes, and Exams. EE319K will give common Exams 1 and 2 in the evening. Please check the date/time for exams 1 and 2 and make sure they fit your schedule; Let your instructor know if your schedule conflicts with these date/time. The final exam is also common and the date/time will be announced once assigned by the registrar. Here are the section details:
Please note that all lectures and labs are held in Online over Zoom.
Instructors:
Al Cuevas, EER 4.824, acuevas@utexas.edu, http://www.ece.utexas.edu/people/faculty/al-cuevas
Vivek Telang, vivek.telang@austin.utexas.edu
Ramesh
Yerraballi, EER 5.824, ramesh@mail.utexas.edu, http://www.ece.utexas.edu/~ryerraballi
Jonathan Valvano, EER 5.820 valvano@mail.utexas.edu
Office
Hours (subject to change): All
Instructor Office Hours are online using Zoom
Al
Cuevas, Mon 4:30pm-5:30pm,Tue 4:30pm-5:30pm, Wed 4:30pm-5:30pm, Thu 4:30pm-5:30pm
Vivek Telang, T 9-10:30 and Th 10:30-12
Ramesh Yerraballi, MW 2:00-3:30pm
Jonathan Valvano, Monday 11-12, Monday 7-8, Wednesday 10-12, Wednesday 7-8, Friday 11-12, Friday 1-2, and Friday 7-8
Lab
lectures Each week we will
provide three
optional
Lab lectures
delivered by online. The times for the lectures are Fridays
4-5pm,
Mondays 6:30-7:30pm. They will be given by
the TAs each week with the following
exceptions.
1) Lab lectures start the second
week: No lab lectures first week; First lab lectures will be Friday
1/29, Monday 1/31.
2) There will be reviews for Exams 1, 2 and the final (time and place
TBA)
TAs
(Photos of TAs): The
office hours and
locations will be posted in lab (All TA
office hours are Zoom sessions - See class website for details). About
34 students will be assigned to each 20-hour TA, and 17 students to
each 10-hour
TA.
Grad TAs: Jeffrey C Marshall, Weilin Cao, Kashyap Mattoo
UG TAs: Revathi D Rajan, Aditi Katragadda, Jason Wang, Adeel Rehman, Rishi Ponnekanti, Rafid Hasan, William Bundrant, Stephen Do, Rishabh Parekh, Claire Romero
Mailing list: s21_ee319k@utlists.utexas.edu (all Professors and TAs)
Teaching
Videos and interactive web pages http://users.ece.utexas.edu/~valvano/arm/lectures.html
EE319K
Class Web page (Lecture notes, homeworks
and lab assignments): http://www.ece.utexas.edu/~valvano/Volume1
Data sheets: http://www.ece.utexas.edu/~valvano/Datasheets
Starter files: http://www.ece.utexas.edu/~valvano/arm/
Look for examples that have TM4C in the name.
Text:
Introduction to Embedded Systems , ISBN:
978-1537105727,
which is available on Amazon and Createspace.
Look on Canvas announcement
for an
inexpensive way to purchase the newest version of the book. This
version is specific for EE319K
and is a subset of Volume 1 that we used two years ago.
However, you are allowed to buy/borrow a used fifth edition of ISBN:
978-1477508992. Because all editions have the same ISBN, we discourage
buying the book used. This means if you buy it
used you
are likely to get an older edition.
(not available in local
bookstores):
https://www.amazon.com/Introduction-Embedded-Systems-Jonathan-Valvano/dp/1537105728
Reference materials:
Equipment to buy:
· EK-TM4C123GXL (newer and more costly, but harder to get) http://www.ti.com/tool/ek-tm4c123gxl
The Tiva LaunchPad can also be purchased at regular vendors like
· http://www.digikey.com (EK-TM4C123GXL is part number 296-35760-ND)
· http://www.mouser.com (595-EK-TM4C123GXL)
We will allow our students to use either Tiva LaunchPad, the same code runs on both (the TM4C123 has hardware PWM and USB host). If you do buy or borrow a board from another student, I recommend you let the TA test it to make sure the board is functional.
Every
student should own their own voltmeter. A voltmeter less than $20 will
do, see
Jameco
https://www.jameco.com/z/
Safety
warning:
Course
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.
Detailed Objectives of EE319K
Prerequisites:
EE306 or BME303 with a
grade of at
least C-. You should recall:
i. Address Space and Addressability
i. Memory
operations
ii. Arithmetic
and Logic operations
iii. Control operations – Branches/Jumps
Teaching
Philosophy
The EE319K staff 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 us if you have questions.
Grading
20% |
Weekly Quizzes |
Online in Canvas |
30% |
Laboratory
Assignments |
Due at lab times (Tue/Wed/Thu) |
15% |
Exam 1 (common exam in evening) |
Fri 3/5 7-8:30pm Location:
Online
|
15% |
Exam
2 (common exam in evening) |
Fri 4/9 7-8:30pm |
20% |
Final
Exam (common exam, not usual
time) |
Date Monday,
May 17: 7-10pm Location: Online
|
There
will be no re-tests, make-ups, or
incompletes.
Cutoff scores for the 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.
Laboratory
Policies and Lab Partners: See
the introduction to the Lab
manual. Please
DO NOT unplug the monitors and attach the monitor to your laptop.
Exams: All students in EE319K will take Exam 1, Exam 2 and the Final Exam at the same time and place. Exams 1 and 2 are practical programming exams during which you will design, implement, and debug a software system in assembly and C respectively. You will be writing software using Keil uVision in simulation mode. No microcontroller hardware will be needed.
Tentative
Lecture Schedule
The following schedule is preliminary; please check the web for the most recent version.
Week |
Lecture |
|
Lecture
Schedule |
1 (1/19-21) |
Lec1 |
Ch.
1 |
Introduction
–
Course administration; Embedded systems, development cycle; Flow
charts, data flow and call graphs; Electronics, logic, Ohm’s
law; ARM
programming and Keil uVision
tools. |
2 (1/25-28) |
Lec2 |
Ch. 2 (Patt Ch. 11, 12) |
Architecture – ARM architecture and execution; Simple addressing modes; Introduction to C programming; Structure of a C program. I/O – Parallel ports, direction registers; Logical and shift operations; C variables, assignments and Boolean expressions. |
3 (2/1-4) |
Lec3 |
Sec. 1.16, 2.7, 3.1, 3.2.1, 3.2.2, 3.6 (Patt Ch. 15) |
Debugging – Debugging techniques, monitors, breakpoints, single stepping; Debugging using Keil uVision. Board – Demo of the board (in class); Switch input and LED output |
4 (2/10-13) |
Lec4 |
Sec
2.4, 3.3, 3.4, (Patt Ch. 13, 14) |
Modular programming – Abstraction and refinement; Subroutines, parameters, stack; C functions. Arithmetic – Arithmetic operations; Overflow, condition code bits; Control structures, branches, if-then, loops. |
5 (2/15-18) |
Lec5 |
Ch.1-3 (Patt
Ch. 16) |
Pointers – Indexed addressing; Arrays; Strings; C pointers, arrays, indexing, strings. Advanced functional debugging – Debugging dump. |
6 (2/-22-25) |
Lec6 |
Ch.4
|
Timers – SysTick Timers; Review for Test 1.
|
7 (3/1-4) |
Lec7 |
Ch.
5
(Patt Ch. 19) |
FSMs – Finite state machines (FSMs); Linked structures; C structures and data types; FSMs in C. I/O synchronization – Blind cycle, busy wait, interrupts; Phase locked loop (PLL). Exam 1 (Online), Friday, 3/5, 7-8:30pm |
8 (3/8-11) |
Lec8 |
Ch. 6 |
Interrupts – ARM interrupts and interrupt processing; Interrupt controller; Thread synchronization; Periodic interrupts; C/assembly interface; D/A conversion – Digital to analog conversion (DAC); Resistor networks; Sound and music generation. |
Spring
break 3/16-3/20 |
|||
9 (3/-22-25) |
Lec9 |
Ch. 7 (Patt Ch. 17) |
Variables, parameters – Locals; Scope (local/global); Stack frames, recursion; Parameter passing, call-by-value, call-by-reference. LCD interface – LCD programming; Fixed-point numbers, number conversions. |
10 (3/29-4/1) |
Lec10 |
Ch.
8
|
A/D conversion – Analog to digital conversion (ADC); Nyquist theorem; Lab 8 design methods. Numerical
calculations –
Multiplication and division; |
11 (4/5-8) |
Lec11 |
Ch.
1-7 |
Review for Test 2. Exam 2 (Online),
Friday, 4/9,
7-8:30pm |
12 (4/12-15) |
Lec12 |
Ch. 9 (Patt Ch. 19, skip Sec. 19.4) |
Serial I/O – Universal asynchronous receiver transmitter (UART); UART programming and interrupts; Lab 9 introduction Thread communication – Producer-consumer problems; FIFO queues; FIFOs and queues in C. |
13 (4/19-22) |
Lec13 |
Ch. 10 |
Game
programming – 2-D arrays,
bitmaps, sprites; Lab 10. |
14 (4/26-29) |
Lec14 |
|
Floating Point; Advanced Embedded System Design; each
professor will explore topics related to embedded systems |
15 (5/3-6) |
Lec15 |
Ch.
1-10 |
Review for Final Exam. Game Competition (Online
posting of Youtube Video - Highest rating wins) |
Lab
Schedule
Check the "Lab materials" tab on the class website for the schedule.
Labs are due during your lab time (Tue/Wed/Thu), and are demonstrated to the TA.
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.
You
need to bring your laptops to lab. TAs in the laboratory are checking
off programs and supervising
while on
duty, thus you can expect to have only 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 students to have a
laptop or
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.
EE319K
kit handed
out
by TAs
1 SSD1306 white OLED 128 by 64 pixels
6 LEDs (2 mA, 2 red, 2 yellow, and 2 green LED)
4 push-button switches
6 470 ohm 5%, 0.25 watt resistors
4 10k ohm 5%, 0.25 watt resistors
5 1.5k ohm 5%, 0.25 watt resistors
3 12k ohm 5%, 0.25 watt resistors
1 24k ohm 5%, 0.25 watt resistor
1 47k ohm 5%, 0.25 watt resistor
1 headphone jack, used in lab 6 to create audio
1 10k or 20k ohm slide pot, used in labs 8 and 9 to measure distance, used in Lab 10 as joystick
1. Download the TM4C123/LM4F120 example files using the installer (see class website for this)
2. Find the Keil\EE319KwareSpring2020\windows_drivers folder within this set of examples
3. Plug the LaunchPad board in, and direct Windows to find drivers in this windows_drivers folder
The Digilent Analog Discovery is a low-cost but wonderful tool for this class. It is not required, but very handy, especially if you need to work at home this semester.
Legal
Notes
The 12th class day is 2/3. 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. April 5th is the last day an undergraduate student may, with the Dean’s approval, withdraw from the University or drop a class except for urgent and substantiated, nonacademic reasons.
Students
with
disabilities:
The
Religious Holy Days: By
UT Austin policy, you must notify the
instructor
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, we
will give
you an opportunity to complete the missed work within a reasonable time
after
the absence.
Electronic mail notification policy: In this course, e-mail will be used as a means of communication with students. You will be responsible for checking your e-mail regularly for class work and announcements. The complete text of the University electronic mail notification policy and instructions for updating your e-mail address are available at http://www.utexas.edu/its/policies/emailnotify.html.
Use of Canvas and class web site: This course uses the class web page and Canvas to distribute course materials, to communicate and collaborate online, to submit assignments and to post solutions and grades. You will be responsible for checking the class web page and the Canvas course site regularly for class work and announcements. As with all computer systems, there are occasional scheduled downtimes as well as unanticipated disruptions. Notification of disruptions will be posted on the Canvas login page. Scheduled downtimes are not an excuse for late work. However, if there is an unscheduled downtime for a significant period of time, we will make an adjustment if it occurs close to the due date.
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:
A
practical guide to ethics involving software
development for EE319K labs
Activities you can and should do
Activities you cannot and should not do
University
Honor
Code:
"The core values of the
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. |
|
|
COVID-19 Guidance
To help keep everyone at UT and in our community safe, it is critical that all students report COVID-19 symptoms and testing, regardless of test results, to University Health Services, and faculty and staff report to the HealthPoint Occupational Health Program (OHP) as soon as possible. Please see this link to understand what needs to be reported. In addition, to help understand what to do if a fellow student in the class (or the instructor or TA) tests positive for COVID, see University Health Services.
Health Self-Checks and Face Coverings
We will all need to make adjustments to benefit from in-person class interactions in a safe and healthy manner. Our protections against spreading COVID-19 include cloth face coverings, social distancing and staying at home if showing any symptoms. For the benefit of everyone:
If a student is not wearing a cloth face-covering properly in the classroom (or any UT building), that student must leave the classroom (and building). If the student refuses to wear a cloth face covering in a class activity, the class will be dismissed for the remainder of the period, and the student will be subject to disciplinary action as set forth in the university's Institutional Rules/General Conduct 11-404(a)(3). Students who have a condition that precludes the wearing of a cloth face covering must follow the procedures for obtaining an accommodation working with Services for Students with Disabilities.
Safety Information
If you have concerns about the safety or behavior of students, TAs, Professors, or others, call the Behavorial Concerns Advice Line at 512-232-5050. Your call can be anonymous. If something doesn't feel right, it probably isn't. Trust your instincts and share your concerns.
Occupants of buildings are required to evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside.
Sanger Learning Center
More than one-third of undergraduates use the Sanger Learning Center each year to improve their academic performance. All students are welcome to join their classes and workshops and make appointments for their private learning specialists, peer academic coaches, and tutors. Please visit http://www.utexas.edu/ugs/slc or call 512-471-3614 (JES A332).
Title IX Reporting
Title IX is a federal law that protects against sex and gender-based discrimination, sexual harassment, sexual assault, sexual misconduct, dating/domestic violence and stalking at federally funded educational institutions. UT Austin is committed to fostering a learning and working environment free from discrimination in all its forms where all students, faculty, and staff can learn, work, and thrive. When sexual misconduct occurs in our community, the university can:
Campus Carry
``The University of Texas at Austin is committed to providing a safe environment for students, employees, university affiliates, and visitors, and to respecting the right of individuals who are licensed to carry a handgun as permitted by Texas state law.'' For more information, please see http://campuscarry.utexas.edu/students.
Land Acknowledgment
I would like to acknowledge that we are meeting on the Indigenous lands of Turtle Island, the ancestral name for what now is called North America. Moreover, I would like to acknowledge the Alabama-Coushatta, Caddo, Carrizo/Comecrudo, Coahuiltecan, Comanche, Kickapoo, Lipan Apache, Tonkawa and Ysleta Del Sur Pueblo, and all the American Indian and Indigenous Peoples and communities who have been or have become a part of these lands and territories in Texas. (Pronounciation guide)
Emergency
Preparedness and
Emergency Plan
Instructions
Please review http://users.ece.utexas.edu/~valvano/Volume1/EmergencyTerms.pdf
Every member of the university community
must take
appropriate and deliberate action when an emergency
strikes a building, a portion of the campus, or entire campus
community.
Emergency preparedness means we
are all ready to act for our own safety and the safety of others during
a
crisis. It takes an effort by all of us to
create and sustain an effective emergency preparedness system. Your
support is
important to achieving the
best possible outcomes during a crisis event.
As a University faculty member, you are
responsible
for
pointing out your classrooms' building emergency
evacuation routes and for reviewing emergency procedures with students
at the
beginning of each semester.
This review should include a mention of the monthly emergency
communications
test (every first Wednesday
at 11:50 a.m.) and the list of communications channels the university
uses
during emergencies. It should also
include a review of the attached document outlining emergency terms
(e.g., the
difference between “shelter-inplace”
and “lockdown”) and instructions for faculty and
students
to follow during
emergencies. As a matter of
convenience, we recommend including this information in your syllabus
along
with the phone number for the
Behavior Concerns Advice Line (BCAL: 512-232-5050). This is the number
to call
if you have concerns
regarding the attitude or actions of students, staff, or other faculty.
Finally, at the end of your emergency
preparedness
review,
request that students requiring assistance in
evacuation inform you in writing of their needs during the first week
of class.
This information must then be
provided to the Fire Prevention Services office by fax (512-232-2759),
with
"Attn. Mr. Roosevelt Easley" written
in the subject line.
Thank you in advance for taking the time
to ensure
the
safety of your classroom. I assure you this small effort
can yield much greater rewards should the unthinkable happen. If you
would like
more information regarding
emergency preparedness, visit http://www.utexas.edu/safety/preparedness/.