EE345L Microprocessor Applications and Organization  Spring 2004
Class:
JES A121A, Monday, Wednesday 1-2pm         Lab recitation: JES A121A, Friday 1-2
Office Hours: Monday 12-12:45, Wednesday 2-3, Friday 9-10:30
Instructor: Jonathan W. Valvano, ENS627, 471-5141 
email: valvano@mail.utexas.edu, schedule
Web page: http://www.ece.utexas.edu/~valvano
Text: Embedded Microcomputer Systems, Brooks-Cole 2000, by J. W. Valvano
Lab: ENS252C  Unique Numbers:  14535 M9-12, 14550 T9:30-12:30, 14555 Th9:30-12:30, 14560 T12:30-03:30, 14565 Th12:30-03:30, 14570  M3-6, 14575 W3-6, 14580 T3:30-06:30, 14590 M7-10, 14605 Th7-10
EE345L TAs:
        Anil Kottam, kottam@ece.utexas.edu, (HEAD TA), T3:30-6:30, Th7-10
        Chia-ling Wei, clwei@mail.utexas.edu, M3-6, T12:30-3:30
        David Altman, gautam@mail.utexas.edu, M9-12, W3-6
        Huzefa Sanjeliwala, huzefa@mail.utexas.edu, (software style)
        Robin Tsang, rtsang@ece.utexas.edu, M7-10, Th12:30-3:30
        Dhirajkumar Acharya, acharya@ece.utexas.edu, T9:30-12:30, Th9:30-12:30        
Reference materials: Data sheets for most of the devices used in this class are available as pdf files on the lab network and on the CD. Please make sure you have access to the MC68HC812A4 Data Sheet
IEEE Parts
   1 prototype board per student (2 per group)
   Lab supplies: resistors, 3.5 inch floppy disks, wires
HKN:    Spring 2004 EE345L Laboratory Manual by J. W. Valvano
Other references: For programming in C and digital logic, see the EE312 and EE316 texts
Also see Kelly/Pohl, A Book on C, Benjamin Cumming Publishing
Prerequisites
EE319K, EE322C and EE438 or EE338 and credit or coregistration for EE333T.  
Specific Objectives of EE345L
Microcomputer Architecture (EE319K review)
    An Introduction to the Microcomputer, Computer Architecture, The 6812 Instruction Set, 6812 Addressing Modes, 6812 Instructions, Organization of the M68HC12, Notation for Block Diagrams, MC68HC812A4 I/O and Memory Organization, The Memory Map of the MC68HC812A4
Programming Microprocessors (EE312, EE322 review)
    Data Structures in C, Indexable Data Structures, Sequential Data Structures, Writing Clear Programs in C, Documentation, Programming Style, Subroutines and Arguments in C, Passing Parameters (Conceptual Level), Passing Parameters (Implementation Level), Calling and Returning Mechanisms, A Blueprint for Writing Subroutines, Subroutine Documentation
Microcomputer Bus Interfaces
    Digital Hardware, Modules and Signals, Drivers, Registers, Timing equations, timing diagrams, Address decoding, PROM, RAM interface
Parallel and Serial Input-Output
    Simple I/O Devices, Basic Input and Output Devices, Input-Output Software, I/O Transfers and Buffered Input and Output, Programmed Logic Control, Table and Linked List Interpreters, Programmable Parallel Input-Output Devices, Problems with LSI I/O and the Ritual, M6812 Single-Chip Parallel Input-Output Registers, Indirect Input-Output, Synchronous Serial Input-Output, Serial I/O Chips, Control of Serial I/O Chips Using a Parallel Port, The MC68HC812A4 Serial Peripheral Interface
Interrupts and Alternatives
    Synchronization in I/O devices, Synchronization Principles of I/O Devices, Synchronization Mechanisms for the M6812 Parallel Ports, Slow Synchronization Mechanisms, Real-Time Synchronization, Gadfly Synchronization, Single Interrupts, Polled Interrupts, Vectored Interrupts, Vectored Interrupts in the M6812
Parallel Port Interfaces
    Keyboards, Key Debouncing, Keyboard Scanning Techniques, LED's and LCD's
