EE445L Embedded Systems Design Lab Fall 2014 (10/27/2014 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.

Class: UTC  3.104, Monday, Wednesday, Friday 10-10:50am 

Office Hours (subject to change): M3-4 ACA 114, Tuesday 11-12 UTA 7.343, W3-4 ACA 114, Friday 1-1:45 ACA 114. 

Instructor: Jonathan W. Valvano, UTA7.343, 512-471-5141 

email: valvano@mail.utexas.edu      (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, Fourth edition 2014, ISBN: 978-1463590154

Equipment to buy:

1) Board. Every student will be required to have a Texas Instruments TM4C123 or TM4C1294 LaunchPad by Friday 9/5. 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  http://octopart.com/partsearch#!?q=EK-TM4C123GXL

However, the least expensive option is to purchase it directly from www.ti.com because it comes with free shipping . If you want to experiment with Ethernet outside of EE445L you could purchase the $19.99 Connected LaunchPad instead of the TM4C123,  http://octopart.com/partsearch#!?q=EK-TM4C1294XL   Again the least expensive option will be 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 spring 2015 class.
 
2) LCD. Each group of two students will need to a LCD graphics display. You will have two options for the display. One option is to purchase a Sitronix ST7735R 18-bit color 1.8" TFT LCD display for $20 plus shipping, http://www.adafruit.com/products/358   The second option is to purchase a Nokia 5110 84 by 48 black and white LCD. EE445L has a design competition where students build embedded system. Using the same LCD for labs and for the project will save you time. Just like the microcontroller board, you will have the option of selling the Sitronix LCD to spring students.
 
3) Breadboard. You will need a solderless breadboard. We strongly recommend you do not buy used or borrow a breadboard, because as the breadboards get old they fail in mysterious and extremely annoying ways (shorts and opens).  The Twin Industries TW-E40-1020 is a breadboard that is easy to find. You can find it for sale on the internet by searching www.octopart.com :   http://octopart.com/partsearch#!?q=TW-E40-1020&start=0&limit=10   Any breadboard, any size will be OK. Another approach is to search "solderless breadboard" on amazon.com
 
4) Wirestrippers and voltmeter. You will need own your own pair of wire-strippers and a digital multimeter. You will be stripping a lot of 22 or 24 gauge wire as you build the interface circuits. Your meter must be able to measure voltage and resistance, so a meter costing around $20 will suffice.  Since you will be making hundreds of solder joints this semester, we suggest you use the high-quality irons available on the second floor.  The NI MyDAC you bought in EE302 can be used for as the voltmeter.

Lab: ECJ1.318A  

Unique Numbers:
16980 TTH 1100 to  1230 p

16985 TTH 1230 to   200 p

16990 TTH 200 to   330 p

16995 MW 330 to   500 p

17000 MW 500 to   630 p

17005 TTH 500 to   630 p


Great TAs:   email all TAs professors and staff f14_ee445l@utlists.utexas.edu               
    Victoria Bill 
    Mahesh Srinivasan 
    Alex Hsu   

Reference materials on the web:
hhttp://users.ece.utexas.edu/~valvano/arm/lectures2.html  Lecture notes (don't download them all, get them as we go)
http://users.ece.utexas.edu/~valvano/arm/lectures2.html  Fall 2014 Laboratory Manual 

http://users.ece.utexas.edu/~valvano/EE345L/Labs/Fall2011/ General lab reference material

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/~ryerraballi/CPrimer/   C programming manual (for 9S12)
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

Other references: For programming in C and digital logic, see the EE312 and EE316 texts     
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 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 and TM4C1294 
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
    Bridge circuits, op amps, low pass filters, instrumentation amplifiers, DAC, ADC, audio amplifiers
Motor interfacing
    Stepper motors, DC motors, pulse-width modulation, integral control
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.
Grading :    
        40% Laboratory assignment with a large weight applied to Labs 7, 8 and 11
        15% Quiz 1, closed book, Friday, October 10, 10:00 to 10:50 am, UTC  3.104
        15% Quiz 2, open book, Friday, November 21, 10:00 to 10:50 am, UTC  3.104
        30% Final, closed/open book, Saturday, December 13, 2:00-5:00 pm, 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 3.25).  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.  

