Microcontroller System Design


EE 347


Fall 2009

Announcements:

1. The link to the software (in the first lab) appears to be broken. You are not required to do so, but if you want to either download the software or read the manual you can do so by clicking here. Sorry for the inconvenience.


Instructor Dr. Robert S. Fourney
Email Robert.Fourney@ieee.org
Phone Office: 688-4016 (home number handed out in class)
Office ECS 221
Class Time MWF 2:00-2:50
Class Location ECS Building, Room 218
Office hours TBD
Texts MC68HC11:An Introduction, Software and Hardware Interfacing, 2nd Ed. by Han-Way Huang, published by Delmar Thompson Learning.

In addition to the above text, you should print out a copy of the M68HC11E Series Programming Reference Guide . You should bring a hard copy of this document to every class (and to lab).

You will also want to consult your textbook and other references from your programming course(s)

These texts will be supplemented with additional reference materials which will be linked from this page and/or handed out in class as they are assigned.



Prerequisites
To take this class, you must have earned at least a C in EE 245 and successfully completed either CSc 218 or CSc 250.
Corequisites
EE 347L -- Microcontroller System Design Lab has a separate web page. You will not need to purchase an additional text for this lab.
Course Description
This course serves as an introduction to microcontrollers, using the MC68HC11 as an example.
Course Work

Unless otherwise specified, all work that you submit in this course must be your own; unauthorized collaboration is considered academic dishonesty. Please save us both a lot of trouble by realizing that I will pursue any such transgressions to the fullest extent possible.

As a rule, late assigments are not generally accepted (e.g., attempting to hand in an assigment after the start of class on the due date will result in a grade of 0 for that assignment).

Late assignments will only be accepted under exceptional circumstances AND with prior arrangement. A penalty may apply.

Grading Policy
 Final grades will be determined via the following breakdown:

 
Exam #1 20%
Exam #2 20%
Homework and Quizzes 10%
Class Participation (and quizzes) 5%
Practical Lab Assignments 20%
Lab Project and PDR 15%
Lab Practical Exams(s) 10%

Your class participation grade will be determined by your on time attendance to class as well as your participation in classroom discussions. You will probably need you printed Reference Guide (see above) in order to participate and to receive these points. Pop quizzes, when given, will cover material previously covered in class, previous homework assignments, and/or simple questions on the current days reading assignment.
 

Students are required to make a "good faith effort" on all assignments. Failure to do so will adversely effect the grade beyond the limits listed above. You must earn a grade of C or better in EE 347L this semester in order to pass this class

Please read Making the Grade by Kurt Wiesenfeld and keep his views (which I share) in mind when deciding how much effort to invest in your coursework.

Schedule of Upcoming Classes
No. Date Topic, Reading, and Assignment
1 Sep 2 Introduction

Introduce Reference Guide

Read Chapter 1

Homework # 1 assigned.

Don't forget to write your programs for lab tomorrow.

The link to the software (in the above lab) appears to be broken. You are not required to do so, but if you want to either download the software or read the manual you can do so by clicking here. Sorry for the inconvenience.

2 Sep 4 CPU Registers, machine code, source code, assembly vs higher level language

Through Section 1.5

Look at textbook problems E1.1-1.9 and Read section 1.6 again prior to Wednesday's lecture

Sep 7 No Class -- Labor Day
3 Sep 9 Addressing Modes Section 1.6
4 Sep 11 Sample instructions, hand assembly and dis-assembly using opcode maps in reference guide (not the table in your textbook)
Through Section 1.8.1

Bring the handout from last time. Always bring your reference guide

Homework # 2 assigned. Due on Monday, Sep 14

5 Sep 14 Read Chapter 2 through section 2.5
re-read example 2.10

Bring your textbook to class today and Wednesday

Arithmetic, multiple precision addition and subtraction, outline of double precision multiplication, perhaps we'll have time for a demo and discussion or we'll start with program tracing, cycle-by-cycle analysis,

Homework 2 due today, at start of class

6 Sep 16 More on Arithmetic, multiple precision addition and subtraction, double and triple precision multiplication, cycle-by-cycle analysis and program tracing.