Communication Systems
    Communications Principles, Signal Transmission, UART Link Protocol, UART Transmission and Reception by Software, Serial Communications Interface System in the 6812
Special Topics
    About 1-2 weeks each semester will be allocated to cover special state-of-the-art topics involving embedded microcomputers and their applications.
Attendance: Students are expected to attend lectures. The book covers more information than the class and we will use lectures to map our way through the book. If you miss class you may find it difficult to catch up.
Grading:    
        35% Laboratory
        5% Unannounced pop quizzes, closed book, in regular class room
        5% Weekly multiple-choice online homework
        15% In class Quiz1, closed book, Wednesday, February 25, 1:00 to 1:50 pm, in regular class room
        15% In class Quiz2, closed book, Wednesday, April 7, 1:00 to 1:50 pm, in regular class room
        25% Final, closed/open book, Wednesday, May 12, 9am-12noon, regularly scheduled
Your grade will be assigned on the usual 60, 70, 80, 90 basis. An average above 70 is required to receive a credit (CR/NR).
Lab Partners: All labs should be performed with a partner. The lab partnership must be registered with your TA (a simple hand written note signed by both students will suffice) at least a week before the assignment is due. Once registered, the partnership will continue. A partnership can be dissolved only after discussion with the TA. Both partners must be present during the demonstration. It is expected that both partners will contribute to all aspects of each lab, and both partners are expected to be present during the check out. The point values are the same for all labs. The TA will sign your software listing when you demonstrate your system. All parts of the assignment must be demonstrated to a TA by the end of your lab period the week shown in the column labeled "Demo/Report". Any EE345L TA is authorized to checkout your lab.  The report (hardware/software/data plots) are due one day after the demonstration is due. Please consult with your TA for specific due dates for your lab section.
Laboratories 
  Lab 1c. Memory PCB layout
  Lab 2e. SCI fixed point, driver
  Lab 3c. Debugging, dump profile
  Lab 4e. Alarm clock (2 weeks)
  Lab 5d. Stepper motor finite state machine
  Lab 6e. SPI  DAC tone generator
  Lab 7d. Position measurement
  Lab 8d.  Calculator (2 weeks)
  Lab 9a.  Memory diagnosis
  Lab 10c. Serial peer-peer network chat room (2 weeks)  group of 6


EE345L Laboratory Schedule (see your TA for the latest)

Week Quiz/Preparation Demo/Report Comments
1/19 none none no lab activities
1/26 1c none partners chosen
2/2 2e 1c  
2/9 3c 2e
2/16 4e 3c
2/23 none partial quiz 1 is 2/25
3/1 5d 4e
3/8 6e 5d
3/22 7d 6e
3/29 8 7d
4/5 none partial quiz 2 is 4/7
4/12 9 8  
4/19 10 9
4/26 none partial
5/3 none 10 Turn in equipment by 5/7

    During the week of January 26-30, please go to your scheduled EE345L lab sessions in ENS252C to get a demonstration of the lab equipment.  Technological Arts Adapt812 boards will be passed out and lab partners will be selected in your lab the week of Feb 2-6. The Lab 1 preparation is due at the beginning of your lab the week of January 26-30.  The lab preparations (hardware diagrams and syntax-free software source code printouts) are due at the beginning of your lab period. In other words, please type your software into the PC before lab. Attendance in lab is required. All software for lab, and tests must include comments. All hardware must include R&C values specifying tolerance and type (e.g., 5% carbon), and TTL chip numbers (be very specific e.g., 74LS00). Pin numbers are required only for lab, not for the exams.
    Students are encouraged to go to the last 2 hours of the other lab periods, but the first priority will be to the regular students. During the first 15 minutes of lab, the TA will collect preparations and give a quiz. For the next 30 minutes, the TA will lead a lab discussion session. The remaining lab time is available for debugging and lab checkout. At the end of the semester please verify with the checkout counter that your record is clear. All reports must be given to the TA by Friday May 7, 12 noon.

