Microprocessor-Based Systems (E155)
Fall 2014
Syllabus

Teaching Staff

Professor: Josef Spjut jspjut@g.hmc.edu
Parsons 2364 Office Hours by Appointment
Professor: Matthew Spencermspencer@g.hmc.edu
Parsons 2360 Office Hours by Appointment
Lab Tutors:Eric Storm Josh Sanz Gourav Khadge

Schedule

Lecture: MW 1:15-2:30
Lab Tutor Hours:uPs Lab, Sat. 11-1; Sunday 3-5pm, 7-9pm
Lab Checkoffs: M 2:45PM - 5:30PM, T 1:15PM-4:30PM, uPs Lab

Class Materials and Computer Accounts

Harris & Harris, Digital Design and Computer Architecture, 2nd Ed., Morgan Kaufmann, 2012 has some good sections on embedded interfaces in chapter 8, but is not required for the course.

The MicroMudd32 board is required. You will need to put $80 Claremont Cash on your card to buy the board, see Sydney in the Engineering office to get a receipt and give the receipt to Sam to get your parts kit.

You also will need a Harvey Mudd College computer account to complete your labs. If you are not a HMC student, email your full name and school affiliation and we will request an account for you. Your lab work will primarily be performed in the MicroPs lab where 10 stations are available. The ECF may be used for some parts of the labs, but hardware and power supplies that originated in the MicroPs lab should remain in the MicroPs lab.

Some software may also work on your personal computer or laptop, but we only guarantee support for the tool chain in the lab.

If you have issues with the software or computer systems, contact the system administrator, Willie Drake. He can often be found in his office inside the ECF, and after-hours contact information is typically posted on his door.

Electronic Communication

Class Web Page:http://www3.hmc.edu/~jspjut/class/f2014/e155
Class Email List:eng-155-1-l@hmc.edu or eng-155-2-l@hmc.edu
Piazza Page: https://piazza.com/hmc/fall2014/e155

Be sure you are on the class mailing list. You should have received email before the beginning of classes. If you did not receive mail, add yourself to the list or risk missing important late-breaking announcements. To subscribe, send email to listkeeper@hmc.edu with one line in the body:

subscribe eng-155-1-l

Alternatively, if you have an electronic version of the syllabus, you can click this paragraph to have your mail client autocomplete the email for you.

Piazza is a an online question and answer forum which we hope will encourage student collaboration and provide quicker technical support. Students are able to post questions which can be answered by other students or staff. We encourage you to sign up for this service and give it a try.

Course Objectives

Grading

Labs: 50%
Final Project:45%
Activities: 5%

Labs

Labs are graded on a 9-point scale. 3 points are given for the system meeting its specified requirements. Up to 3 more points are given for the cleanliness of implementation (simple, elegant, well-commented code, clean wiring) on the scale of 1 = marginal, 2 = good, 3 = exceptional. Another 3 points are given for answering a “fault tolerance question,” with 3 points for a correct answer to the first question, 2 for a second try, and so forth.

Lab checkoffs are to be completed during your scheduled time on Monday or Tuesday of the week the lab assignment is due. As many people have scheduling conflicts with the planned lab times, the checkoffs will be scheduled using the following spreadsheet. If you are late for your appointed time, you may be given a 0 for the lab.

No late labs will be accepted. Late labs are not accepted, but your lowest lab score will be dropped before the average is calculated. If you are sick or have an emergency one week you can drop that lab. However, all labs must still be completed by the project proposal deadline, even if you drop the score.

Labs are done individually. You are welcome to discuss them with other students or the instructor after you have made an effort by yourself. Please list the names of other students you have worked with. However, you should turn in your own work, not work identical to that of another person. Specifically, you should write your own code without a directly referencing any other person’s code. A direct reference means looking at other code while you write yours, being in close enough verbal contact that each line of your code is specified, or any other similar “borderline copying” behavior.

It is an honor code violation to simply copy someone else’s work on the labs. Solutions to past years labs have been handed out. Obviously, it is also an honor code violation to refer to these solutions while doing your lab.

In the past, some students have copied all of the files in other projects to try to resolve CAD tool issues. After copying the project, they have modfied or replaced a subset of the files to complete the lab. We really don’t like this, and would much prefer that the CAD tool issues were resolved through any available communication channel. However, we will accept a project constructed in this way as long as there is are clear written explanations of why the lab copy was necessary, and comprehensive lists of which files are original creations of the student and which have been copied. These projects will receive a score penalty: get started early to scare off CAD tool bugs and avoid this problem.

As the labs typically involve iterating on your design and modifications from a functional prototype towards adding more features as you develop them, it is extremely useful to maintain your source files using some form of version control. Doug Hu has developed an excellent tutorial on the git software version control system that you can find on Charlie at charlie.ac.hmc.edu/Clinic/Engineering/Tutorials/Tutorial-Files-2013/GitVersionControl. You are strongly encouraged to use git or some other form of version control for you labs as it will prevent many headaches from broken updates, and will make it natural to develop as a team when it comes time to work on the project.

Final Projects

The final project will be done in groups of two. Many more detaills about it will be discussed in class and can be found on the course website. Start forming teams and brainstorming interesting electronics projects now!

Over the course of the project you will be graded on five submissions: a project proposal, a status report, a project presentation, a project checkoff, and a final report. Each will be about equally weighted.

Activities

In class activities, productive participation on Piazza, and other activities will have a small influence on your grade.

Academic Dishonesty

Suspected cases of academic dishonesty will be reported to the Judiciary board. Please respect your colleagues and especially your own learning by not cheating.

Be especially mindful of the risk of academic dishonesty when you discuss code or techniques with other students as described in the lab section. If you are in doubt about whether an act is dishonest, then consult a professor.

Disability Accomodation

Students requiring specific accomodations for a phyiscal, psychological, medical or learning diability should contact HMC’s Dean of Students. She will review your concerns and determinte, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Tentative Schedule

Below is our best guess at a schedule for the semester. Lecture topics may change depending on the pace of the class. Deadlines will not except in extreme circumstances, and any motion of a deadline will be announced electronically and in class.




Monday

Wednesday

Friday




Sep 1st

Labor Day

3rd 1

Class Intro

5th




8th 2

Logic Design

10th 3

Logic Design

12th




15th 4

Last Day to Add Classes

FPGA
Lab 1 Due - FPGA Board

17th 5

FPGA Datasheet

19th




22nd 6

Synchronous Logic Design
Lab 2 Due - 7Seg Displays

24th 7

FSM Design

26th




29th 8

PIC Assembly
Lab 3 Due - Keypad

Oct 1st 9

PIC Programming

3rd




6th 10

PIC Hardware
Lab 4 Due - Assembly

8th 11

PIC Interfacing

10th




13th 12

C Programming
Lab 5 Due - Audio

15th 13

C Examples

17th




20th

Fall Break

22nd 14

Project Kickoff

24th




27th 15

VGA Graphics
Lab 6 Due - Wireless

29th 16

USB,PCI

31st




Nov 3rd 17

DAC
Lab 7 Due - VGA & USB

5th 18

Project Proposal Due

Motors, speakers

7th




10th 19

Network

12th 20

SATA

14th




17th 21

FLASH memory

19th 22

DDR3

21st




24th 23

Status Report Due

Presentations

26th 24

Presentations

28th

Thanksgiving




Dec 1st 25

Presentations

3rd 26

Presentations

5th




8th 27

Final Report Due

Project Checkoffs

Interview Questions

10th 28

Public Demonstration

Project Demos

12th

Last Day of Classes