CE-2800
Embedded Systems 1
Dr. Mark L. Hornick


Description     Syllabus     Policies     Quizzes/Homework     Grading


Revision History

12/5/2011 - links to AVR Summary and AVR Assembler manuals added

11/29/2011 - updates to first three weeks; links to wiki and sample code added

This page was last updated on 02/16/2012.

Class Schedule

Lectures are on Monday, Wednesday, and Friday in S362 from 8:00am to 8:50am.

Labs are on Thursday in S343 from 8:00am to 10:50am.

As stated in my general course policies, attendance is mandatory for all lectures and labs. Email me when you foresee yourself to be absent. I reserve the right to administratively drop anyone who misses 3 or more lectures or labs. Be sure to read the entire document for all relevant policies that apply to this course.

Course Description

This course presents assembly language programming as the bridge between hardware and high-level programming languages (such as C, which you'll learn in CE2810). Topics covered include the addressing modes, registers, and instruction set of a microcontroller; subsystems such as the timer/counter, analog to digital convertor; EEPROM, and interrupts. Software control of hardware is stressed. In the laboratory, students design software to demonstrate proficiency in these areas.

Please consult the official course description for detailed objectives.

Textbook, Documentation & Toolset

No textbook is required for this course. You will instead be making extensive use of the Atmel reference guides, which are distributed via the wiki.
The most important references are:

Each student is required to purchase an Atmel32 kit with keypad and display. These are available from Tech Support.

You will be required to install and use a program called AVRStudio. It is assumed you have the standard MSOE laptop configuration, with which AVRStudio has been confirmed to be compatible. If you are running a non-standard image, it is your responsibility to ensure compatibility with AVRStudio.

Syllabus

Week Day Topic Reading Lab (Thursday)
1
11/28
M Course Introduction

Microcontroller components

wiki: Microcontroller components

wiki: Atmega32 architecture







wiki: Arithmetic Instructions

wiki: Simple Program

Quiz: Lab Safety

Lab 1: Atmel Development Environment Setup

Due in Blackboard by 11pm Dec 6, 2011

Prelab videos:
Cleaning the solder tip

Tinning the leads

Soldering to the connector

Setting up Fuses

W Atmega32 architectural overview

download and install AVRStudio

AVRStudio Service Release 3

F AVR Assembler
Directives, simulator/debugger
2
12/5
M Data memory: Addressing Modes:

Load/Store instructions
Index registers

wiki: Data Transfer instructions

Sample program:
Data memory access

wiki: Branch Instructions

Sample code:
Conditional Looping

Sample code:
Delay loop

Quiz 2

Prelab videos:
Lab 2  demo video

Oscilliscope video

Listing file interpretation video

Lab 2: AVRStudio/Debugging
Due in Blackboard by 11pm Dec 13, 2011

Reference material:
Atmega32 summary

AVR Instruction set reference

AVR Assembler documentation

W

Status Register
Instruction set: branching and looping

F Instruction set:
Status Register flags again
Comparison,
Transfers, Bit manipulation
3
12/12
M Catch-up




 

Quiz 3

Lab 3: Bouncing Lights

Due in Blackboard by 11pm Jan 3, 2012

Review for test 1 / Detailed lesson objectives 1-10

W The Stack,
Subroutines


Review
F Exam 1
Christmas Break
4
1/2
M No school wiki: I/O Ports

Sample code:
StackandSubroutines.asm

Quiz 4

Lab 4: Bouncing Lights Revisited

Due in Blackboard by 11pm Jan 10, 2012

 
W Exam review

I/O Ports

F Assembler software design guidelines
5
1/9
 
M Addressing Modes review

Loading/Storing data in Program Memory

Sample Code:
Program Memory access

Quiz 5: I/O Ports, subroutines and stack

Lab 5: Prep

Lab 5: Serial Communications

Due in Blackboard by 11pm Jan 17, 2012

W

Serial Port Communication

USART setup and configuration

Sample Code:
USART demo


USART tech ref: page 146 of the Atmega32 summary manual
F LCD Display communication interface

LCD Display continued, outputting commands and data

 
 
6
1/16

 

M Interrupts
 

Sample Code: InterruptDemo.zip

Quiz 6: USART configuration

Lab 6: LCD Messages

Due in Blackboard by 11pm Jan 24, 2012
 

W Interrupts continued
F Interrupts continued
7
1/23
M Analog to Digital Conversion Sample A/D code
ADConversion.asm
 

Lab 7: Dual channel Voltmeter
W Analog to Digital Conversion, Part 2

Displaying Numerical values on the LCD display

F Timer/Counter Subsystem
8
1/30
M

Timer/Counter continued:
Normal/CTC mode

Timer/Counter continued:
Output Pin Action

PWM generation

Sample code:
TimerCounter.asm


Wiki site http://wiki.msoe.us/ce2800/timers

Sample code:
PWMDemo.asm

 

Quiz 7: A/D, Interrupts

Lab 8: Cruise Control

 
W PWM generation continued
F Review for Exam 2
9
2/6
M
Exam 2
 



Sample code:
WatchdogDemo.asm


Sample code:
Exam2-2012.asm
Lab 9: Sound Synthesizer






Lab 10: Sound Synthesizer - Part 2
W Watchdog Timer
F Exam review

ISR's and SREG manangement

10
2/13
M

Timer Input Capture

Sample code:
TimerInputCapture.asm

Sample code:
eeprom.asm



Final Exam Example

W EEPROM
F

Review for Final Exam

11
2/20

Final Exam:
Wednesday, February 22
11:00am-1:00pm

Course policies

My general course policies apply to this course.

Quizzes & Homework

Quizzes or Homework will be given or assigned each week.

You are encouraged to work with your classmates on homework, so that you can more fully understand the problem and discuss approaches to solution. However, you should work out the solutions to problems individually. Homework problems will be kept short, and will be due the next class period after which they are assigned unless stated otherwise in the homework description.

Quizzes, when given instead of homework, will be given at the beginning of the Lab session. No quiz will be given the week of the Exams. No make-up quizzes will be given.

Grading algorithm

Note that this algorithm indicates how a grade will be determined for students who have successfully demonstrated mastery of the course objectives. An acceptable level of success in meeting all course objectives is a prerequisite for a passing grade in the course.

Criterion Weight
Labs 20%
Quizzes 20%
Hour Exams (2) 40%
Final Exam 20%