Date Chapter Topic
1/21 1, 2 6812 architecture, layout of 128K RAM memory using ExpressPCB
1/26 2 Lab environment, run SCI project on actual 6812 boards, example decimal fixed point, debugging techniques
1/28 2 programming style guidelines for this class, modular programming, call graphs, flow charts, data flow graphs, use SCIproject as example
2/2 2 Run Lab3 project, debugging techniques, and programming style, dumps, monitor
2/4 2,3 Draw pictures showing elements on the stack for Metrowerks compiler, debugging from an assembly language perspective, real time systems
2/9 3,4 interface binary switch using pull-up resistor to an input port, draw flowchart of rti project, profiling with the scope showing just how small a percentage of time is spent in the background, globals/locals, static variables, threads, draw thread trace
2/11 8 run rti project on Adapt 812, profiling, LCD Displays, HD44780 controller, blind cycle versus gadfly synchronization, show how to maintain time of day in rtihan, allocation of tasks between the foreground and background
2/16 1,8 digital logic, input/output voltage/current, LED interfacing using a 7405, PN2222 NPN transistor interface of a speaker
2/18 3, 4 linked data structures, ROM-based structures using const, finite state machines, run Moore project,  fixed time delay using TCNT, adding output pins, adding input pins, running the FSM in the background using OC interrupts
2/23 3, 8 FSM with functions, traffic example, stepper motors, full step versus half step algorithm, stepper interface electronics (L293, TIP120, IRF540), snubber diodes
2/25 Quiz 1 in class, covering material in Labs 1,2,3
3/1 7 11 SPI/DAC interface, signal generation
3/3 11 output compare interrupts, ADC
3/8 12 Data acquisition systems, sampling time jitter
3/10 4, 6 Thread communication using a fifo queue, input capture
3/22 8 Switch debouncing
3/24 8 Keyboard scanning
3/29 9 Memory interfacing, timing diagrams
3/31 9 Memory interfacing, PROM interface
4/5 9 Memory interfacing, RAM interface, direct page
4/7 Quiz 2 in class, covering material in Labs 4,5,6,7
4/12 7 Serial Communications, RS232
4/14 14 Low-level network protocols
4/19 14 High level network protocols
4/21 4 producer/consumer problem, real-time system, I/O bound versus CPU bound
4/26 4 Periodic polling with Output compare
4/28 Design specification
5/3 Debugging and system verification
5/5 Review, course evaluation
5/7   All Lab notebooks are due to the TA at 12 noon
5/7   Turn in Lab Equipment so that Mona won’t bar your registration
5/12   Final exam, 9am-12n, Room regularly scheduled

Legal Stuff: The 12th class day is Feb 4. After this date, I will sign a drop only if the Dean approves it. Your current grade status must be a "C" or better for you to receive a "Q". Course evaluation is conducted on the last class day in accordance with the Measurement and Evaluation Center form. The final exam is at the time and place stated in the course schedule. The University of Texas at Austin provides upon request appropriate academic adjustments for qualified students with disabilities. For more information, contact the Office of the Dean of Students with Disabilities at 471-6259, 471-4241 TDD.
Cheating: Cheating is very uncivilized behavior and is to be avoided at all cost. We will be using an automated system to check for software plagiarism. You are allowed to talk to your classmates about the lab assignments, but you are NOT allowed to look at each other's written work. Oral discussion about an assignment is encouraged and is not considered to be cheating. Copying of any part of a program is cheating without explicit reference to its source. If we find two programs that are copied, there will be a substantial penalty to both students, e.g., failure in the course. Students who cheat on tests or in lab will fail. Prosecution of cases is very traumatic to both the student and instructor. PLEASE DO YOUR OWN WORK. Policies concerning the use of other people's software in this class:
     • I strongly encourage you to study existing software.
     • All applications and libraries must be legally obtained. E.g.,
          You may use libraries that came when you bought a compiler.
          You may use software obtained from a BBS or on the WWW.
          You may copy and paste from the existing source code. 
     • You may use any existing source code that is clearly referenced and categorized:
          original: completely written by you,
          derived: fundamental approach is copied but it is your implementation,
          modified: source code significantly edited to serve your purpose,
          copied: source code includes minor modifications.
When studying, focus on the topics that apply to the 6812 and the topics included in the lab assignments. You will find old quizzes and finals with solutions on the class web site.

Curious about my research? See
http://www.ece.utexas.edu/~valvano/research