EE 351 - Fall 2022
EE 351: Microcontrollers - Fall 2022
Instructor: Kevin Wedeward (Workman Center 221, 835-5708, kevin.wedeward@nmt.edu, https://sites.google.com/nmt.edu/kevin-wedeward/)
Class Day, Time and Place: TR 12:30pm-01:45pm in Workman Center 109
Office Hours: TWR 02:30pm-04:00pm, by appointment, and any time office door is open
Textbook (Required):
The AVR Microcontroller and Embedded Systems Using Assembly and C: Using Arduino Uno and Atmel Studio, 2nd Edition, by Sepehr Naimi, Sarmad Naimi and Muhammad Ali Mazidi, MicroDigitalEd, November 2017, ISBN-10: 0997925965, ISBN-13: 978-0997925968, http://www.microdigitaled.com/AVR/AVR_book_v2.htm
Online-only parts of the book, tutorials and other material can be found on the publisher's website - http://www.microdigitaled.com/AVR/AVR_book_v2.htm as well as the author's website - https://nicerland.com/avr/
Integrated Development Environment (We'll use Microchip Studio):
Microchip (formerly Atmel) Studio - https://www.microchip.com/en-us/development-tools-tools-and-software/microchip-studio-for-avr-and-sam-devices
MPLAB X - https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide
Command line options are available for assembling/compiling and programming the microcontroller, but simulating, debugging and programming are simpler (and may be only available) with the IDEs
Assemblers/Compilers (We'll use AVR Assembler and one of the C compilers):
AVR Assembler - https://ww1.microchip.com/downloads/en/devicedoc/40001917a.pdf - distributed with Microchip Studio
MPLAB XC8 Assembler and Compiler - https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers - can be integrated with Microchip Studio and MPLAB X
AVR GCC 8-bit Toolchain (Assembler and Compiler) - https://www.microchip.com/en-us/tools-resources/develop/microchip-studio/gcc-compilers - can be integrated with Microchip Studio and MPLAB X
Useful Links:
ATmega328PB microcontroller's information (features, documentation, application notes, etc.) on Microchip's website - https://www.microchip.com/en-us/product/ATMEGA328PB
ATmega328PB Xplained Mini evaluation kit's/board's information - https://www.microchip.com/en-us/development-tool/atmega328pb-xmini
Prerequisite: EE 271 (Mathematical Engineering)
Course Description: Introduction to microcontrollers. Topics include: programming in assembly and C, bus structures, interrupts, timing, real-time control, parallel and serial interfaces, support devices, disassemblers, and related topics.
Topics:
Digital logic, terminology and numbering systems (binary, decimal, hexadecimal)
Fundamentals of microcontrollers and microprocessors
Architecture of AVR microcontrollers, and specifically the ATmega328 family
Instruction set, assembly programming and the hex file
Programming a chip and/or evaluation board
C programming
Digital Input/Output
Timers
Interrupts
Input capture, wave generation and Pulse Width Modulation (PWM)
Analog-to-digital converters (ADC)
Serial Digital Communication via UART and Inter-Integrated Circuit (IIC or I2C)
Course Outcomes: Students will be able to
read, interpret and use the AVR Instruction Set Manual and data sheets for the ATmega328 family of microcontrollers;
develop, debug and simulate assembly and C programs for the AVR microcontroller in an Integrated Development Environment (IDE);
program an evaluation board based upon the ATmega328 family of microcontrollers; and
interface with a variety of peripherals.
Grading:
Homework - 30% (working with others is encouraged so long as the work turned in is your own)
Projects - 30% (guidance on whether projects are to be done individually or in teams will be provided)
Exams - 40% (exams are to be done individually without external resources other than those specified)
Assignments will typically be submitted via Canvas.
Answers and supporting work must be written neatly and clearly.