EECS 373: Design of Microprocessor-Based Systems
|
|
[Administrivia]
[Description]
[Prerequisites]
[Policies]
[Grading]
[Syllabus]
[Resources]
[Support]
|
|
Announcements
- 12/13/2012:Poster Demo/Session. The Teams:
- SIXAXIS Quadcopter by Mark Aliwati, George Allen, and Cory Gordinier (YouTube, PDF)
- A-MAIZE-ING by George Basil and Kevin Chyn (YouTube, PDF)
- Cadence Music Visualizatio by Jonathan Bendes and Jason Shintani (YouTube, PDF)
- Window Security System by William Beyer and Carl Stanfield (YouTube, PDF)
- B.R.A.D. Attack Turret by David Cesiel, Ryan Heise, Brian Schlenker, and Ansgar Strother (YouTube, PDF)
- Remote Power Delivery by Joshua Cronk and Matthew Lindner (YouTube, PDF)
- Passive Power Meter by Shane DeMeulenaere, Nate Heidt, and Sarah Spitzer (YouTube, PDF)
- Knocker Unlocker by Matt Diffenderfer and Ajay Suresh (YouTube, PDF)
- Real-D Pong by Paul Doerr and David Reddmann (YouTube, PDF)
- Autonomous Life Raft by Jakob Hoellerbauer, Farhan Hormasji, and Matthew Maertens (YouTube, PDF)
- Portfish by Keith Porter (YouTube, PDF)
- BlueCar by Kaiyu Yan, Tianhua Zhang, and Guanye Zheng (YouTube, PDF)
- 12/11/2012: Poster/Demo Session in Tishman Hall on 12/13 from 4:00-6:00 PM.
- 12/11/2012: Student talks posted to syllabus.
- 11/28/2012: Final Exam to be on 12/18 in 1200 EECS from 4:00-6:00 PM.
- 11/12/2012: Homework 4 (Presentations) posted. Due on 11/27 at 10:40 AM. Useful reading.
- 10/30/2012: Homework 3 (PCBs) posted. Due on 11/6 at 10:40 AM.
- 10/26/2012: List of sponsored projects posted. Email prabal if you're interested.
- 10/23/2012: PowerCube animation.
- 10/11/2011: Homework 2 (practice midterm) posted. Due on 10/18 at 10:35 AM sharp.
- 10/03/2012: Roadmap to the EECS 373 resources posted.
- 10/02/2012: Toolchain Notes updated.
- 09/29/2012: Toolchain Notes posted.
- 09/25/2012: Homework 1 posted. Due Oct 4, 2012, at
10:40am sharp.
- 09/04/2012: Welcome to EECS 373!
Course Administrivia
Course:
EECS 373, Fall 2012, 4 Units, CN: 10623
Instructional Staff:
Prabal Dutta (Instructor)
Matt Smith (Lab Instructor)
Andrew Curtain (IA)
Elliot Fish (IA)
Constantine Ioannou (IA)
Homepage:
http://www.eecs.umich.edu/~prabal/teaching/eecs373
Lab Bug Website:
Google
Doc
Lecture:
1690 BBB
Tue/Thu: 10:30 AM - 12:00 PM
Lab:
2334 EECS
Tue: 3:00 PM - 6:00 PM (CN: 10625)
Wed: 3:00 PM - 6:00 PM (CN: 10626)
|
|
Course Description
This class is focused on the principles and practices of modern
embedded systems design. In class, we will focus on computer
architecture beyond the CPU, fundamentals of the hardware/software
interface, techniques for sensing and controlling the physical world,
and a few other topics. In lab, we will focus on the ARM Cortex-M3,
Actel FPGAs, and other supporting hardware, to learn how to design,
build, and program embedded systems. Labs during the first half of
the course will focus on essential topics. The second half of the
course will focus on the design and implementation of non-trivial,
open-ended project involving both hardware and software. The labs and
project will require a substantial amount of time -- this is a
lab-intensive class with a heavy workload.
Syllabus (Tentative)
Day |
Date |
Topic |
Lead(s) |
Lab
|
ARM System Architecture
|
1 |
Sep 4 |
Introduction, Architecture
(PPT)
|
Dutta |
Lab 1: FPGA + Hardware Tools
|
2 |
Sep 6 |
Architecture, Assembly
(PPT)
|
Dutta |
3 |
Sep 11 |
ISA, Assembly, Toolchains
(PPT)
|
Dutta |
Lab 2: MCU + Software Tools
|
4 |
Sep 13 |
ABI, Memory, and I/O
(PPT)
|
Dutta |
5 |
Sep 18 |
Memory/Peripheral Bus: AMBA
(PPT)
|
Dutta |
Lab 3: Memory and
Memory-Mapped I/O
|
6 |
Sep 20 |
Memory-Mapped Peripherals
(PPT)
|
Dutta |
7 |
Sep 25 |
Interrupts, ARM NVIC
(PPT)
|
Dutta |
Lab 4: Interrupts
|
8 |
Sep 27 |
Timers
(PPT)
|
Dutta |
Peripheral Interfacing
|
9 |
Oct 2 |
Memory Technologies
(PPT)
|
Dutta |
Lab 5: Timers and Counters
|
10 |
Oct 4 |
Serial buses: UART, SPI, and I2C
(PPT)
|
Pannuto |
11 |
Oct 9 |
ADCs/DACs
(PPT)
|
Dutta |
Lab 5: Timers and Counters (wrap up)
|
12 |
Oct 11 |
Catch up and Review
|
Dutta |
13 |
Oct 16 |
NO LECTURE: Fall Study Break |
|
Lab 6: Serial Bus Interfacing
|
14 |
Oct 18 |
Midterm 1 |
|
15 |
Oct 23 |
Project Overview
(PDF)
|
Smith |
Lab 7: Data Converters
|
16 |
Oct 25 |
PCB Design
(PPT,
Tutorial,
Reference)
|
DeBruin |
Projects
|
17 |
Oct 30 |
Project Pitches |
Students |
Projects
|
18 |
Nov 1 |
ARM Architecture Guest Lecture
(PPT)
|
Aldworth |
19 |
Nov 6 |
Project Pitches |
Students |
Projects
|
20 |
Nov 8 |
NO LECTURE: Project Meetings |
|
21 |
Nov 13 |
NO LECTURE: Project/Presentation Meetings |
Staff |
Projects
|
22 |
Nov 15 |
23 |
Nov 20 |
Topic TBD |
Dutta |
Projects |
|
Nov 22 |
NO LECTURE: Thanksgiving Break |
|
NO LAB: Thanksgiving Break |
24 |
Nov 27 |
Imagers,
Radios,
Bikeshare,
Quadcopters
|
Students |
Projects
|
25 |
Nov 29 |
NO LECTURE: Project Meetings |
|
Projects
|
26 |
Dec 4 |
Toolchains,
Harvesting,
Algorithms,
Kinect
|
Students |
Projects |
27 |
Dec 6 |
NO LECTURE: Project Meetings |
|
Projects |
28 |
Dec 11 |
FRAM,
IoT,
Gyros,
Motor Control
|
Students |
Projects |
29 |
Dec 13 |
Demo & Poster Session
4:00-6:00pm
Tishman Hall (BBB 1st Floor)
|
Students |
Projects |
30 |
Dec 18 |
Final Exam 4:00-6:00pm 1200 EECS
|
Students |
NO LAB |
Prerequisites
The curricular prequisites for this class include EECS 270
(Introduction to Logic Design), EECS 280 (Programming and
Introductory Data Structures), and EECS 370 (Introduction to
Computer Organization). The
course
bulletin outlines the contents of these courses. In general,
students are expected to have a firm grasp on combinational and
sequential logic design, be familiar with assembly language
programming (for some architecture), be proficient in C programming,
and know theirway around the elements of a computer. In addition,
success in this course will require substantial reading and hacking,
and students will need a high degree of patience and determination.
Policies
Honor Code.
The
Engineering Honor Code applies to all assignments and exams.
Learn Concepts Together through Discussion. Verbal
collaboration between members of different groups is permitted for the
purpose of helping classmates to understand concepts essential to the
labs or providing one another with insights into the best way to
approach the in-lab assignments.
Do Your Own Work. Individual assignments (e.g., prelabs,
homeworks, and exams) are to be performed on your own. Group
assignments (e.g., labs, lab reports, and postlabs) are to be
performed only by members of the group. Non-verbal collaboration
(e.g. drawing sample schematics on paper or the whiteboard, sharing
schematics or code) is not allowed. You may not help debug another
group's hardware or software without consent from the lab or course
instructor. You are also not allowed to possess, look at, use, or in
any way derive advantage from the existence of code, lab reports, or
other material prepared in prior years.
Attend Your Registered Lab. You are expected to attend the lab
section for which you are registered. If you would like to switch lab
sections, but the section you want is full, you must find someone in
that lab section to swap positions with you. Once you have agreed on a
swap, send email to Matt Smith. All section swaps must be completed
before the second week of lab.
Prelabs. Prelabs are due in lab during the week the lab is to
start. All prelabs must be turned in within the 20 minutes after the
offical start of lab (on the half hour) (to allow for tardiness,
printing problems, etc.) or you will only get 50% of the credit
otherwise earned. Prelabs more than one week late will earn no
credit. For any labs which span multiple weeks, the prelab is due
during the first week of that lab. Prelabs are to be done individually
unless otherwise specified in the lab itself.
Postlabs. Postlabs are due in lab the week after the last week
of that lab. They are due 20 minutes after the start of that lab
period. Just like prelabs, late labs earn only 50% of the credit
otherwise earned and postlabs which are more than one week late get no
credit. Postlabs are to be done by the group unless otherwise
specified in the lab itself.
In-Labs. In-labs are due by Friday of the last week of the lab
in open lab hours (you are welcome to turn it in before this and most
students do). One of the lab instructors must sign your in-lab form
by that time for the in-lab to be on time. You should hand in the
signed (and dated) in-lab form with your postlab. Late in-labs lose
10% of their value per business day (Monday though Friday not
including holidays) they are late. You may only work with your lab
group (generally one other person) on your in-lab.
Grading
Item |
Weight |
Description |
Labs |
25% |
Eight labs: Lab 3 (4%); All other labs (3%). |
Project |
25% |
Group project demonstrating understanding of major topics. |
Exams |
25% |
Two exams: Midterm (10%); Final (15%). |
Quizzes |
10% |
Approximately seven 1-minute quizzes given at random (coin-flip). |
Homework |
10% |
Two or three homework assignments weighted roughly equally. |
Presentation |
5% |
Group presentation to class. |
Resources
- ARMv7 Architecture Reference Manual
- ARM Cortex-M3 Technical Reference Manual v2.1
- ARM and Thumb-2 Instruction Set Quick Reference Card
- ARM Architecture Procedure Call Standard (EABI)
- ARM Cortex-M3 Embedded Software Development (AN-179)
- Actel SmartFusion MSS User Guide
- Actel SmartFusion Analog User Guide
- Actel A2F Eval Kit User Guide
- CodeSourcery Getting Started
- GNU Assembler
- GNU Compiler
- GNU Linker
- Linkers and Loaders
- GNU Debugger
- GNU Binary Utilities
- Why take an embedded systems course?
- Related Courses:
UCSC,
UCB: EECS 149,
UNL: CSCE 236,
UCSD: CSE 237d,
Utah: CS 5785,
Stanford: EE 281,
Columbia: CSEE 4840,
UW: EE 472,
CU: ECEN 5613,
Lund: EDA 385,
Cornell: ECE 3140,
Cornell: ECE 4760
Support
 |
This material is based upon work supported by the National
Science Foundation under grant #0964120. Any opinions,
findings, and conclusions or recommendations expressed in this
material are those of the author(s) and do not necessarily
reflect the views of the National Science Foundation.
|
 |
This course and lab use hardware and software provided by
Microsemi Corporation, including the SmartFusion MCU+FPGA
development boards and the Libero Gold and Platinum software
development tools.
|
 |
This course and lab use hardware and software provided by
Cypress Semiconductor, including the PSoC 5 First Touch
Starter Kits and Development Kits.
|
 |
This course and lab use hardware and software provided by
Microsoft Corporation, including Windows Mobile phones and
the Microsoft Research Project Hawaii toolkit.
|
|
|
|