"Dawn breaks over the Pacific" as seen from the Computer Engineering Instructional Lab - photo courtesy of the Fridgenius project, 2013/2014 CE Capstone Class



University of California, Santa Barbara

Department of Electrical and Computer Engineering


ECE 153B – Sensor and Peripheral Interface Design


Winter 2017


Course Fact Sheet



Catalog Description


Prerequisite: ECE 152A with a minimum grade of C-.  Hardware description languages; field-programmable logic and ASIC design techniques.  Mixed-signal techniques: A/D and D/A converter interfaces; video and audio signal acquisition, processing and generation, communication and network interfaces.




Dr. John M. Johnson (johnson@ece.ucsb.edu) 


Harold Frank Hall 3165

Office hours: Monday and Wednesday, 12:30 – 1:30 PM




Monday and Wednesday, 11:00 – 12:15 PM, GIRV 2128


Lab Sections


Monday, 7:00 - 9:50 PM, HFH 4118 (tentative)


Tuesday, 7:00 - 9:50 PM, HFH 4118


Wednesday, 4:00 - 6:50 PM, HFH 4118             


Teaching Assistants


Celeste Bean (celestebean@umail.ucsb.edu)


Caio Motta (caio@umail.ucsb.edu)


            Office hours: TBD


ECE 153B Web Site


GauchoSpace:         https://gauchospace.ucsb.edu


Global Access:         http://www.ece.ucsb.edu/Faculty/Johnson/ECE153B




Required:  none




Midterm exam:          30%


Lab:                            35%


Final exam:               35%


Exam Dates


Midterm Exam:          Wednesday, February 15, 2016 (11:00 – 12:15 PM)


Final Exam:               Thursday, March 23, 2016 (12:00 – 3:00 PM)




Assigned occasionally, but will not be collected or graded.  Solutions will be posted approximately one week later.




1.      Introduction


2.      Microprocessors, Microcontrollers and Digital Signal Processors


3.      Parallel Buses


4.      The Memory Subsystem


5.      Analog Input and Output


6.      Serial Interfaces (part 1)


7.      Serial Interfaces (part 2)


8.      Motors (part 1)


9.      Motors (part 2)


10. Programmable Logic


11. Hardware Description Languages


12.  Sensors


Laboratory Experiments


Experiment #1 (2 weeks; 1/20/17)


o       Control an LED


o       Lab 1a: Control LED

o       Lab 1b: GPIO and Bit Masking

o       Lab 1c: Delay Function – LED Flashing

o       Lab 1d: Morse Code


o       Read a Digital Input


o       Lab 2a: Read Push-button

o       Lab 2b: GPIO and Bit Masking

o       Lab 2c: Logic between inputs and output

o       Lab 2d: Toggling LED

o       Lab 2e: Sampling of Inputs


o       Control Multiple LEDs


o       Lab 3a: LEDs in Running-One Pattern

o       Lab 3b: Control of Running-One Pattern

o       Lab 3c: Rotary Switch Control of Running-One Pattern


Experiment #2 (1 week; 1/27/17)


o       Print Messages


o       Lab 4a: Semihosting and printf()

o       Lab 4b: Semihosting Performance Test

o       Lab 4c: Printing Events

o       Lab 4d: Reading from the Console


o       Read an Analog Input


o       Lab 5a: Read Trimming Potentiometer

o       Lab 5b: Event Threshold

o       Lab 5c: Read Light Sensor

o       Lab 5d: ADC Noise Test

Experiment #3 (1 week; 2/3/17)


o       Pulse Width Modulation


o       Lab 6a: PWM Control of an LED

o       Lab 6b: PWM Control of an LED, (cont. 1)

o       Lab 6c: PWM Control of an LED, (cont. 2)

o       Lab 6d: PWM Control of two LEDs


o       Control an RGB-LED


o       Lab 7a: Test RGB-LED

o       Lab 7b: Control RGB-LED


o       Control a 7-segment Display


o       Lab 8a: Test 7-segment Display

o       Lab 8b: Control 7-segment Display

o       Lab 8c: Control 7-segment Display, cont.

o       Lab 8d: Control Dual Digit 7-segment Display

o       Lab 8e: Control 7-segment Display via Shift Register


Experiment #4 (2 weeks/2/17/17)


o       Work with a Timer


o       Lab 9a: Create Exact Delay Function


o       PWM via a Timer


o       Lab 10a: Control RGB-LED

o       Lab 10b: Buzzer and Melodies

o       Lab 10c: Control a Servo Motor


o       Work with a Serial Bus – SPI


o       Lab 11a: Access Shift Register

o       Lab 11b: Control 7-segment Display

o       Lab 11c: Access SPI E2PROM


o       Work with Interrupts


o       Lab 12a: Generate IRQ via GPIO

o       Lab 12b: Timer IRQ

o       Lab 12c: Timer IRQ with Callback

o       Lab 12d: Nested Interrupts

o       Lab 12e: Control Dual Digit 7-segment Display


Experiment #5 (2 weeks; 3/3/17)


o       Work with a Serial Bus – I2C


o       Lab 13a: Solder Surface Mounted Components

o       Lab 13b: Read LM75 Temperature Sensor

o       Lab 13c: Control LEDs via PCA9532


o       Work with a Serial Bus – UART


o       Lab 14a: Transmitting and Receiving via the UART

o       Lab 14b: Direct printf() to UART

o       Lab 14c: Interrupt driven UART handling and ring buffers


Projects (2 - 3 weeks; 3/17/17 - 3/24/17) some ideas:


LPCXpresso Experiment Kit


o       Extra: Work with RF-module


o       Lab 15a: XBee™ RF-Module

o       Lab 15b: GPS Receiver


o       Extra: Work with Serial Expansion Connector


o       Lab 16a: 128x128 OLED Graphical Display


o       Extra: Work with USB Device


o       Lab 17a: USB Device – HID

o       Lab 17b: USB Device – Mouse HID


o       Extra: Work with USB Host


o       Lab 18a: USB Host


o       Extra: Work with Ethernet Interface


o       Lab 19a: easyWeb Web Server

o       Lab 19b: lwIP TCP/IP Stack, Web Server and FreeRTOS


Legacy Laboratory Experiments (use NXP LPC 1115 in place of or in combination with TI TMS320C31 DSP)


o       CPLD-based digital I/O, interrupts, timers


o       Analog-to-digital and digital-to-analog conversion (3-4 weeks)


o       Motor Control (pulse-width modulation with encoder feedback)


NXP LPC1700 Lab for the Keil MCB1768/58 Development Kit using the μVision IDE


ARM University Experiments for the Embedded Artists LPC 4088 Quick Start Board and Experiment Base Board using Keil IDE or NXP LPCXpresso IDE or ARM mbed online compiler