TECH 3233
Microprocessor Tech
Spring 2020

Instructor Info

Daniel Kohn
Office ET218
Phone: 678-4515
Office Hours

Course Info

Course Policies
GradeWatch Access
Access Graded Work (Feedback)

Assignment Submission

Submit Assignments

Required Text

The AVR Microcontroller and Embedded Systems Using Assembly and C: Using Arduino Uno and Atmel Studio by Sarmad Naimi and Muhammad Ali Mazidi 2nd Ed available via Amazon. Please Buy the NOT Rent.

Author's Website

Required Software

Atmel Studio 7
Arduino IDE (for avrdude utility)

Online Class

Because of the Covid-19 Virus, TECH3233 will resume on March 24, via Zoom web based video conferencing at the normal class time (T-R 9:40am to 11:05am by clicking on icon (below)).

I will also be available during our lab time (T 1pm to 3:45pm) to assist via Zoom as well.

Classes will be recorded for future reference (although currently I am not sure how they will be made available for viewing).

If you have never used ZOOM before, you might want to check out this Video Tutorial and the log in instructions. It is best if you have a mic. A Camera is not required, but I do like seeing who I am talking to. If you do not have a mic, you can ask questions via the Chat function as well. If using a mic, make sure you know how to mute/unmute (to ask questions) and ensure you know how to share your screen so I can see the issues you are having when asking a question on assignments.

Videos of Lectures

I will be posting the lectures to OneDrive (CLICK HERE) for you to view after class.

Course Outline:

Jan 21 Welcome

Course Policies

Introduction Computer History

Computer History
 · History of Intel Processors (Video)
 · History Lost and Found - Mark I Computer (Video)
 · History Lost and Found - ENIAC (Video)
 · History Lost and Found - Transistor (Video)
 · History Lost and Found - Apple Computer (Video)
 · The Most Important Invention of the 20th Century: Transistors (Video)
Class Notes

Jan 23 Number System Review

Memory and Bus Architecture

Number Systems

Flip Flops and Latches Review

Tri-State Buffers

Digital Buffer and the Tri-State Buffer

Notes and Simulations
(zip file contains Lecture Notes, HADES simulation software and all simulation files used in the class - requires Java)

Jan 28 Memory and Bus Architecture (cont)
Digital Buffer and the Tri-State Buffer

Mux / DeMux

Memory (Note: This chapter goes into greater detail than required for this class.)

  Lab #1 - Memory (due start of next lab - electronic submission NOT required)

Full Page Schematic.
Jan 30Memory and Bus Architecture (cont)

CPU Architecture
Internal ArchitectureHow A CPU Works 
Feb 4CPU Architecture (Cont) Megaprocessor
Magaprocessor Youtube Channel

Visual 6502
6502 Op Codes
6502 Code
Lab #2 - due in one week. Full Schematic can be found HERE.

Rigol Scope configuration file can be downloaded HERE.

(note - this must be placed on a FAT32 formated thumbdrive. If you need one, ask the instructor)

Due to limited arduino shields, those who volunteered to build their own will have priority. Other students will be in a lottery of who gets them first (unless we have volunteers to do lab outside of the scheduled time).

Rigol Scope Documentation
Feb 6ASM and Machine LangaugeATmega328 Datasheet

AVR Instruction Set

What is a Hex file
 HW #1 - Create the Machine Langauge for the ASM code in example 2-6 (p43) in your textbook. Also do a hand trace of the code (show your work as we did in class).

Prog 2-6:
	LDI	R16,0x38
	LDI	R17,0x2F
	ADD	R16,R17
Feb 11C Code, ASM and Machine Langauge   Lab #3 Atmel, ASM and C. Due by start of next week's lab.

Note: Please save your settings by following THESE INSTRUCTIONS.
Feb 13Q&A, Output Ports, C Code
  • Program Structure
  • Data Types
  • Type Casting
  • Operators (espcially Bitwise)