Chapter 2 through section 2.7 (except 2.6.5 and FDIV) (so skip top of page 60 to start of 2.7

7 Sep 18 relative addressing and the BRA instruction (branching), conditional branching (based on the CCR)
Sections 1.6.6 and 2.7-2.9

Introduction to the stack and the push and pull operations (Chapter 3-3.3

8 Sep 21 Continue w/ the stack,
Discuss modular programming, subroutines, storage of the return address, and parameter passing.
Section 3.6-3.10 "Well behaved" subroutines. Sim68 demo/discussion

Deadlines for lab

Hints for lab

9 Sep 23 Mainly discussed this week's lab, with lots of hints, etc. Discussion of recursive C example from last week's lab, etc. Also looked at NOP and delay loops in more detail.
10 Sep 25 Chapter 6: Interrupts (maskability, priority, "stacking registers")

Homework #3 assigned, due Monday

Homework #4 assigned, due Wednesday

11 Sep 28 More on Interrupts and Resets (Chapter 6)
12 Sep 30 Finish with interrupts, discuss various types of interrupts. Discuss illegal opcode trap and the upcoming lab.

Start to discuss parallel I/O (Chapter 7 through Section 7.3)

13 Oct 2 Parallel I/O: Brute Force, Strobed, and handshaking. general discussion (Read sections 7.4-7.7 and skim 7.7-7.11 for project hints)
14 Oct 5 MC68HC11 specific discussion of strobed I/O and handshaking. general discussion
Don't forget to rRead sections 7.4-7.7 and skim 7.7-7.11 for project hints

"Lab" reports due before class today

15 Oct 7 Output handshaking, Centronics printer example. Section 7.12
16 Oct 9 Finish with Output handshaking, Centronics printer example, as well as input handshaking (where our chip is on the printer side of the exchange)
Section 7.12

Homework # 5 assigned for next Friday

Oct 12 No Class -- Native American Day
Oct 12 Optional Evening Review Session at 7:00 pm. in our regular classroom. The building will be locked, but I will let you in through the east door.

Please bring questions, this is not a lecture

17 Oct 14 Exam #1

Homework 5 Deadline extended until Monday, October 19th

18 Oct 16
Discuss the Pulse Accumulator Subsystem (Section 8.10)

Come to class with some project ideas

18 Oct 19 Discuss Exam #1, In class programming exercise
20 Oct 21 Timer Functions (Free running main timer, TIC/TOC functions, Real time interrupts (Chapter 8-8.9)
21 Oct 23 Discuss the built in analog-to-digital (A2D) subsystem, (Chapter 11, skim through 11.4, read 11.5-11.9,
22 Oct 26 Discuss on chip EEPROM. This is not covered in your textbook and there is no reading assignment prior to class.

Homework # 6 assigned for next Thursday

23 Oct 28 Memory Decoding (Section 5.6.2)

Homework # 7 assigned for Monday

If you have not already done so, you should email Dr. Fourney a firm project idea prior to class today. The order that we cover material over the rest of the semester will depend, in part, on which subsystems students will be emphasizing for their projects.

24 Oct 30 Discuss SPI subsystem -- Chapter 10-10.5
25 Nov 2 Bus timing on the 68HC11. Skim Chapter 5 through 5.6 Read section 5.7 in detail . You may want to reference the bus timing diagram and the memory timing diagram from lecture.

Homework 8 assigned for Friday November 6th

26 Nov 4 Serial communication, RS-232 (Chapter 9)

Homework # 9 assigned for Monday. (Now Due Friday, since I linked to the wrong assignment)

27 Nov 6 SCI subsystem on the MC68HC11
28 Nov 9 Revisit bus timing issues

Homework # 10 assigned for Friday.

Nov 11 No Class -- Veteran's Day
29 Nov 13 Wrap up with the SCI subsystem on the MC68HC11.

Homework 9 and Homework 10 both due before class

30 Nov 16

We are meeting in SECS 232

You might want to take a look at this program , and also this one.

31 Nov 18

We are meeting in SECS 232

We will continue to work with this program. We will first run it out of external RAM (as we have been doing all semester). We will then run it out of the on-chip EEPROM See "Single Chip Applications" on page 10 of the Axiom CME11E9-EVBU Manual). We will then run it out of the (much larger) on-board flash memory (See "Programming External EEPROM" on page 8 of the same reference).

You should bring your "second meter" so that you can demo that after completing the other tasks.

32 Nov 20 Which Microcontroller should I use?

Meet in SECS 0218

33 Nov 23 Current and Future trends in Microcontrollers. How Flash based micro help with time to market and decrease costs, system on a chip. This material is not in your book, but a quick google-search yielded the following three articles which seem to cover the current trends:

Memory options: flash may dominate from EDN (in general, EDN is an excellent resource)

A piece on the evolution of flash microcontrollers, and

a wikipedia article on System on a Chip

34 Nov 25 . . .
Nov 27 No Class. Day after Thanksgiving.
. . . . . . . . .
Dec 2 Optional Review Session?
37 Dec 4 Exam II
. . . . . . . . .
Dec 14 Final exam -- 2 pm -- ECS 218 (Monday, December 14th)