Embedded Systems Design Lab
Spring 2018 (2/28/2018 version)
Course Catalog Description Design of microcontroller-based embedded systems; interfacing from both a hardware and software perspective; and applications, including audio, data acquisition, and communication systems.
Tuesday, Thursday 3:30-4:45pm
Office Hours in EER 5.820:
For other times email me for an appointment.
Instructor: Jonathan W. Valvano, EER 5.820, 512-471-5141
email: firstname.lastname@example.org (put "EE445L" in the email title, send no ZIP files)
Web page: http://users.ece.utexas.edu/~valvano
Required Text: Embedded Systems: Real-Time Interfacing to ARM Cortex M Microcontrollers, Fifth edition 2017, ISBN: 978-1463590154 (fourth edition is ok)
Lecture Videos: https://www.youtube.com/playlist?list=PLyg2vmIzGxXGBxFu8nvX3KBadSdsNAvbA
Lecture Powerpoints: https://drive.google.com/open?id=0B4G21QTCIVqKflQ1ZTUyTW1TQ0lVTDFBOTlILTR3VmYzTmRjVW5kRTUtQTU5bmVSazVybU0
Equipment to buy:
1) Board. Every student will be required to have a Texas Instruments TM4C123 LaunchPad by Friday 1/26. Since we will be using the TM4C123 kit in EE319K and EE445L for a few years, you will have the option of selling it at the end of the semester. If you can find an EK-LM4F120XL board, it could also be used. Since it is only $13, we suggest each student purchase a board and a breadboard. Buying options for the board can be found by searching www.octopart.com https://octopart.com/search?q=EK-TM4C123GXL However, one option is to purchase it directly from www.ti.com . We have been using the TM4C123 board in EE319K since Fall 2013, so you might be able to find one used. If you do purchase a used microcontroller board, ask a TA or me to run the board tester to make sure all the pins work. If it still works at the end of the semester, you will be able to sell this board to students in the next semester.
Lab: EER1.806 (shared with EE445M/EE380L.12)
EE445L Unique: 15650 MW 12:00 p.m.-1:30 p.m., Saadallah
EE445L Unique: 15660 MW 3:30 p.m.-5:00 p.m., Saadallah
EE445L Unique: 15665 MW 5:00 p.m.-6:30 p.m, William
EE445L Unique: 15672 MW 8:00 p.m.-9:15 p.m., William
EE445L Unique: 15640 TTH 9:30 a.m.-11:00 a.m., Teja
EE445L Unique: 15645 TTH 11:00 a.m.-12:30p.m., Sam
EE445L Unique: 15655 TTH 12:30 p.m.-2:00 p.m., Joshua
EE445L Unique: 15670 TTh 5:00 p.m.-6:30 p.m., Jaime
EE445M MW 10:30 a.m.-12:00 p.m.
EE445M MW 1:30 p.m.-3:00 p.m.
EE445M MW 6:30 p.m.-8:00 p.m.
EE445M TTH 2:00 p.m.-3:30 p.m.
EE445M TTH 6:30 p.m.-8:00 p.m.
Great TAs: email all TAs professors and staff email@example.com
Joshua S Minor
materials on the web:
http://users.ece.utexas.edu/~valvano/Datasheets Data sheets for devices used in EE445L
http://users.ece.utexas.edu/~valvano/arm/ Starter files for EE445L and EE345M
http://users.ece.utexas.edu/~valvano/embed/toc1.htm C programming reference manual
http://users.ece.utexas.edu/~valvano/EE345LFinal/ Old exams
Put this DLL LaunchPadDLL.dll into your Keil/ARM/bin folder so you can simulate some of the TM4C123 LaunchPad devices used in EE319K.
Other references: For programming in C see the EE312 textbook or the second half of the EE306 text.
Prerequisites: EE312 and EE319K with a grade of at least C- in each; EE411 and EE313, or BME311 and BME343, with a grade of at least C- in each; and credit with a grade of at least C- or registration for BME333T, or EE333T.
Specific EE319K topics needed for EE445L: LED interface, switch interface, busy-wait synchronization, serial communication concepts (start bit, data bits, stop bit, baud rate, bandwidth), UART programming, analog to digital conversion (range, resolution, precision, accuracy), ADC programming, digital to analog conversion (range, resolution, precision, accuracy), interrupt concepts (arm, enable, acknowledge, vector), Output compare interrupt programming
Specific EE312 topics needed for EE445L: Modular programming, differences between pointers and numbers, when to use permanent allocation and when to use temporary allocation, definitions of char, short and long, understanding and use of static, const and volatile, understanding call by value versus call by reference, stack frames, structures, linked lists, fifo queues, verification. The most important component students must be able to accomplish is the translation of a problem statement into software code. The second most important skill we expect students to have is the ability to debug software.
Specific EE302/EE411/EE313/EE438 topics needed for EE445L: RLC circuits, NPN and PNP transistors, input impedance, output impedance, linear amplifiers using op amps, oscilloscopes, sampling, frequency response, Bode Plots, Fourier Transform, spectrum measurements.
Teaching philosophy: 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.
Specific Objectives of EE445L The primary objective of EE445L is for the students to develop the ability to design microcomputer-based embedded systems. This class allows students to learn microcomputer interfacing from both a hardware and software perspective.
Microcomputer Architecture (EE319K review)
An introduction to the microcomputer, architecture, The Cortex M4 Instruction Set, Cortex M4 Addressing Modes, I/O and Memory Organization, The memory map of the TM4C123
Programming Microprocessors (EE312, EE322C review)
Data Structures in C (arrays, tables, linked lists, stacks, and fifo queues), Writing Quality Programs in C, Passing Parameters (Conceptual and Implementation Levels), Modular Programming, Verification and Testing, Documentation
Microcomputer Bus Interfaces
Digital Hardware, Modules and Signals, Drivers, Registers, Timing equations, Timing diagrams,
Parallel and Serial Input-Output
TM4C Parallel I/O Devices, Device Driver Software, Buffered Input and Output, Table and Linked List Interpreters, TM4C Synchronous and Asynchronous Serial Input-Output, Synchronization in I/O devices, Blind-Cycle Synchronization, Busy-Wait Synchronization, Interrupt Synchronization, Polled Interrupts, Vectored Interrupts, Interrupt Priority
Parallel Port Interfaces
Keyboards, Key Debouncing, Keyboard Scanning Techniques, LED Scanning Techniques and LCD Interfacing
Data Acquisition Systems
Outcomes: After the successful conclusion of EE445L students should be able to design embedded systems including hardware/software interfaces for devices like LCD displays, motors, keyboards, analog sensors and speakers.
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.
50% Laboratory assignment with a large weight applied to Labs 7, 8 and 11
15% Quiz 1, closed book (1-page crib notes), Thursday, March 1, 3:30 to 4:45 pm, MEZ 1.306
15% Quiz 2, open book, Thursday, April 19, 3:30 to 4:45 pm, MEZ 1.306
20% Final, closed (no crib notes)/open book, Thursday May 10, 2-5pm, room TBD regularly scheduled time and place
When studying, focus on the topics that apply to the ARM Cortex M and the lab assignments. You will find old quizzes and finals with solutions on the class web site. I have no expected grade cutoffs or expected GPA for this class. You can view the previous GPAs for most of your classes at UT (MyEdu reports I give a GPA in this class of about 3.3). All professors want a 5 on their teaching evaluation, and all students want an A. However, I feel both should only be awarded for excellence.
to the lead in most solder,
please wash your hands after soldering, before eating or drinking. If
the soldering iron, let it fall to the ground. Do not try and catch it.
are pregnant or think you might be pregnant, have someone else do the
Due to the lead in most solder, please wash your hands after soldering, before eating or drinking. If you drop the soldering iron, let it fall to the ground. Do not try and catch it. If you are pregnant or think you might be pregnant, have someone else do the soldering.
All labs should be performed with a partner. You and your
lab partner must be registered for the same lab section. The lab
must be registered with your TA (a simple hand written note signed by
students will suffice) during the week of 1/22 to 1/25. Once
partnership will continue. A partnership can be dissolved only after
with the TA. Both partners must be present during the demonstration. It
expected that both partners will contribute to all aspects of each lab,
both partners are expected to be present during the check out. The
are the same for all labs. Lab partners will be selected in your lab
of 1/22 to 1/25. If you want to switch sections, there will be a googleDoc link on
canvas, on which
you can request a section swap. Basically, you will need another
student (not your lab partner) with whom you will switch
Lab 1. ASCII to fixed-point output to LCD
Lab 2. Debugging, oscilloscope fundamentals, logic analyzer, dump profile
Lab 3. Alarm clock, LCD, edge-triggered input interrupts, and SysTick periodic interrupts
Lab 4C. IEE802.11Wi-Fi communication, TCP, client-server, IoT
Lab 5. 12-bit DAC, SPI, Music player, audio amp
Lab 6. Introduction to PCB Layout, PCB Artist (paper design only)
Lab 7. Design and Layout of an Embedded System
Lab 8. Software Drivers for an Embedded System
Lab 9. Temperature measurement, ADC, LCD
Lab 10. DC motor control, timer interrupts, PWM output, input capture, integral control
Lab 11. Final Design and Evaluation of Embedded System
EE445L Laboratory Schedule (see your TA for the latest). Each week there are two 90 minute lab sessions, which are scheduled Monday/Wednesday or Tuesday/Thursday. You will show the preparation to your TA at the beginning of the second session. During the first session demonstrations will be made. The TA will sign your software listing when you demonstrate your system. The report (hardware/software/data plots) is due Friday uploaded to Blackboard according to the directions posted on Canvas. Any EE445L TA is authorized to checkout your lab. Please consult with your TA for specific due dates for your lab section.
Lab Schedule This is an approximate schedule, please check the website for the latest version. Spring break is 3/11 to 3/19
no lab activities, buy your TM4C123 board, Lab starts 1/22
Meet the TA
partners chosen, 1 Prep
Keil uVision demonstration, PCB Artist (SCH) demonstration
Logic analyzer demonstration
Spectrum analyzer demo
PCB Artist (PCB) demonstration
Quiz 1 is 3/1 3:30pm in MEZ 1.306
6 Demo, 5 Report
Upload to Canvas SCH/PCB files to TA by 9am Friday 3/23
final SCH/PCB files due on Canvas at 10am Thursday 3/29
Lab 8 report is just the software
|4/9||9 Demo||10 Prep||9 Report|
Quiz 2 is 4/19 3:30pm in MEZ1.306 **Due to the test, Lab 10 report is due Monday 4/23 9 am**
Turn in equipment by 5/4
|Expo||Expo Thursday 5/3, 3:30pm in EERC lobby|
"8 Demo" means your PCB Artist files are delivered to the TA
= you turn in your lab preparation
Demo = you demonstrate your lab to the TA
Partial = you demonstrate first part of a two-week lab to the TA
Report = you turn in your complete lab report to the TA
PCB production schedule
- Rough draft due to TA Friday 3/24 9am on Canvas
- PCB files due Thursday 3/29 10am on Canvas
- TA downloads files from Canvas and creates an XLS sheet
- PCB ordered on Thursday 3/29 by 12 noon
- Boards received Monday 4/9 or Tuesday 4/10.
- Option 1, give PCB with bare TM4C123 processor to students
- Option 2, give PCB+TM4C123 to Mark for oven soldering
Tuesday -Friday Mark will solder TM4C123 onto PCB
Friday 4/13 or Monday 4/16 PCB with processor soldered returned to students
- Lab 11 prep 4/23 or 4/24 all parts soldered and microcontroller can be programmed.
the week of 1/22,
please go to your
scheduled EE445L lab sessions in
EER1.806 to get a demonstration of the
equipment. If you do not already own a TM4C123
board, you must purchase
one. Each student should have their own
board. The lab
preparations (hardware diagrams and syntax-free software source code
printouts) must be uploaded to Canvas prior to the beginning of your
lab period. PLEASE SEE YOUR TA ON EXACT REQUIREMENTS FOR TURNING IN LAB
ASSIGNMENTS. In other words, please type your
software into the PC before lab. Attendance in lab is required. All
and tests must include comments. All hardware
must include R&C values specifying tolerance and type (e.g., 5%
and chip numbers (be very specific e.g., INA122P). Pin numbers are
only for lab, not for the exams.
Students are encouraged to go to the last 1 hour of the other lab periods, but the first priority will be to the regular students. The uploading of preparations will close once Lab has begun. For the first 15 minutes of lab, the TA will lead a lab discussion session. The remaining lab time is available for debugging and lab checkout. At the end of the semester please verify with the checkout counter that your record is clear. All reports must be given to the TA by Friday May 5, 2pm.
This is an approximate schedule, please check the website for the latest version.
|Week||Chapter||Lecture||Topic YouTube Playlist Link to Powerpoints|
Graphics, Lab1 project, call graphs
Arm Cortex M architecture, features of the TM4C123, data flow graphs,
Introduction to interfacing, hardware software synchronization
Interrupts, Lab2 project
Debugging debugging techniques, and programming style, dumps, monitor
BJT transistor interface
and software style
Introduction to communication systems
Wifi, Wireless communication, client server, IoT (Lab 4 material)
Demonstration of CC3100 Weather monitor, and Lab 4
DAC fundamentals, Nyquist Theorem (Lab 5 material)
SPI and DAC interface, timing analysis
Sound and Music Generation
amplifiers, see Example 10.4
DAC performance measures
PCB Layout, Lab 6 material
System level design, clock, power, packaging
Quiz 1 review
design, regulators, PCB layout
Power supplies, batteries, regulators
File system using FAT16
Input capture, period measurement
Resistance bridge, instrumentation amplifier
HPF, LPF, 2-pole Butterworth LPF
Introduction to Sampling
Nyquist Theorem, Aliasing, DFT
Data Acquisition Systems
DC Motors, PWM, interface electronics (TIP120, snubber diodes)
BLDC, Servos, Stepper Motors
Input capture, tachometer interface
Lab 10 demonstration
Finite State Machines
Real-time operating systems
Keyboard Interfacing, Scanned LED Display
Open house, final class competition, outside Lab
Legal Stuff: The 12th class day is Jan 31. 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. For more information, contact the Office of the Dean of Students with Disabilities at 471-6259, 471-4241 TDD.
Religious Holy DaysBy 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.
dishonesty: "Faculty in the ECE
Department are committed
to detecting and responding to all instances of scholastic dishonesty
pursue cases of scholastic dishonesty in accordance with university
Scholastic dishonesty, in all its forms, is a
on our entire academic community. All parties in our community --
staff, and students -- are responsible for creating an environment that
educates outstanding engineers, and this goal entails excellence in
skills, self-giving citizenry, an
Industry wants engineers who are competent and fully trustworthy, and
qualities must be developed day by day throughout an entire lifetime.
Scholastic dishonesty includes, but is not limited to, cheating,
collusion, falsifying academic records, or any act designed to give an
academic advantage to the student. The fact that you are in this class
engineering student is testament to your abilities. Penalties for
dishonesty are severe and can include, but are not limited to, a
a zero on the assignment/exam, re-taking the exam in question, an F in
course, or expulsion from the University. Don't jeopardize your career
act of scholastic dishonesty. Details about academic integrity and what
constitutes scholastic dishonesty can be found at the website for the
of Students Office and the General Information Catalog, Section
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 EE445L 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 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.
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.
To complete EE445L labs it will take time outside of the 3 scheduled lab hours. With the crowding we expect in ECJ, it will be important for you to configure a development system on your laptop (Keil version 4.7x, PuTTy, and PCB artist). This way you will be mobile and flexible about where and when you work on lab. For Keil 4.7x installation see http://users.ece.utexas.edu/~valvano/Volume1/uvision/ . For PuTTY see http://www.putty.org/ . For PCB artist see http://www.4pcb.com/free-pcb-layout-software/
samples (DIP or PDIP
labeled 1) 2) 3) 4) will be requested for you. In other words, we will
request for the entire class. However, keep these web sites in mind as
design your Labs 7, 8, 11. You will order something as part of Lab
6. Please order 2,3,4,5 now. Then wait until you design
Lab 7, and then order what you need. You
will need to register with an
official University email address (e.g., YourName@mail.utexas.edu)
a junk email address (e.g., aol.com or gmail.com). For general
getting free samples, see http://www.ladyada.net/library/procure/samples.html.
http://www.analog.com/en/index.html Analog Devices
AD8032ANZ rail-to-rail op amp
MAX5353ACPA+ or MAX5353BCPA+ single 3.3V-powered, 12-bit SPI interface DAC (ACPA or BCPA)
MAX552BCPA 12-bit multiplying DAC
MAX1246ACPE+ 3.3V-powered, 12-bit ADC, such as the (A or B, with or without +)
MAX5155ACPE dual 12-bit SPI interface DAC (ACPE or BCPE)
Texas Instruments (we have ordered these for you)
1) INA122P rail-to-rail instrumentation amp
2) OPA2350PA rail-to-rail dual op amp
3) LM4041CILPR adjustable shunt reference for Lab 5.
4) TLV5618ACP dual 12-bit DAC for Lab 5.
5) TPA731D audio amplifier for Lab 5.
10-pin LCD connector, BCS-110-L-S-TE (need 1 for the ST7735 LCD to connect to PCB)
engine for parts
Game engine http://www.3dgamestudio.com/
Hobby parts http://www.sparkfun.com/
Surplus http://www.allelectronics.com/ http://www.bgmicro.com/
Full line http://www.digikey.com/
Put your embedded system in a box (not free, but a good source for choices)
http://www.okw.co.uk/ OKW Enclosures Ltd
http://www.tekoenclosures.com/ Teko Enclosures Solutions
http://www.pactecenclosures.com/ PacTec Enclosures
Curious about my research? See
ABET Relationship of the Course
to Student Outcomes: Bold
apply to EE445L
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 multidisciplinary 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. Recognition of the need for and an ability to engage in life-long learning.
j. Knowledge of contemporary issues.
k. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
For more information see http://www.ece.utexas.edu/about/mission
Preparedness and Emergency Plan Instructions
Please review http://users.ece.utexas.edu/~valvano/emergency_terms.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/.
Emergencies may range from inclement weather, to building evacuations, to campus closures, and the
university has a variety of tools to communicate with the public in the event of these and other possible
emergencies. Depending on the type of emergency, we may use some or all of the following tools to
communicate with faculty, staff and students:
This system is tested around noon on the first Wednesday of every month, and delivers a siren warning
and public address in the event of certain outdoor emergencies. Read more about the siren system.
Emergency Web Site
You may want to bookmark the emergency Web site because it is updated with information during
actual emergencies or campus closures.
Local Press and Social Media
University Communications staff send emergency information to the press and update social media with
public safety messages. Because of the transient nature of our population, the university depends a great
deal on the press and social media to keep students, faculty, and staff informed during campus
Our campus first responders, resident advisors, and some building managers are part of the AWACS
paging system. The pagers send text messages about emergencies on campus and alert city responders
(APD, AFD, EMS, Office of Emergency Management, etc.) to campus crisis situations.
Fire Panel Systems
Residence halls are equipped with fire panel systems that have a public address capability. Resident
advisors are trained to use these systems in emergencies in order to make announcements to the entire
building regarding evacuation, shelter in place, etc.
The university collects cell phone numbers from members of the campus community for emergency text
messages. Sign up for campus text alerts online.
University Group E-mail
During emergencies, UT Safety Alert sends an “urgent” group e-mail to every student, faculty and staff
member. The e-mail directs individuals to the emergency Web site for additional information and
Voicemail to Office Telephones
This tool leaves a voice message on every faculty and staff member’s office phone on campus.
Residence halls and several of our public gathering places have cable televisions where emergency
announcements get posted.
Public Safety Patrol Car Announcements
UTPD patrol cars are equipped with PA systems, which officers can use to provide instructions to
pedestrians during emergencies.
University Emergency Information Line — 512-232-9999
Students, faculty, and staff can call this main number for information about campus closures.
The implementation of each tool described above is assigned to an individual who has at least two backups who can also
carry out the communications task. Individuals with electronic communication tools assigned to them have remote access
(from their homes, etc.) to those tools. The police department and the associate vice president for Campus Safety and
Security are typically the ones who deliver emergency information to university administration. Upon considering this
information, administration develops the messages and activates campus-wide communications. The only exceptions to
this are the sirens and pager system, which are activated directly by UTPD in extremely urgent situations where
immediate action is required.