Syllabus
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
- SJ2 project code structure
- Schematic review
- Bootloader, Reset and NMI (NXP Boot) pin
- SJ2 board startup
- LPC User Manual pdf brief review
- Clock system
- Discuss the role of a PLL
- Peripheral clock divider
- How
printf
really works
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
- Setup HW timer that rolls over each second
- Lab assignment: Build an API to create a precise delay of nanoseconds
Class #7: DMA to GPIO
- Lab assignment: Setup timer to trigger for the DMA
- Transfer a block of memory to the GPIO memory
Class #8: UART driven by GPIO
- UART communication bus
- Lab assignment: Use the timer API to delay by nanoseconds
Class #9: Memory
- SRAM layout
- Flash layout
- Startup and linker script
- EEPROM
- Lab assignment: Write a "peripheral driver"
Class #10: Future facing knowledge: FreeRTOS
- Basics of an RTOS
- Stack pointer
- Lab assignment: Create multiple tasks
- Final exam review
Last class
- Final examination
- Goodbyes