TECH 4234
Microprocessor Interface Technology
Fall 2019

Instructor Info

Daniel Kohn
Office ET218
Phone: 678-4515
Office Hours

Course Info

Course Policies
GradeWatch Access

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

Author's Website

Required Software

Atmel Studio 7
Arduino IDE (for avrdude utility)

Course Outline:

Aug 26Welcome
Intro to uProc Communications
Aug 28Review TECH 3233  Lab #1 - Due by end of lab.
Sep 2Labor Day (No Class)   
Sep 4-11Sync Serial using Interrupts  Lab #2 - Due 9-16-19 at start of class. Click HERE for array String.
Sep 16UART/USARTChp 11

Basics of UART Communication


Asynchronous Serial (Hackaday)
Sep 18-30USART (cont)
C Programming and Strings
Dealing with Strings in C Lab #3 - Multiple parts (make sure you save and/or demo each part to instructor). Due date Oct 2, 2019 at start of class.
Oct 2-21SPIWhat could go wrong: SPI (Hackaday)


SPI Explained (Note code for different uProc)
 Lab #4 - Due date Oct 21, 2019 at end of class.
Oct 14No Class - Fall Break   
Oct 16No Class - Finish SPI Lab   
Oct 21SPI Cont   
Oct 23I2CChp 18

What Could Go Wrong? I2C Edition (Hackaday)
 Lab #5a - get program 18-13 working for RTC. We will replace the uart routines in the sample code and use printf instead.
Oct 28 - Nov 4I2C (Cont)  Lab #5b - Add the ADXL345 to the I2C Bus and add code to the previous program to read the accelerometer and output a CSV output to the terminal including time and date, x, y, and z values.
Nov 6WiFi Using ESP8266  AT CommandsLab #6
Nov 11-18ESP8266 Cont   
Nov 20Final Project  Final Project Demo and code due by exam time (no extentions, no exceptions)
Nov 25    
Nov 27Thanksgiving (No Class)    
Dec 2    
Dec 4    
Dec 11Exam Time   

Reference Links:

ATmega328P Website
ATmega328P / Arduino pinout
C Quick Reference

VT100 Escape Codes

C Style Guides

Rigol Digital Oscilloscope - 2000 Series
• (note: to use USB Stick, it MUST be formatted as FAT32)

Arduino Ethernet Shield 2
WIZ5500 IC
Real Time Clock (BOB 12708)
16x2 SerLCD
ADXL345 Tripple Axis Accelerometer
Transceiver (nRF24L01+)
Wifi Module (ESP8266)
Bi-Directional Logic Level Converter

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"

Atmel Studio add ins:

Microchip Gallery

Go to above link then search for "Microchip Gallery". Click on "Download" on left side of screen and run the downloaded file (if Atmel Studio was opened when you did this, close and reopen Atmel Studio). This should now allow Atmel Studio access to plugins (TOOLS | Extensions and Updates). It is suggested in go ahead and install "Terminal for Atmel Studio"

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