"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.

 

Instructor

 

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

 

Harold Frank Hall 3165

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

 

Lecture

 

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

 

Text

 

Required:  none

 

Grading

 

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)

 

Homework

 

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

 

Lectures

 

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        

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        

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