Safety warnings: 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.


Lab Partners: All labs should be performed with a partner. You and your lab partner must be registered for the same lab section. The lab partnership must be registered with your TA (a simple hand written note signed by both students will suffice) during the week of 9/2 to 9/4. Once registered, the partnership will continue. A partnership can be dissolved only after discussion with the TA. Both partners must be present during the demonstration. It is expected that both partners will contribute to all aspects of each lab, and both partners are expected to be present during the check out. The point values are the same for all labs. Lab partners will be selected in your lab the week of 9/2 to 9/4. If you want to switch sections, meet after class either Wednesday or Friday. Once you find someone willing to swap sections, the two of you should go to an undergraduate advisor. 
Laboratories (labs 4 and 10 are new from last semester) 
  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 4B. DC motor control, timer interrupts, PWM output, input capture, integral control
  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 10B.
Wi-Fi communication, IEE802.11, UDP
  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.

Texas Instruments Design Competition. All of the Lab 7,8,11 projects will automatically quality for the TI design competition. We will encourage submission to this competition. 

 

Lab Schedule This is an approximate schedule, please check the website for the latest version.

Week

First session

Second session

Friday (BB)

Comments

8/27

none

none

 

no lab activities, buy your TM4C123 board, starting 9/1

9/1

Meet the TA**

partners chosen, 1 Prep

 

Keil uVision demonstration, PCB Artist (SCH) demonstration

9/8

1 Demo

2 Prep

1 Report

Oscilloscope demonstration (**no Labs on Labor Day)

9/15

2 Demo

3 Prep

2 Report

Logic analyzer demonstration

9/22

3 Demo

4 Prep

3 Report

Spectrum analyzer demo

9/29

4 Demo

5 Prep

4 Report

PCB Artist (PCB) demonstration

10/6

5 Demo

6 Prep

 

Quiz 1 is 10/10

10/13

6 Demo, 5 Report

7PrePrep

6 Report

 

10/20

7 Prep

 

Rough draft

Upload to Canvas SCH/PCB files to TA by 10am Friday 10/24

10/27

7 Demo

8 Prep

7 Report

final SCH/PCB files due on Canvas at 10am Thursday 10/30

11/3

8 Demo

9 Prep

8 Report

Lab 8 report is just the software 

11/10

9 Demo

10 Prep

9 Report

11/17

10 Demo

 

 

Quiz 2 is 11/21 **Due to the test, Lab 10 report is due Monday 10 am**

11/24

11 Prep,10 Report

 no lab Wed or Thur

 

week of thanksgiving

12/1

 

11 Demo

11 Report/Expo

Turn in equipment by 12/5

"8 Demo" means your PCB Artist files are delivered to the TA

**No Labor Day lab 9/1 (make sure you go to the second session)

Prep = 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 10am  10/24 on Canvas

- PCB files due Thursday 10/30 10am on Canvas

- TA downloads files from Canvas and creates an XLS sheet

- PCB ordered on Thursday 10/30 by 12 noon

- Boards received Monday 11/11 or Tuesday 11/12.

- Option 1, give PCB with bare LM3S811 processor to students

- Option 2, give PCB+LM3S811 to Daryl and Mark for oven soldering

      Tuesday -Friday Daryl and Mark will solder LM3S811 onto PCB

      Friday 11/14 or Monday 11/17 PCB with processor soldered returned to students

- Lab 11 prep 11/24 or 11/25 all parts soldered and microcontroller can be programmed.


    During the week of 9/2 to 9/3, please go to your scheduled EE445L lab sessions in ENS252A to get a demonstration of the lab equipment.  If you do not already own a TM4C123 or TM4C1294 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. In other words, please type your software into the PC before lab. Attendance in lab is required. All software for lab, and tests must include comments. All hardware must include R&C values specifying tolerance and type (e.g., 5% carbon), and chip numbers (be very specific e.g., INA122P). Pin numbers are required 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 December 5, 2pm.

