CS/ECE 5780/6780

Embedded Systems Design

Spring 2010

NOTE: this webpage will be continually modified as the course progresses - so content and schedule are tentative - you are advised to check it often.

Course description

Introduction embedded system design using microcontrollers. Topics include: microcontroller architecture, embedded software design, interrupt synchronization, timing generation and measurement, serial and parallel I/O interfacing, analog interfacing, digital and analog peripheral circuit design.

Teaching staff & Mailing lists

Instructor: Al Davis (note my web page is way out of date - someday I'll fix it hopefully)

TA's: William Lee & Torrey Atcitty

Course mailing list: cs5780 "at" list.eng.utah.edu

To sign up for this mailing list send email to sympa "at" list.eng.utah.edu from the email account that you want on the list.  The subject line should exactly contain "subscribe cs5780 your_first_name your_last_name" --  without the quotes and using your real names in the place holder slots.  You will receive a reply message saying whether you were accepted or not.  If you have problems send email to teach-cs5780.

Instructor/TA mailing list: teach-cs5780 "at" list.eng.utah.edu

Please send questions for the instructor/TAs to this list.

Lecture, Lab, and Office Hours Schedule

Lectures: T,H 12:25 PM-01:45 PM in WEB 1250

Labs: Labs will be held in the ECE Digital Lab (MEB 2265); also see: lab section assignments are still TBD

    Lab Times:

        Wed - Section 1: 1200 - 1500 (William)
                   Adiga & Sampath
                   Tateoka & Wiser
                   Ayers & McDonald
                   
                   Section 2: 1500 - 1800 (Torrey)
                    Jayachandran & Shrigondekar
                    Anderton & Sheffield
                    Devnani & Singh
                    Jennings & Sobhani
                    Mann & Trinh
                    Thacker & Weber
                    Faerber & Nguyen
                    Behera & Maheshwari

       Fri -    Section 4: 1200 - 1500 (William)
                   Bailey & McDougall
                   Kemp & Zhang
                   Oneida & Tomer
                   Thomsen & Willoughby
                   Yang & Fallatah
                   Jones & Martin
                   Lezin & Rolfe
                   Morley

Al's office hours: after class or by appointment (send email to ald "at" cs.utah.edu)

TA office hours: during lab sections (not yet finalized as noted above)

General Information

Grading

5780 - 60% lab demonstrations and reports  20% midterm 1, 20% midterm 2
6780 - 30% lab demonstrations and reports, 20% midterm 1, 20% midterm 2, 30% project demonstration and report

For each lab total score: 60% will be for the demonstration, 40% for the report

5780 and 6780 students will be graded on a normalized score based on the best 5780 or 6780 student respectively, 90% is an A of some sort, 80% is a B of some sort, and so forth.  If the best student in each class is too good, a reasonable best will be picked as the 100% student.

Current grades can be found here indexed by your secret integer - make sure what we have recorded for you is correct.  No appeals will be considered after April 1 for Labs 1-5 and midterm 1.

Course Schedule (due dates are in red)

Tu Jan. 12 - Course Overview
    reading: none
    lecture slides: 2up, 4up
    HW1:

Th Jan. 14 - Introduction to Embedded Systems
    reading: Chapter 1.1 - 1.3
    lecture slides: 2up, 4up

Fri Jan. 15 @ 2359
    Sign up for the mailing list
   
Tu Jan. 19 - 68HC12 Architecture & Lab 1 Introduction
    reading: Chapter 1.5,1.6,1.8,1.9
    lecture slides: 2up, 4up

Th Jan. 21 - Assembly Language Programming
    reading: Chapter 2.2
    lecture slides: 2up, 4up
    LAB1: Lab1.pdf, Lab1Example.c, hcs12serialmon2r1.zip

    due: sign up for lab session via email to teach-5780
    send team email (both member names & email addresses) to teach cs-5780
    check out your team's lab kit (labs start next week)

Tu Jan. 26 -  Software Design w/ FSM's
    reading: Chapter 2.1,2.3-2.11
    lecture slides: 2up, 4up

    due: Lab1 signed off by your TA this week

Th Jan. 28 - General Software Design
    reading: Chapter 2.4-2.11
    lecture slides: 2up, 4up
    LAB2: Lab2.pdf, Lab2Bits.c, Lab2counter.asm, Lab2LCD.c

Tu Feb. 2 - Interfacing Methods
    reading: Chapter 3.1-3.5 and Debugging embedded C
    lecture slides: 2up, 4up
   
    due: Lab2 signed off by your TA this week, Lab1 reports due to your TA

Th Feb. 4 - Interrupt Synchronization
    reading: Chapter 4.1-4.2
    lecture slides: 2up, 4up
    Lab3.pdf: 4-function calculator RPN calculator

Tu Feb. 9 - FIFO's
    reading: Chapter 4.3
    lecture slides: 2up, 4up

    due: Lab3 signed off by your TA this week, Lab2 reports due to your TA

Th Feb. 11 - Interrupts on the 6812 (lecture by John Regehr)
    reading: Chapter 4.4 - 4.14
    lecture slides: 1up
    LAB4: Lab4.pdf, Grayhill Series 96 keypad data sheet

Tu Feb. 16 - Debouncing Matrix Keypads
    reading: Chapter 8.1, debouncing.pdf
    lecture slides: 2up, 4up

    due: Lab4 signed off by your TA this week, Lab3 reports due to your TA

Th Feb. 18 - Volatile Variables and the Compiler
    reading: none
    lecture slides: 2up, 4up
    LAB5: Interrupt keyboard interface & stopwatch

Tu Feb. 23 - Threads and Scheduling
    reading: Chap. 5.1
    lecture slides: 2up, 4up

Th Feb. 25 - Threads & Semaphores
    reading: Chapter 5.2-5.4
    lecture slides: 2up, 4up

Tu Mar. 2 - Midterm #1

due: Lab5 signed off by your TA this week, Lab4 reports due to your TA

Th Mar. 4 - Review midterm solutions
    LAB6: Semaphores, Threads

Tu Mar. 9 - Input Capture
    reading: Chapter 6.1
    lecture slides: 2up, 4up
    LAB7: Frequency, Duty Cycle

due: Lab6 signed off by your TA this week, Lab5 reports due to your TA

Th Mar. 11 - Output Compare, Pulse Width Modulation, and Pulse Accumulation
    reading: Chapter 6.2-6.5, 6.7
    lecture slides: 2up, 4up

due for 6780 students - informal project proposals (high level description of what you want to do) due via email to ald

Tu Mar. 16 - No Class (major conference week for faculty so catch up so you can enjoy spring break)

due: Lab7 signed off by your TA this week, Lab6 reports due to your TA

Th Mar. 18 - Serial I/O Devices
    reading: Chapter 7.1-7.7
    lecture slides: 2up, 4up

March 23 & 25 - No class - SPRING BREAK

Tu Mar. 30 - SPI basics, SCI Register Configuration and Ritual
    reading: Chapter 7.5
    lecture slides: 2up, 4up
    Lab8: SCI

Th Apr. 1 (no foolin') - Relays & Motors
    reading: Chapter 8.5 - 8.6
    lecture slides: 2up, 4up

Tu Apr. 6 - Tutorial on Relays and motors for those involved in the ECE Open House on Apr. 1
    lecture slides & reading: same as Apr. 1

due: Lab8 signed off by your TA this week, Lab7 reports due to your TA

Th Apr. 8 - External memory: SRAM and DRAM
    reading:  SRAM_datasheet, DRAM_datasheet
    lecture slides: 2up, 4up
    Lab9: Stepper Motor

Tu Apr. 13 - Non-Volatile Memory Technology Overview
    reading: Stan Williams' IEEE Spectrum article on memristors - it's an interesting story.
    lecture slides: 2up, 4up

due: Lab9 signed off by your TA this week, Lab8 reports due to your TA

Th Apr. 15 - DAC's & ADC's
    reading: TBD
    lecture slides: 2up, 4up

Tu Apr. 20 - Midterm #2

due: Lab9 reports due to your TA

Th Apr. 22 - Midterm 2 solutions discussion, class wrap-up

Tu Apr. 27 - 6780 project presentations in the lab
    reading:
    lecture slides: 2up, 4up

W Apr. 28 - Classes end
    due: lab kits returned in clean and operating condition

Other Relevant Reference Material

Microcontroller documentation (MC9S12C32) Microcontroller student learning kit documentation (CSM12C32) Microcontroller project board documentation Codewarrior IDE related documentation

Supplementary Material

Sample Exams