Learn C Programming
Note: this is not the website used in class, but better since it breaks concepts down further than the one used in class

Bitwise Set / Reset Example
Feb 18C Prog for uControllers (cont)
  • Arrays
  • For Loops
  Lab #4a - When complete, demo to instructor and submit project (as zip file).
Feb 20Digital Input
Feb 25Discussion for Lab 4b  HW #2 - Due Next Class.

Lab #4b - When complete, demo to instructor and submit project (as zip file).
Feb 27A2D / D2A Class Notes

Successive Aprox Spreadsheet
Mar 3Go Over HW #2

A2D Cont
 Chp 13 Notes

Chp 13 Notes (pdf)
Lab #4b Cont
Mar 5Test #1
Labs 1-3, and Digital Output, and all lectures up to, but not including, C Code.
Mar 9-13Spring Break (No Class)   
Mar 16-20Extended Spring Break (No Class)   
Mar 24Hand Back Test #1

ADC (cont)
  Lab #5 - ADC and Floating Point.

Please used Bit Names when setting up ADC (see THIS DOC for more info. All ADC Bit names are defined exactly the same as shown in the textbook, power point slides and ATMEL documentation (ie MSB of ADCRA is named ADEN).
Mar 26InterruptsSwitch Bounce

Magnetic Card Reader

Volatile (in C)
sorry didnt explain in take 2 of lecture
Chp 10 (especially 10.3)

Demo Program
Mar 31Interrupts (cont)

Intro to Timers
 Chp 9
Chp 15
Lab #6 - Interrupts. When complete, submit project (as a zip file). No demonstration required.
Apr 2Timer Overflow Prof Kohn's Timer PPT 
Apr 7Timer Overflow (Cont)  Lab #7 - Blink using Timer Overflow Interrupts. When complete, submit project (as a zip fil). No demonstration required.
Apr 9Input Capture Prof Kohn's Input Capture PPT 
Apr 14Output Compare Prof Kohn's Output Compare PPTLab #8 - Input Capture using TSL237 Light Sensor.
Apr 16Test #2

PWM (Output Compare)
Video of PWM on AVR

General Info on PWM and Servos
Chp 16 (modified)Test #2 - Take home test. Due in one week via electronic submission.
Apr 21Lab #9 Discussion  Lab #9 - Use Output Compare to play the Jeopardy Theme.

Notes to Freq table. Best to print in Landscape Mode.

C Tutorial for Functions
Apr 23Project Discussion  Final Project - Due by May 5, 2020
Apr 28Work on Lab #9 and Project   
Apr 30Discuss Exam
Work on Lab #9 and Project
May 5Exam  Exam - The test is open notes, open book, open references.

Suggest printing it out, working the problems then coming back to the page, fill in the answers on line and submitting.

Please make sure you put in your name, last 4 digits of your U number and your email address in the boxes at the top.

The test will be submitted via email when you click on grade and submit.

Due May 6 by 5pm.

Reference Links:

ATmega328P Website
ATmega328P / Arduino pinout
C Quick Reference
NASA C Styleguide
AVR-C Video Series
Using Named Bits in ATEML Studio
IO Issue - AVR Freaks
Timer Calculator
Atmega328P names in Atmel Studio

Info needed for Labs

Determine Com Port

With Arduino plugged in to computer's USB port
Win 10 - Search for "Powershell" and open
Type - "Get-WMIObject Win32_SerialPort" (no quotes)
check results for Arduino Uno (Com __ )

Atmel Studio

Setup Strings:

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

-C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM7 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i"

To get printf to work with floating point values:

Project | nameofproject Properties | Toolchain : AVR/GNU Linker | General | Check "Use vprintf library(-Wl,-u,vfprintf)"
Project | nameofproject Properties | Toolchain : AVR/GNU Linker | Miscellaneous | Other Linker Flags put into textbox | "-lprintf_flt" (leave off quotes).