Microprocessor System Design
EECS 346 - Spring 2018

Time and Location

10-10:50 MTuWF
Tech LG66

Instructor

Josiah Hester
Email: josiah at northwestern dot edu
Office: L389 Tech
Office hours will generally be held in the lab (hours TBD): CG30 Tech
...or by appointment if needed in my office: L389 Tech.

Course Schedule

Assignments, resources, and readings will be posted on the course schedule, found at the following:
http://users.eecs.northwestern.edu/~josiah/eecs346/schedule.html

The schedule and syllabus (this site) are a living document and I will be updating the content throughout the quarter. Please check it regularly.

Course Resources

  • Course website on Canvas
  • 8051 Simulator: EDSIM51
  • 8051 Beginner Guide
  • 8051 Instruction Set
  • Pinouts (8051, 2864, others)
  • How to Use a Breadboard (Sparkfun)
  • How to Read a Schematic (Sparkfun)
  • Working with Wire (Sparkfun)
  • Course Description

    The purpose of this course is to teach how to design systems based on microprocessors. The design of such systems requires a general knowledge of the structure of microprocessors, how they are programmed, what kinds of circuitry are needed to put around the basic microprocessor chip to interface to other devices, what other kinds of devices (memories, transmission devices, sensors, controllers, etc.) are used to build systems, and how all of these have to interact with each other in terms of both signals and timing. We assume a basic knowledge of digital design (gates, simple digital logic and the like) as well as knowledge of programming at both the assembly level and higher level. No knowledge of electricity beyond a primitive understanding of voltage and current is required.
    This course complements the various courses in computer architecture and engineering by focusing at the microprocessor system level. Other courses deal with gate-level design of registers (202, 203), large-scale design of integrated VLSI circuits (357) and the design of the computer itself (362 and 362). THis course assumes the existence of the chips and studies how these are put together to make computer-based systems.
    Very often microprocessor-based systems are intended as one part of a larger system and not as the end products in and of themselves. Such systems are called embedded systems and include things like controllers for automated assembly lines, stop-and-go light controllers for complex intersections, point-of-sale systems, robot controllers or subsystems, and many more. Because of this, it is important to understand not only how to put a microprocessor together with memory but also how to have the system interact with external devices and systems.
    At the end of this course you should be able to design microprocessor-based systems either from scratch (i.e., using the basic processor circuits and related circuitry) or from commercially available single-board computers (SBCs). You should have the knowledge to evaluate and choose an appropriate microprocessor, to identify and locate required additional circuitry (both processor related like memory and non-processor related like converters, decoders, display drivers and the like), to determine how to put these together to make a system and to develop the software to go along with the application.
    This course is structured around four activities: lectures, labs, homework, and exams.

    Text

    Reading material for the course will come from the instructor or be pointed out online.
    Recommended Reading: Mohammad Ali Mazidi and‎ Janice G. Mazidi . The 8051 Microcontroller and Embedded Systems: Using Assembly and C. Prentice Hall. 978-0138610227. (1999, 435 pages). Generally regarded as the definitive book on microprocessors; especially the 8051.

    Prerequisites

    EECS 203 and EECS 205. Basic digital integrated circuits - AND/OR/NOT gates, latches, demultiplexor. Basic structure of a processor - arithmetic registers, address registers, basic addressing modes. Basic assembly language programming.

    Grading

    10% - Homework
    30% - Labs
    30% - Midterm Exam
    30% - Final Exam
    A final score of 95% will get you an A, 85% = B, 75% = C. Grades are not curved. It is possible for everyone to get an A.

    Email Policy

    I get a ton of email and use filtering to keep things sane. Please include the string, "346" somewhere in the subject line of all class-related emails. During normal working hours (9-5) on week days I check email frequently and I will make every effort to respond soon (hopefully the same day). I do check email on weekends and evenings, but not nearly as frequently. So, you should expect longer delays.

    Readings

    I will assign readings and other exploration activities from the text and online sources for most class meetings. I expect readings to be completed before class meetings.

    Homework

    There will be several homework assignments (probably 6). They must be submitted electronically (via Canvas) by 8:00 PM on the due date. I don't accept late work, period. These assignments should be completed without help from others and entirely your own work.

    Labs

    The 346 lab project is a sequence of assignments in which each student independently builds an entire product on a breadboard. There will be 4-5 separate assignments in which the design and implementation of the product are broken into manageable, logical steps. See more details about the labs in this PDF document.

    Exams

    Two exams: a midterm and final. There will be one midterm exam given around mid-quarter. The final exam will be cumulative. The location and time will be posted on the course schedule.

    Late Work

    Work will not be accepted late. If you have a well documented, unforeseeable, and unavoidable crisis, please come talk to me about it, as early as possible.

    Attendance Policy/Participation

    Students may leave after 15 minutes if the professor or guest lecturer does not arrive within that time.

    Students with Disabilities

    In accordance with the University’s policy, I will do my best to provide reasonable accommodations to students with disabilities. Students should contact Student Disability Services and myself to discuss their individual needs for accommodation as early as possible — at least a week before special accommodations are needed.

    Academic Integrity

    Integrity, honor, and dignity are fundamental characteristics of the engineering profession. Engineers strive to exhibit these characteristics while using their knowledge, skills and experience to improve the world around them.
    Violations of academic integrity, including copying on reading response, plagiarism, and anything violating the Academic Integrity policies of Northwestern University, will be taken extremely seriously and will be reported. Violations will also result in a zero grade on the assignment and will most likely result in a failing grade in the course.
    Just don’t do it.