ELEC 5260/6260/6266:  Embedded Computing Systems

    Summer 2018

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

Syllabus

Exams

Tuesday, 6/19/2018          Midterm Exam (1:00 – 3:00 pm)

Wednesday, 8/1/2018      Final Exam (4:00 – 6:30 pm)

Assignments

1.      Monday, 5/21/18: 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. Do not discuss “marketing” information – focus on technical details.  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.      Friday, 5/25/18:  Questions from Chapter 1 of the text.

3.      Friday, 6/1/18: ARM assembly language (Text Chapter 2)

4.      Wednesday, 6/6/18:  ARM and C subroutines/functions

5.      Wednesday, 6/13/18:   Manipulating GPIO pins

6.      Monday, 6/18/18: I/O and interrupt operations (from Chap. 3 of text)

7.      Wednesday, 6/27/18:  CPU memories and pipelines (Chap. 3 of text)

8.      Friday, 6/29/18:  Digital stopwatch project

9.      Friday, 7/6/18:  CPU buses and memory (Chap. 4 of text)

10.  Tuesday, 7/10/18:  DRAFT VERSION - Audio recorder/player project

11.  Friday, 7/13/18:  FINAL VERSION - Audio recorder/player project

12.  Monday, 7/23/18:  Processes and RTOS (Chap. 6 of text)

13.  Friday, 7/27/18:  ELEC 5260 Final Project

                            ELEC 6260/6266 Final Project

Course Notes (Correspond to Recorded Lectures on Canvas)

Lecture 01       Embedded systems overview (Chap. 1.1, 1.2)

Lecture 02       Embedded systems overview (Chap. 1.1, 1.2),

                              Design methodology (Chap 1.3)

Lecture 03       Design methodology (Chap 1.3),

                              UML modeling (Chap. 1.4)

Lecture 04       UML modeling (Chap. 1.4)

Lecture 05       UML modeling (Chap. 1.4), UML example  (Chap. 1.4)

Lecture 06       ARM processor (Chap. 2.1, 2.2, 2.3)

Lecture 07     ARM processor (Chap. 2.1, 2.2, 2.3)

Lecture 08     ARM processor (Chap. 2.1, 2.2, 2.3)

Lecture 09     ARM processor (Chap. 2.1, 2.2, 2.3)

Lecture 10     TMS320C5x digital signal processor (Doc’s below)

Lecture 11     Input/output devices (Chap. 3)

Lecture 12     I/O programming (Chap. 3), STM32L476 GPIO pins

Lecture 13     I/O programming (Chap. 3), STM32L476 GPIO pins

Lecture 14     Interrupt programming (Chap. 3), STM32L476 Interrupts

Lecture 15     Interrupt programming (Chap. 3), STM32L476 Interrupts

Lecture 16     Interrupt programming (Chap. 3), STM32L476G-Discovery LCD

Lecture 17     Hierarchical software design, STM32L476G-Discovery LCD

Lecture 18     Hierarchical memory systems (Chap. 3.5)

Lecture 19     Hierarchical memory systems (Chap. 3.5)

Lecture 20     CPU pipelines (Chap. 3.6)

Lecture 21     CPU buses and memory (Chap. 4.1-4.4)

Lecture 22     CPU buses and memory (Chap. 4.1-4.4)

Lecture 23     Memory devices for embedded systems

Lecture 24     Video:ARM SoC design for IoT to be posted.

Lecture 25     CPU buses and memory (Chap. 4.1-4.4)

Lecture 26     Serial peripheral interfaces – SPI

Lecture 27     Homework review; Project hierarchical software (drivers, etc.)

Lecture 28     Serial peripheral interfaces – I2C

Lecture 29     Analog input/output

Lecture 30     Digital-to-analog/analog-to-digital converters

Lecture 31     Project review – BSP drivers for flash and audio in/out

Lecture 32     Tasks and processes in embedded systems (Chap. 6)

Lecture 33     Tasks and processes;  Real-Time Operating Systems (Chap. 6)

Lecture 34     Real-Time Operating Systems (Chap. 6)

Lecture 35     Real-Time Operating Systems (Chap. 6), CMSIS-RTOS

Lecture 36     RTOS/CMSIS-RTOS Communication and Synchronization

Lecture 37     RTOS/CMSIS-RTOS Communication and Synchronization

Lecture 38     RTOS/CMSIS-RTOS Communication and Synchronization

Lecture 39     Power management in embedded systems (Chap. 3.7)

Lecture 40     Internet of Things (Chap. 8)

 

 

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

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