Daily Objectives

A Dr. Taylor Tutorial

Week 1

Lecture 1

  1. Explain what an embedded system is.
  2. Explain the relationship between real-time software and embedded software.

Lecture 2

  1. Compare and contrast microcontrollers and microprocessors
  2. Compare and contrast Harvard architectures with Princeton (Von Neumann) architectures
  3. Identify the key architectural components within the ATmega32 microcontroller

Lecture 3

  1. Identify the power, ground, and reset pins on a CPU pinout diagram*
  2. Identify pins which have multiple-purposes on the ATmega32 microcontroller*
  3. Draw a memory diagram for ATmega32 flash memory
  4. Explain the purpose for registers
  5. Explain how and why 8 bit registers may be combined to make 16 bit registers
  6. Explain the purpose of the status register
  7. Identify the size and purpose for the General purpose registers within the ATmega32 microcontroller

Week 2

Lecture 1

  1. Employ the microcontroller status register to solve a simple problem
  2. Draw the instruction fetch and execute cycle for the ATmega32 part*
  3. Describe the anatomy of an assembly language statement

Lecture 2

  1. Demonstrate the behavior of simple assembly language instructions through the use of register transfer notation
  2. Explain how assembly language instructions are represented in program memory
  3. Compare and contrast the Program and Data Addressing Modes in terms of:
    • Register usage
    • Execution cycle counts

Lecture 3

  1. Explain the workings and purposes for the ATmega assembler
  2. Explain the purpose of an assembly language directive
  3. Illustrate the usage of the .device, .def, .equ, .org, and .cseg directives
  4. Demonstrate four different ways of representing numeric constants in AVR assembly language instructions
  5. Explain the purpose of the NOP instruction
  6. Describe the use of each of the three I/O Port control registers
  7. Explain why a NOP is required prior to reading the PINx register after it has been set using an output value
  8. Explain why the value read using the PINx register may not match the output value in the PORTx register, even if the output has been configured properly

Week 3

Lecture 1

  1. Determine the time an instruction will take to execute at a given clock frequency
  2. Construct a delay loop for an arbitrary time period
  3. Recall the behavior of the stack data structure
  4. Explain the purpose for the stack within an assembly language program
  5. Construct code which will initialize the stack pointer to a given location
  6. Explain the concept of stack overflow (If time allows)

Lecture 2

  1. Explain the reasons why subroutines are valuable to an assembly language program.
  2. Construct a subroutine which performs a specific task
  3. Compare and contrast the two methods for passing parameters and returning values from a subroutine and state the advantages and disadvantages of each method
    • Using a register
    • Using the stack
  4. Explain why recursion may result in a stack overflow (If time permits)

Lecture 3

  1. Explain why recursion may result in stack overflow
  2. Recognize the key flowcharting symbols used for describing software execution flow
  3. Differentiate between in-line flowchart steps and calls to other subroutines
  4. Construct a flowchart representing the assembly language flow through a subroutine
  5. Write assembly language code from a flowchart describing the behavior of a routine

Week 4

Lecture 1

  1. Implement a segment of assembly language source code which will cause stack overflow.
  2. Implement a segment of assembly language source code which will cause stack underflow.
  3. Design an embedded application which will control the output LEDs through the use of a table lookup.

Lecture 2

  1. Continue to design an embedded application which will control the output LEDs through the use of a table lookup.

Lecture 3

  1. Discuss the upcoming exam and catch-up on any outstanding issues.

Week 5

Lecture 1

  1. Exam One

Lecture 2

  1. Construct an application in which data is stored in SRAM instead of variables
  2. Construct a routine to add two 16 bit numbers in Atmega Assembly
  3. Apply partitioning techniques to place source code into multiple assembly language files

Lecture 3

  1. Review Exam
  2. Explain the concept of a device driver
  3. Demonstrate partitioning using device drivers to control embedded hardware
  4. Justify the usage of a PortDef.asm file to control assignment of hardware devices to physical devices
  5. Apply the usage of a configuration file to allow rapid modification of port assignments.

Week 6

Lecture 1

  1. Explain the workings of the LCD Display
  2. Compare and Contrast serial and parallel modes of communication
  3. Explain the concept of a communications bus
  4. Explain the architecture of the LCD device driver and rationalize the usage for each subroutine
  5. Explain the concept of a ``smoke test'' for device hardware
  6. Explain how primitive unit tests can be implemented in a device driver
  7. Construct a simple program which uses the lcd device driver to display an output on the lcd panel.

Lecture 2

  1. Explain the concept of analog versus digital signals
  2. Define transducer and list transducer devices
  3. List applications whereby A/D conversion might be useful
  4. Explain the concept of a digital to analog converter
  5. Explain conceptually the workings of a successive approximation converter
  6. Define quantization error

Lecture 3

  1. List the configuration parameters and ports used for A/D conversion
  2. Demonstrate the usage of the A/D converter to control LED outputs

Week 7

Lecture 1

  1. Explain the concept of an interrupt
  2. Compare and contrast polling and interrupts
  3. List the advantages of polling and interrupts versus the disadvantages
  4. Explain the sequence of handling an interrupt
  5. Explain the purpose for the global interrupt enable flag
  6. Develop a simple ISR based program
  7. Identify the entries in the Vector table.

Lecture 2

  1. Explain how to enable and disable interrupts
  2. Compare and contrast the RETI and RET neumonics
  3. Critique ISR implementations based on provided guidelines
  4. Explain the concept of a race condition, and how to protect against race conditions by disabling interrupts
  5. Review for Exam 2

Lecture 3

  1. Exam #2

Week 8

Lecture 1

  1. List the reset sources for the ATMEGA 32
  2. Justify the need for a delay during power on reset.
  3. Justify the need for brownout detection.
  4. Explain the purpose for the watchdog timer.
  5. Explain the usage of the MCUCSR Register
  6. Construct source code to configure the watch dog timer.
  7. Construct source code which will kick the watch dog timer.

Lecture 2

  1. TBD

Lecture 3

  1. TBD

Week 9

Lecture 1

  1. TBD

Lecture 2

  1. TBD

Lecture 3

  1. TBD

Week 10

Lecture 1

  1. TBD

Lecture 2

  1. TBD

Lecture 3

  1. TBD

Tutorials for Other Courses

Additional Links

Site Mirror

This is a mirror to be used when http://myweb.msoe.edu/taylor/, (EDU instead of US) is not available.