ELEC 5260/6260/6266:  Embedded Computing Systems

    Spring Semester 2019

    Instructor: Victor P. Nelson (nelsovp@auburn.edu, Office: Broun 326)

Syllabus

Exams

Midterm Quiz 1 – Wednesday, 2/13/2019

Midterm Quiz 2 – Monday, 4/1/2019

Final Exam: Monday, 4/29/2019, 8:00–10:30 am – BROUN HALL ROOM 306

Assignments

1.      Monday, 1/14/19: Read about and write a 4 to 5-page report on a commercial multimedia embedded system (smart phone, video game, music player, etc.) or an Internet of Things (I0T) system. This should be a system for a specific application, and not a general-purpose component (microcontroller, FPGA, etc.) Do not discuss “marketing” information – focus on technical details (choose a system for which such details are available.)  The report should list and describe the major components (processors, memory, input/output devices and controllers), system architecture, operating system, and other relevant system information. List all references used for the report.

2.      Wednesday, 1/23/19: Questions on design methodology and UML.

3.      Friday, 2/1/19: Arm assembly language programs

4.      Wednesday, 2/6/19: Functions and Subroutines

5.      Monday, 2/18/19: Input/Output- Questions and Project

6.      Wednesday, 2/27/19: Interrupts: Stopwatch Project

7.      Wednesday, 3/6/19: CPU: Cache, Virtual Memory, Pipelines (Chap. 3)

8.      Friday, 3/22/19: CPU Buses and Memory Systems (Chap. 4)

9.      Friday, 3/29/19: Audio Recorder Project (Part 1)

·         System clock configuration for PLL and 80MHz SYSCLK

·         Audio project setup items (for DMA)

10.  Monday, 4/08/19: Audio Recorder Project (Part 2)

11.  Wednesday, 4/17/19:  RTOS Questions (Chap. 6)

12.  Friday, 4/26/19: ELEC 5260 Final Project

                           ELEC 6260/6266 Final Project

                           Magnetometer startup “glitch”

Course Notes

Lecture 01 (1/09/19) Embedded systems overview (Chap. 1.1, 1.2)

Lecture 02 (1/11/19) Design methodology (Chap 1.3)

Lecture 03 (1/14/19) Design methodology (Chap 1.3)  UML (Chap. 1.3, 1.4)

Lecture 04 (1/16/19) UML (Chap. 1.3, 1.4) UML Example (Chap. 1.4)

Lecture 05 (1/18/19) UML Example (Chap. 1.4)  Embedded System CPUs (Chap. 2.1,2.2)

                  (1/21/19) MLK Day Holiday

Lecture 06 (1/23/19) Arm processors (Chap. 2.3)

Lecture 07 (1/25/19) Hardware Security in Embedded Systems (Prof. Ujjwal Guin)

Lecture 08 (1/28/19) Arm processors (Chap. 2.3)

Lecture 09 (1/30/19) Arm processors (Chap. 2.3)

Lecture 10 (2/01/19) Arm processors (Chap. 2.3), DSP devices (Chap. 2.5)

Lecture 11 (2/04/19) Arm processors (Chap. 2.3), DSP devices (Chap. 2.5)

