May 25, 2026  
2023-2024 Undergraduate Academic Catalog-June Update 
    
2023-2024 Undergraduate Academic Catalog-June Update [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CPE 3600 - Advanced Embedded Systems

3 lecture hours 2 lab hours 4 credits
Course Description
This course is an advanced course in embedded systems where students complete the full design and implementation of an embedded system based on appropriately spaced term project milestones. Topics include a review of C programming, a review of interrupt driven I/O, and a review of typical microcontroller peripherals such as the UART, watchdog timers, timer-counters, and others. The I2C and SPI serial protocols will be introduced along with peripherals that implement these protocols. Interface timing and design will be discussed, and calculations performed to determine the timing compatibility between external devices and the microcontroller based on datasheet information. System-on-chip concepts will be introduced along with techniques for developing and testing custom peripherals in a hardware description language. This course meets the following Raider Core CLO requirement: Integrate Learning. (prereq: CPE 1510 , CPE 2610 ) (quarter system prereq: CE 1921, CE 2812)
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Use the I2C interface to communicate with external devices
  • Use asynchronous serial to communicate with another computer
  • Describe typical control bus signals for classic Motorola and Intel processors
  • Understand address decoding for memory-mapped peripherals
  • Use datasheet information for performing a timing analysis to verify compatibility between external components and a microcontroller
  • Deploy custom peripherals coded in HDL to a programmable SoC device
  • Design a simple memory-mapped peripheral in HDL to generate PWM signals to control actuators
  • Design an interface to drive an LCD Touchscreen
  • Design software to control on-chip and custom peripherals

Prerequisites by Topic
  • Good program design techniques
  • Assembly language programming
  • C programming
  • Combination and sequential digital logic design
  • Hardware description language skills

Course Topics
  • Introduction to I2C and SPI serial protocols and peripherals
  • Servo motor operation
  • Review of timer/counter concepts and PWM signals
  • Touchscreen operation
  • Memory timing for reads and writes on a memory bus
  • Timing analysis to demonstrate timing compatibility between memory and the microcontroller
  • Development and testing of custom peripherals in HDL
  • Generation and deployment of custom systems on a programmable SoC platform

Laboratory Topics
  • Introduction of an incremental design of an embedded system using provided milestones
  • Deployment and configuration of a SoC computer
  • Generate custom PWM signal generator, added to an SoC computer with deployment to hardware
  • Driving LCD Touch Screen with a DMA Buffer
  • Touch capture using an LCD Touch Screen
  • Generation of APIs for control of complex peripherals via I2C and/or SPI

Coordinator
Dr. Adam Livingston



Add to Portfolio (opens a new window)