This is an approximate schedule, please check the website for the latest version.

Week Chapter Topic
8/27 1, 2 Arm Cortex M architecture, features of the TM4C123, fixed-point
9/1 2, 3 Lab environment, Lab1 project , example decimal fixed point, debugging techniques, call graphs, flow charts, data flow graphs, Lab2 project, debugging techniques, and programming style, dumps, monitor
9/8 2,3, 4,5 Draw pictures showing elements on the stack for uVision compiler, show stack frame during interrupt service, debugging from an assembly language perspective, real time systems. Interface binary switch using pull-up resistor to an input port, draw flowchart of SysTick project, profiling with the scope showing just how small a percentage of time is spent in the background, globals/locals, static variables, threads, draw thread trace
9/15 9 Profiling, LCD Displays, blind cycle versus busy-wait synchronization, show how to maintain time of day in Timer, allocation of tasks between the foreground and background. Digital logic, input/output voltage/current, NPN transistor interface of a speaker, capacitive and inductive loads
9/22 4,5 Motors, PWM, input capture,  interface electronics (L293, TIP120, IRF540), snubber diodes, integral control
 9/29 8, 9 SSI/DAC interface, signal generation, Timer interrupts, real-time systems, MC34119 audio amplifiers
10/6 9 Sound waves – Quiz 1 review , Quiz 1 
10/13 9 Embedded system layout, power, clock, reset, packaging
10/20 9 Low power design, Guest lecture, Resistance bridge, instrumentation amplifier, Butterworth filters
10/27 8 Data Acquisition Systems, Nyquist Theorem, Aliasing, FFT
11/3 10 Sampling Jitter, Input capture
11/10 4 Fifo queue analysis and robust software, MSP430
11/17 11 Communications Quiz 2 review , Quiz 2
11/24 11 Wifi, Wireless communication
12/1

 

Legal Stuff: The 12th class day is September 12. 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 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 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 University Honor Code is "The core values of the University of Texas at Austin are learning, discovery, freedom, leadership, individual opportunity, and responsibility. Each member of the University is expected to uphold these values through integrity, honesty, trust, fairness, and respect toward peers and community."  http://registrar.utexas.edu/catalogs/gi09-10/ch01/

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.

Request samples (DIP or PDIP package) The parts labeled 1) 2) 3) 4) will be requested for you. In other words, we will make one request for the entire class. However, keep these web sites in mind as you design your Labs 8, 9,11. You will order something as part of Lab 6.  Do not order anything now; wait until you design Lab 8, and then order what you need. You will need to register with an official University email address (e.g., YourName@mail.utexas.edu) rather than a junk email address (e.g., aol.com or gmail.com). For general information on 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


http://www.maxim-ic.com/ Maxim IC

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)
 

http://www.ti.com  Texas Instruments
1) INA122P rail-to-rail instrumentation amp
2) OPA2350PA rail-to-rail dual op amp
3) LM4041CILPR adjustable shunt reference
4) TLV5616CP 12-bit DAC (or TLV5616IP )
TLC2272ACP rail-to-rail dual op amp
TLC2274ACN rail-to-rail quad op amp
 

http://www.samtec.com/   SamTec connectors
10-pin LCD connector, BCS-110-L-S-TE (need 1 for the ST7735 LCD to connect to PCB)  

Instructions for soldering pins onto the TM4C1294: TM4C1294soldering.pdf
You will need two Samtec 49 by 1, right angle pin headers
    TSW-149-09-L-S-RE and TSW-149-08-L-S-RA or
    TSW-149-09-F-S-RE and TSW-149-08-F-S-RA

Search engine for parts http://octopart.com/

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/ http://www.mouser.com/ http://www.newark.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
http://users.ece.utexas.edu/~valvano/research    

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/.