Lecture 12 (2/06/19) Input/Output (Busy-Wait.(Chap. 3.1,3.2)

Lecture 13 (2/08/19) STM32L476 GPIO (Ref. Manual)

Lecture 14 (2/11/19) STM32L476 GPIO and Hierarchical Software (Ref. Manual)

                   (2/13/19) Midterm Quiz #1

Lecture 15 (2/15/19) Interrupts (Chap. 3.2)

Lecture 16 (2/18/19) Interrupts (Chap. 3.2), Cortex-M/STM32L476 Interrupts (Ref. Manual)

Lecture 17 (2/20/19) Cortex-M/STM32L476 Interrupts (Ref. Manual)

Lecture 18 (2/22/19) Cortex-M/STM32L476 Interrupts (Ref. Manual)

Lecture 19 (2/25/19) CPU Memory Systems (Chap. 3.5)

Lecture 20 (2/27/19) Cache and Virtual Memory (Chap. 3.5)

Lecture 21 (3/01/19) CPU Performance and Pipelines (Chap. 3.6)

Lecture 22 (3/04/19) CPU Buses and Memory (Chap. 4.1-4.4)

Lecture 23 (3/06/19) Memory Devices and Interfacing (Chap. 4.1-4.4)

Lecture 24 (3/08/19) Memory Devices and Interfacing (Chap. 4.1-4.4)

Lecture 25 (3/18/19) Memory Devices and DMA (Chap. 4.1-4.4)

Lecture 26 (3/20/19) DMA (Ch. 4.3.2); QSPI flash hierarchical SW; SPI (notes)

Lecture 27 (3/22/19) SPI (notes); I2C (Chap. 10.4.5)  Previous hierarchical SW examples

Lecture 28 (3/25/19) I2C (Chap. 10.4.5) Previous Codec/I2C class examples

Lecture 29 (3/27/19) Analog I/O (notes)

Lecture 30 (3/29/19) Analog I/O (notes)

                   (4/01/19) Midterm Quiz #2

Lecture 31 (4/03/19) Analog converters

Lecture 32 (4/05/19) Analog converters

Lecture 33 (4/08/19) Processes and Tasks (Chap. 6.1, 6.2)

Lecture 34 (4/10/19) Real-Time Operating Systems (Chap. 6.3, 6.4)

Lecture 35 (4/12/19) Priority-Based Scheduling (Chap. 6.5)

Lecture 36 (4/15/19) CMSIS-RTOS2 (CMSIS-RTOS2 ref.)

Lecture 37 (4/17/19) Inter-Process Communication (Chap. 6.6, CMSIS-RTOS2 ref.)

Lecture 38 (4/19/19) Inter-Process Communication (Chap. 6.6, CMSIS-RTOS2 ref.)

Lecture 39 (4/22/19) Gyro/Compass, Posix/Nucleus Example (Ch. 6.8), Vehicle Systems (Ch. 9)

Lecture 40 (4/24/19) Power Management (Chap. 3.7, STM32L4xx User Manual)

Lecture 41 (4/26/19) Internet of Things (IoT) (Chap. 8, Arm Doc’s)

                  (4/29/2019 Final Exam in Broun 306)

Resources

·      Marilyn Wolf "Computers as Components, 4rd Edition” resources (slides, labs, uCs, etc.)

·      Kiel MDK-ARM Development Software

·         Download page: http://www.keil.com/demo/

·         Tutorial: Installing MDK-ARM

·         Tutorial: Creating STM32xxx-Discovery Board Projects

·         Sample assembly language source file.

·         Sample assembly language file to be used with startup code

·         Sample C main file to be used with startup code

·         Tutorial: Debugging with MDK-ARM

 

·         STMicroelectronics  (Main web site)

·         STM32L476G-Discovery Kit Web Resources

·         STM32L476G-Discovery Kit User Manual

·         Getting Started with STM32 MCU Discovery Kits Software Tools

·         Getting Started with STM32L476G Discovery Kit Software Tools

·         STM32CubeL4 MCU Package (Examples, Drivers, etc.)

           (STM32CubeMX tool also available on this page)

·         STM32L476VG Microcontroller - Web Resources

·         STM32L476x Data Sheet

·         STM32L4x6 Reference Manual

·         STM32L4 Series Cortex-M4 Programming Manual

·         ST-LINK/V2 Utility Program

 

·         STM32 Discovery Board Special Function Chips:

·         Cirrus Logic CS43L22 Audio DAC

·         ST MP45DT02 MEMS Microphone

·         ST LIS302DL MEMS Motion Sensor/Accelerometer (web site)

            Data sheet,  Application note, Class notes (scan)

·         ST LIS3DSH MEMS Motion Sensor/Accelerometer (web site)

            Data sheet,  Application note, Class notes (scan)

 

·         OLDER Discovery Board Resources

·         STM32F4-Discovery Kit (Bottom of the page lists vendors for ordering boards.)

·         Cortex-M4 training for STM32F4-Discovery board using ARM Keil MDK toolkit

·         STM32F4-Discovery “Blinky” Example (.zip file)

·         C function to configure system core clock to 168MHz

·         STM32F407VG Microcontroller - Web Resources

·         STM32F4xx Microcontrollers Technical Reference Manual

·         STM32F4xx Cortex-M4 programming manual

 

·         Arm RESOURCES  (http://www.arm.com)

·         ARM Cortex-M4 User Guide

·         ARM Thumb Instructions Quick Reference

·         ARM Architecture Reference Manual (ARM, Ltd.)

·         ARM7TDMI Technical Reference Manual (ARM, Ltd.)

·         ARM Assembly Language (Knaggs & Welsh - Bournemouth Univ.)

·         ARM University Program: http://www.arm.com/support/university/index.php/

·         ARM lectures by Dr. Santanu Chaudhury, EE Department, IIT Delhi: http://www.youtube.com/watch?v=4VRtujwa_b8&playnext=1&list=PL95AFA4ABA8B28627&feature=results_main

 

·         Texas Instruments DSP Devices

·                     TMS320C5x DSP User’s Guide

·                     TMS320C55x DSP CPU Reference Guide

·                     TMS320C55x DSP User Guides

·                     I2C Bus Specification (Philips)

·                     I2S Bus Specification (Philips)

·                     LCD Graphic Display

·                         Hantronix HDM64GS12 Product Spec (equivalent to YM12864I_LCD)

·                         Samsung KS108B LCD Driver/Controller

·                         Interfacing Hantronix LCDs to an 8-bit uC (design example)

·                        Sample Drivers: HDM64GS12.c     GLCD.c

·                     UML Resources:

·                         Object Management Group (OMG)

·                         Practical UML (Borland)

·                         UML Tutorial (Kennesaw State)

·                         StarUML (UML modeling tool)

·                     Memory Devices on uCdragon Board

·                         SST39VF1601 Nor Flash Memory

·                         IS61LV51216-12T SRAM

·                     NXP/Philips LPC2292/2294 Microcontroller and "uCdragon" Board Resources

·                         LPC 2292/2294 Product Data Sheet

·                         LPC 2292/2294 User Manual

·                         uCdragon Board Photo

·                         uCdragon Board Schematics

·                         uCdragon Board Quick Start Guide

·                         Creating projects for Keil/uCdragon

·                         Summary of uCdragon board connections and resources

·                         PREVIOUS Windows XP setup for parallel port JTAG wiggler:

·                     Student's Guide to Building a Low-Cost Development Environment

·                     Download "H-JTAG" software.    (Executable .exe file)