CS/ECE 5780/6780 - Embedded Systems Design - Spring 2012¶¶
- CS/ECE 5780/6780 - Embedded Systems Design - Spring 2012
- Announcements
- Course Administrativa
- Course Description
- Course Calendar
- Syllabus (Tentative)
- Prerequisites
- CS/ECE 5780
- CS/ECE 6780
- Policies
- Grading
- Resources
- ARM Documentation
- Actel/Microsemi Documentation
- Documentation on the Class Hardware & Software
- Toolchain Documentation
- Books on Embedded Systems
- Verilog Tutorials
- Additional Documentation
- Websites for Parts
- Similar Courses
- Old CS/ECE 5780/6780 Websites
- Support
- Acknowledgments
- Attached Files
Announcements¶¶
Last Updated 8 months ago
4-24-2012 - Final Project Videos
Course Administrativa¶¶
Course:
CS/ECE 5780/6780, Spring 2012, 4 Units
Instructor:
Thomas Schmid
TAs:
Jinpeng Lv
Xueyan Duan
Homepage:
http://wiesel.ece.utah.edu/redmine/projects/ece5780-s12/wiki
Mailing List:
ece5780s12@list.eng.utah.edu Everyone enrolled in the class should subscribe to the list https://sympa.eng.utah.edu/sympa/info/ece5780s12
Meetings:
T,H 12:25 PM - 1:45 PM WEB 1250
Labs: MEB 2265
Session 1: Tuesday 2pm-5pm
Session 2: Wednesday 8am-11am (canceled)
Session 3: Wednesday 2pm-5pm
Session 4: Thursday 8:00am-10:30am
Office Hours:
Wednesday, 1pm - 2pm
Text Book:
There is no required textbook that we will follow. See the Resource section below for many online texts that will be used throughout the course.
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, Microsemi 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 projects 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.
Course Calendar¶¶
Syllabus (Tentative)¶¶
| Mtg | Date | Lecture | Files | Speaker(s) | Lab | HW |
| ARM System Architecture | ||||||
| 1 | Jan 10 | Introduction, Architecture lec1.pdf | Etherpad | Schmid | Lab 0: Start with HW1.1 | HW1.1: Reading Datasheets and Creating a Schematic Due: 1/12/12 @11:59pm Video Walkthrough |
| 2 | Jan 12 | no class, sick | Schmid | |||
| 3 | Jan 17 | Architecture, Assembly lec2.pdf | Etherpad | Schmid | Lab 1: FPGA + Hardware Tools Lab 1 Answer Sheet |
HW1.2: Creating a PCB, Gerbers, and verification |
| 4 | Jan 19 | ISA, Assembly, Toolchains lec3.pdf | Etherpad | Schmid | ||
| 5 | Jan 24 | Memory and I/O Architecture lec4.pdf | Etherpad | Schmid | Lab 2: MCU + Software Tools Lab 2 Answer Sheet |
|
| 6 | Jan 26 | Memory/Peripheral Bus: AMBA lec5.pdf | Etherpad | Schmid | ||
| 7 | Jan 31 | Memory-Mapped Peripherals lec6.pdf | Etherpad | Schmid | Lab 3: Memory and Memory-Mapped I/O Lab 3 Answer Sheet |
|
| 8 | Feb 2 | Interrupts, ARM NVIC lec7.pdf | Etherpad | Schmid | ||
| Peripheral Interfacing | ||||||
| 9 | Feb 7 | Interrupts, ARM NVIC (cont) lec7_2.pdf | Etherpad | Schmid | Lab 4: Interrupts Lab 4 Answer Sheet |
Homework 2, due Feb 16th hw2.pdf You can find some hints here Hw2 HW2 Solution hw2_solution.pdf |
| 10 | Feb 9 | Timers lec8.pdf | Etherpad | Schmid | ||
| 11 | Feb 14 | Memory Technologies lec9.pdf | Etherpad | Schmid | Lab 4: Interrupts Wrap Up Lab 4 Answer Sheet |
|
| 12 | Feb 16 | Serial busses: UART, SPI, and I2C lec10.pdf | Etherpad | Schmid | ||
| 13 | Feb 21 | ADCs/DACs lec11.pdf | Etherpad | Schmid | Lab 5: Timers and Counters Lab 5 Answer Sheet |
|
| 14 | Feb 23 | Sensors and Actuators lec12.pdf | Etherpad | Schmid | ||
| 15 | Feb 28 | Project Overview ECE_CS_Project_S12_Slides.pdf Projects_Handout_S12.pdf | Etherpad | Schmid | Lab 5: Timers and Counters Wrap Up Lab 5 Answer Sheet |
|
| 16 | Mar 1 | Midterm Exam | ||||
| Projects & Selected Topics | ||||||
| 17 | Mar 6 | Wireless Communications | Lab 6: Serial Bus Interfacing Lab 6 Answer Sheet |
|||
| 18 | Mar 8 | NO LECTURE: Project Meetings | ||||
| 19 | Mar 13 | Spring Break | No Lab. Work on Projects. | |||
| 20 | Mar 15 | Spring break | ||||
| 21 | Mar 20 | D. Crane: F-16 F16_EmbeddedPresentation.pdf M. McCracken: XBee xbee_wifi.pdf |
Lab 7: Data Converters Lab 7 Answer Sheet |
|||
| 22 | Mar 22 | No Class | ||||
| 23 | Mar 27 | A. Forys: Tegra3 J. Davies: CC430 |
Projects | |||
| 24 | Mar 29 | W. Lutz: GreenPack mcu_presentation.pdf S. Teli: SDR on SmartFusion |
||||
| 25 | Apr 3 | M. Thueson: Beagle Board beagle_board.pdf B. Buckley: Teensy teensy.pdf |
Projects | |||
| 26 | Apr 5 | J. Christianson: Kindle/eInk/LCD Tech kindle_eink.pdf P. Saebi: TI DSP C5535 ezDSP |
||||
| 27 | Apr 10 | No Class, ECE Technical Open House | Projects | |||
| 28 | Apr 12 | J. Kindseth: Parallax MCU | ||||
| 29 | Apr 17 | Projects | ||||
| 30 | Apr 19 | |||||
| 31 | Apr 24 | Last Day of Lecture, Project Videos | Projects | |||
| 32 | Apr 26 | Reading Day | ||||
| 33 | May 1 | Final Exam Week, Project Demos | ||||
Prerequisites¶¶
CS/ECE 5780¶¶
- CS/ECE 3700 OR ECE/CS 3810 (Computer Organization)
- CS 2000 (Introduction to Program Design in C), CS 1410 ( Introduction to Object-Oriented Programming), OR CS 4400 (Computer Systems)
CS/ECE 6780¶¶
- You have to be enrolled as a CS or ECE graduate student.
Policies¶¶
- The College of Engineering guidelines.
- The University of Utah's Student Code covers cheating and other student conduct policies, also see lecture 1 notes.
Grading¶¶
| Item | Weight | Description |
| Labs | 28% | 7 labs, 4% each |
| Project | 25% | Group project demonstrating understanding of major topics. |
| Exams | 22% | Two exams: Midterm (10%); Midterm 2 (12%) |
| Quizzes | 10% | Approximately four 1-minute quizzes given at random (coin-flip) |
| Homework | 10% | Two or three homework assignments weighted roughly equally. |
| Presentation | 5% | Group presentation to instructional staff on project status. |
Resources¶¶
ARM Documentation¶¶
| ARMv7 Architecture Reference Manuel | ARMv7-M_ARM.pdf |
| ARM Cortex-M3 Embedded Software Development (AN-179) | ARM_Cortex_AppNote179.pdf |
| ARM and Thumb-2 Instructrion Set Quick Reference Card | ARM_QRC0001_UAL.pdf |
| ARM Architecture Procedure Call Standard (EABI) | ARM-AAPCS-EABI-v2.08.pdf |
| ARM Cortex-M3 Technical Reference Manual v2.1 | ARM-Cortex-M3-TRM-v2.1.pdf |
| AMBA® 3 AHB-Lite Protocol | ARM_IHI0033A_AMBA_AHB-Lite_SPEC.pdf |
Actel/Microsemi Documentation¶¶
| SmartFusion DataSheet | SmartFusion_DS.pdf |
| SmartFusion MSS User Guide | SmartFusion_MSS_UG.pdf |
| SmartFusion Analog User Guide | SmartFusion_Analog_UG.pdf |
| SmartFusion Fabric User Guide | SmartFusion_Fabric_UG.pdf |
| Microsemi A2F Eval Kit User Guide | A2F_EVAL_KIT_UG.pdf |
Documentation on the Class Hardware & Software¶¶
Toolchain Documentation¶¶
| CodeSourcery Getting Started | CodeSourcery_Getting_Started_Guide.pdf |
| GNU Assembler | Assembler.pdf |
| GNU Compiler | Compiler.pdf |
| GNU Linker | Linker.pdf |
| Linkers and Loaders | http://www.iecc.com/linker/ |
| GNU Debugger | Debugger.pdf |
| GNU Binary Utilities | Binary_Utilities.pdf |
Books on Embedded Systems¶¶
Verilog Tutorials¶¶
- Quickref: VerilogQuickRef.pdf
- Combinational Logic
- Sequencial Logic
- Samples
- Examples
- Asic-World.com
- Icarus
- Language Reference
Additional Documentation¶¶
- "PCB Design Tutorial" by David Jones PCBDesignTutorialRevA.pdf http://www.eevblog.com/
- Why you shouldn't make 90Deg Angles on PCBs
- Brushed DC Motor Fundamentals
- Sourcery CodeBench Lite
- How to get your Altium Board into a panel: Design for Manufacturing (DFM); by David Jones; EEVBlog
- Need a 3D model for that part? Check out 3DContentCentral
- See how a pro (David Jones) layouts a power supply in Altium Designer, and what he was thinking during the process
Websites for Parts¶¶
Similar Courses¶¶
- EECS 373: Design of Microprocessor-Based Systems - Fall 2010
- EECS 373: Design of Microprocessor-Based Systems - Winter 2011
- EECS 373: Design of Microprocessor-Based Systems - Fall 2011
- EECS 373: Design of Microprocessor-Based Systems - Fall 2010 - Labs
Old CS/ECE 5780/6780 Websites¶¶
Support¶¶
| This material is based upon work supported by the National Science Foundation under grant #1111541. 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 uses 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 Microsemi Corporation, including the SmartFusion MCU+FPGA development boards and the Libero Gold and Platinum software development tools. | |
| This course and lab uses hardware and software provided by Texas Instruments, including the TI CC2520 Radio and Beagle Boards. |
Acknowledgments¶¶
This course is modeled after the University of Michigan's EECS 373 class taught by Prabal Dutta. I helped to refresh this course during my postdoctoral studies in Fall 2010, mostly working on the labs. Many of the lecture slides and materials were created by Prabal, and this course would not exist in its form without him. Thanks also goes to Matt Smith and Mark Brehob and the TAs that made this class happen.