Course Description

Hardware implementation of a microcomputer architecture using modern microprocessors and related integrated circuits: clock subsystem, bus drivers, map decoders, R/W memory, ROM, serial and parallel I/O, DMA, interrupts.

Course Catalog Description

Microcomputer architecture design describing the system bus, memory subsystems and peripherals. Unidirectional and bidirectional system bus; SRAM, SDRAM and FLASH memories and their bus interfaces; DMA, interrupt controller, transmitter/receiver, timers, display adapter, A/D and D/A converters and other system peripherals and their interfaces with system bus.

Planned classes

Class #1: Introduction

Introduction to the SJ2 board, and development environment

  • Discuss class expectations
  • Introduction to SRAM and Flash memory
  • Mail out the boards
  • Setup slack for class collaboration
Class #2: Board Software Introduction
Class #3: Hands-on experiments
  • lpc40xx.h memory map review and LPC User manual review
  • Bit masking, LPC provided memory map
  • LED and switch interface
  • SJ2 unit-test framework
Class #4: DMA
  • Introduction to the peripheral
  • Volatile keyword
  • Lab assignment: Setup memory-to-memory transfers
Class #5: Midterm
  • First 60 minutes: Review session and Timer Peripheral walkthrough
  • Review session, followed by the exam
Class #6: Timer
  1. Timer
    • Setup HW timer that rolls over each second
    • Lab assignment: Build an API to create a precise delay of nanoseconds
  2. DMA to GPIO
    • Lab assignment: Setup timer to trigger for the DMA
    • Transfer a block of memory to the GPIO memory
  3. UART driven by GPIO
    • Lab assignment: Use the timer API to delay by nanoseconds
  4. UART driven by peripheral
    • Lab assignment: Write a "peripheral driver"
  5. Future facing knowledge: FreeRTOS
    • Lab assignment: Create multiple tasks
  6. Last class
    • Final examination
    • Goodbyes
Back to top