Lecture:
Tuesday, Thursday 1600-1720; KEC 1003
Lab:
W 0900-1150 : ; DEAR208
W 1400-1650 : ; DEAR208
F 1100-1350 : ; DEAR208
F 1400-1650 : ; DEAR208
(Note: "NOSPAM" = "oregonstate")
Lecturer:
Roger Traylor
Office: KEC3095
E-mail:traylor@NOSPAM.edu
Office Hours: Zoom, via email, or whatever
TAs:
Tingwei Zhang(0.4)
Office: DB208
E-mail:zhangtin@NOSPAM.edu
Office hours by email appointment
Alyssa Estenson(0.2)
Office: DB208
E-mail:estensoa@NOSPAM.edu
Office hours by email appointment
About This Class
The purpose of this course is to equip students to competently design small, embedded microcontroller
systems. This course uses a microcontroller as a component in electronic system design. Our target
microcontroller, the Atmel ATXMega16_A4, provides extensive I/O and peripherals. It will be considered as
a flexible logic component to be embedded within a system.
This is a design course. This means that you will be expected to show considerable creativity, resourcefulness
and persistence. You will need to read long datasheets, improvise around problems, and extract information from
obscure sources. You will need to apply material from many of the courses you have already taken. You will
have to find solutions on your own from incomplete specifications. Welcome to the real world of design.
There is a considerable reading load for this class. Consider this typical for doing non-trivial design work.
The number of pages is large and the material can be obtuse. I will not be looking for recall of bit-by-bit
details, but clear understanding of concepts and how to apply them. Quasi-weekly self-evaluations may be provided
to check your understanding.
Lab assignments will require a detailed design based on a general specifications. Step-by-step instructions are
not provided. Detailed designs will be generated by the student. Complete designs to be graded include C and/or
assembly language code, digital and analog circuit schematics.
I expect your in-class participation. Some of you will have innovative solutions and approaches that need
to be shared. Be prepared to voice your opinion, show off your hardware and explain your code.
You may work in groups on homework and projects if you wish. Sharing of design approaches, philosophy, flow charts
or coding ideas is strongly suggested. However, sharing of detailed information such as design calculations,
or actual code is not approved and will meet with the strongest action that I can bring. Your project represents
your individual work, not the product of group work.
A mail reflector (or list) for the class will be established by the beginning of class. The mailgroup is how
I communicate with you outside the classroom. It can also be used as an interactive forum where you discuss problems
and solutions. Such usage is encouraged. Students who register early for ECE473 are automatically added to the class
mail list. You may initially not be on the if you register late. You should be added within a day or so. The name of
the class list for ECE473 is: ece473-001-f22@engr.NOSPAM.edu (NOSPAM = orst). You will not be able to post to
this list from any other than your engr account.
Wherever you do your code development, back it up. Many sad stories here. Back up disks are cheap.
Commit yourself to learning either vim or emacs. To write code, you need to use a programming
editor. I can almost guarantee you are surely going to do a lot of programming in your career. So use an efficient tool.
So,... don't fight it, once you catch on, you'll never go back. I do all my writing in vim.
Period |
Date |
Lecture Topics |
Lab Work |
Datasheet |
Supplemtal Materials |
1 |
Thursday Sept 28 |
Intro to ECE473
Differences in Embedded Design
Schematic Diagrams
Design Analysis
-----
Atxmega 64A1U Overview
ATXmega vs. ATMega
Chip Programming Model
|
Lab 1 - Tool Testdrive
-Due in lab, 9/28-9/30 (1 wk)
lab1.c
Makefile
|
Xmega AU Manual
ATXmega64A4U Datasheet
|
AVR1000
|
2 |
Tuesday Oct 3 |
Editing with vim
Philosophy.txt
-----
I/O Module
iox16a4u.h
I/O Pin Electrical Characteristics
-----
Debug Techniques
|
|
I/O ports
|
AVR1313
ESD Diodes
ESD Videos:
-Chalktalk
-Demo
Vim Videos:
-Getting in and out
-Moving around
-Adding and deleting
-Dot, make, split, shell
|
3 |
Thursday Oct 5 |
Xmega Clock System
Switch Debouncing
Debugging Techniques
Shameless plug for schematics
Discussion of Lab 2
-Time multiplexing LED display
-Scanning switches
|
Lab 2 - Led and pushbuttons
-Due in lab, 10/18-20 (1 wk)
Skeleton code for lab 2
|
Clock System
AVR1003
|
A Guide to Debouncing
A DSP-style debouncer
Developing a good bedside manner
|
4 |
Tuesday Oct 10 |
GNU Compiler
Assembly Language & GCC
GNU Make
Inclass Exercise
tar file
|
|
Self Evaluation - wk2
Automatic makefile dependencies
|
Dummy text |
5 |
Thursday Oct 12 |
Lab 1 Code differences
Embedded Programming
Killer Apps
Git Lecture/Inclass work
Git Quick Reference
Avr-libc
-Character Operations
-Strings
-Busy-wait loops
-Standard Integer Types
-General Utilities
Using a2ps
|
Lab 3 - Lab 2 with interrupts
Lab 3 - Skeleton code
-Due in lab, 11/9 (1 wks)
|
Write great code (article only)
Debugging Embedded C
Programming uCs in C
C usage in embedded apps
|
6 |
Tuesday Oct 17 |
Interrupts
Debugging Interrupts
Inclass Exercise: Download script
Avr-libc, interrupts section
|
|
AVR Datasheet
-pgs 15-17, Interrupt and reset handling
-pgs 11-12, Status register GIE bit
-pgs 60-62, Interrupts
Break code with volatile
Self Evaluation - wk3
|
Dummy text |
7 |
Thursday Oct 19 |
Serial Peripheral Interface (SPI)
Reading Encoders
Inclass Exercise
-bar_graph_skel.c
|
Lab 4 - Interrupts, SPI, Encoders)
Lab 4 - encoder_skel.c
|
AVR Datasheet
-pgs. 163-170 SPI
Introduction to SPI
|
Dummy text |
8 |
Tuesday Oct 24 |
8-Bit Timer/Counters, TCNT0 & TCNT2
Lab discussion
-Encoder operation
-Decoder glitches
-"Scope out" SPI transactions
In-class Programming Work
bar_graph_demo_skel.c
bar_graph_demo.c
|
|
AVR Datasheet
-pgs. 93-111 TCNT0
-pgs. 145-160 TCNT2
AVR130 setup, use of AVR Timers
DN024 Timer/Counter Basics
Self Evaluation - wk4
|
Dummy text |
9 |
Thursday Oct 26 |
16-Bit Timer/Counters TCNT1, TCNT3
Inclass/Lab Exercise:
Lab 5 materials
Lab 5 - TC0/TC1
Lab 5 - skeleton code
|
|
AVR Datasheet
Sine waves from uCs
-pgs. 112-142 TCNT1 and TCNT3
-pgs. 143-144 TCNT1-3, Prescalers
|
Dummy text |
10 |
Tuesday Oct 31 |
Inclass Exercise - Stimulus Reaction Timer -wget_script
|
Dummy text |
Dummy text |
Dummy text |
11 |
Thursday Nov 2 |
Industry Overview
-Electronic Design 2017 Salary Career Report
-Electronic Design 2018 Survey Results
|
Lab X - Alarm Clock
-Clone hd44780_driver: Github
-Due in lab, 11/9-11 (2 wks)
|
Dummy text |
Dummy text |
12 |
Tuesday Nov 7 |
Guest Speaker
-Marshall Adrian, Intel Corp.
Analog Comparator, ADC
Inclass Exercise - ADC voltmeter - wget_script
|
Dummy text |
AVR Datasheet
-pgs. 227-229 Analog Comparator
-pgs. 230-245 A to D Converter
-pgs. 54-55 Voltage Reference
-pgs. 171-197 USART
Bandgap References
DN021 Using the ADC
Self Evaluation - wk6
|
Dummy text |
13 |
Thursday Nov 9 |
USART
UART tarball
UART strings in Flash
Two Wire Serial Interface (I2C)
TWI tarball
UART tarball
Graphic LCD tarball
Lab6.txt
| Dummy text |
AVR Datasheet
-pgs. 198-226, TWI
I2C overview
Network Peripherals with I2C
I2C Bidirectional level shifter
Phillips I2C Manual (pgs. 2-25)
Phillips I2C Usage with a uC
|
Dummy text |
|
Saturday Nov 11 |
Veterans day
Thanks to all who serve and have served our country.
|
|
|
|
14 |
Tuesday Nov 14
|
Project discussion
Inclass coding - UART - wget_script
Guest Speaker
|
Dummy text |
AVR Datasheet
-pgs. 19-24, EEPROM Memory
Accessing the EEPROM
Self Evaluation - wk7
|
Dummy text |
15 |
Thursday Nov 16 |
Power Management and Sleep Modes
Reset Sources
XDIV/Sleep code
Reset/Brownout code
Watchdog code
|
Lab 5 - Remote Temp Sensor
-twi_master.c
-twi_master.h
-lm73_functions.h
-lm73_functions_skel.c
-uart functions.c
-uart_functions.h
-uart functions.c for Mega48 only
-uart_functions.h for Mega 48 only
-Early checkoff:11/30-12/2
-Late checkoff with final project
|
AVR Datasheet
-pages 52-56, Watchdog Timer
-page 50, Brownout Detection
Great Watchdogs
Power Management
|
Dummy text |
16 |
Tuesday Nov 21 |
Guest Speaker
Project Q & A
-Discussion of lab work.
|
|
|
|
|
Thursday Nov 23 |
Thanksgiving - No Classes
-Give thanks
-Code while you feast
|
|
|
|
17 |
Tuesday Nov 28 |
Guest Speakers - Software Quality
-Amy Keizerman, Nicole Lewey
Garmin
JTAG
Bootloaders
Lock bits and Fuse bits
|
|
|
Self Evaluation - wk9
|
18 |
Thursday Nov 30 |
Architecting the Final Project
-How to approach the final project.
-Class Presentations - TBA
|
Final Project: FM Clock Radio
-Clone si4734 driver: Github
-si4734 connection detail
-si4734 code snippets
-Finish the FM alarm clock radio.
-Due 12/7 (Wednesday, finals wk.) (2+ weeks)
|
|
|
19 |
Tuesday Dec 5 |
Class Presentations - TBA
TBA
|
|
|
|
20 |
Thursday Dec 7 |
Class Recap - TBA
TBA
|
|
|
|