ELEC 5260/ELEC 6260-6266:  Embedded Computing Systems

    Spring 2016

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

Syllabus

Assignments

1.      Friday, 1/15/16: Read about and write a 4 to 5-page report on a commercial multimedia embedded system (smart phone, video game, music player, etc.) 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.      Wednesday, 1/27/16:  System design and UML modeling

3.      Friday, 2/5/16:            ARM assembly language programs

4.      Friday, 2/12/16:           ARM assembly language subroutines

5.      Friday, 2/19/16            DSP program and input/output operation

6.      Monday, 2/29/16         Parallel I/O (GPIO) busy-wait operation

7.      Friday, 3/4/16              Parallel I/O (GPIO) interrupt-driven operation

8.      Friday, 3/11/16            Cache and virtual memory (Chapter 3)

9.      Wednesday, 3/23/16   CPU buses and external memory (Chapter 4)

10.  Friday, 4/8/16              Audio tone generator project  (Part 1)

11.  Friday, 4/15/16            Audio tone generator project  (Part 2)

12.  Friday, 4/22/16            Analog subsystem  (From analog notes)

13.  Friday, 4/29/16            ELEC 5260 RTOS project

                                    ELEC 6260 RTOS project

14.  RTOS review questions (Chapter 6)

Course Notes

1.       Wednesday, 1/13/16   Embedded systems overview (Chap. 1.1, 1.2)

2.       Friday, 1/15/16            System design methodology (Chap. 1.3)

3.       Monday, 1/18/16         MLK Holiday (no class)

4.       Wednesday, 1/21/16   Design methodology, UML modeling (Chap. 1.3, 1.4)

5.       Friday, 1/23/16            UML modeling , UML example (Chap. 1.3, 1.4)

6.       Monday, 1/25/16         UML modeling , UML example (Chap. 1.3, 1.4)

7.       Wednesday, 1/27/16   UML example (Chap.1.4)  ARM processors (Chap. 2.1-2.3)

1.       Friday, 1/29/16            ARM instruction set architecture (Chap. 2.1-2.3)

2.       Monday, 2/1/16           ARM instruction set architecture (Chap. 2.1-2.3)

3.       Wednesday, 2/3/16     ARM instruction set architecture (Chap. 2.1-2.3)

4.       Friday, 2/5/16              ARM instruction set architecture (Chap. 2.1-2.3)

5.       Monday, 2/8/16           ARM instruction set architecture (Chap. 2.1-2.3)

6.       Wednesday, 2/10/16   ARM instruction set architecture (Chap. 2.1-2.3)

7.       Friday, 2/12/16            TMS320C5x digital signal processor (Chap. 2.5)

8.       Monday, 2/15/16         Input/Output operations and programming (Chap. 3.2)

9.       Wednesday, 2/17/16   Input/Output operations and programming (Chap. 3.2)

10.    Friday, 2/19/16            STM32F407 microcontroller GPIO (STM documents, below)

11.    Monday, 2/22/16         Quiz #1

12.    Wednesday, 2/24/16   STM32F407 microcontroller GPIO (STM documents, below)

13.    Friday, 2/26/16            Cortex-M interrupts (Chapter 3.2, ARM documents)

14.    Monday, 2/29/16         Cortex-M interrupts (Chapter 3.2, ARM documents)

15.    Wednesday, 3/2/16     Supervisor call  (Chapter 3.3, ARM documents), Memory systems (Chap. 3.5)

16.    Friday, 3/4/16              Memory systems (Chap. 3.5)

17.    Monday, 3/7/16           Memory systems (Chap. 3.5)

18.    Wednesday, 3/9/16     CPU performance (Chap. 3.6, 3.7)

19.    Friday, 3/11/16            CPU buses and external memory (Chap. 4)

SPRING BREAK

20.    Monday, 3/21/16 (NO CLASS MEETING)  CPU buses and external memory (Chap. 4)

21.    Wednesday, 3/23/16   CPU buses and external memory (Chap. 4)

22.    Friday, 3/25/16            Serial peripheral interfaces: SPI and I2C (Chap. 8.4.4)

23.    Monday, 3/28/16         Serial peripheral interfaces: SPI and I2C (Chap. 8.4.4)

24.    Wednesday, 3/30/16   Hierarchical software & serial interfaces: SPI and I2C (Chap. 8.4.4)

25.    Friday, 4/1/16              Quiz #2

26.    Monday, 4/4/16           Hierarchical software design for STM32F4-Discovery (scan of class notes),   Audio codec (scan of class notes),  Digital to analog converter (scanned notes)

27.    Wednesday, 4/6/16     Programmable timer interrupts and waveforms (Part 1)

28.    Friday, 4/8/16              Programmable timer interrupts and waveforms (Part 2)

29.    Monday 4/11/16          Analog input/output

30.    Wednesday 4/13/16    Analog input/output

31.    Friday 4/15/16             Analog input/output

32.    Monday, 4/18/16         Processes and real-time operating systems (RTOS) (Part 1 Chap. 6.1-6.5)

33.    Wednesday, 4/20/16   RTOS (Part 2 – Chap. 6.1-6.5)  Keil CMSIS-RTOS

34.    Friday, 4/22/16            RTOS (Part 2 – Chap. 6.1-6.5)  Keil CMSIS-RTOS

35.    Monday, 4/25/16         RTOS Inter-process communication (Chap. 6.6)

36.    Wednesday, 4/27/16  

37.    Friday, 4/29/16

 

Quizzes/Exams

·         Midterm Quiz #1: Monday, Feb. 22

·         Midterm Quiz #2: Friday, April 1

·         Final Exam: Tuesday, May 3, 8:00-10:00 am

Resources

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

·                     Kiel MDK-ARM Development Software

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

·                     Tutorial: Installing MDK-ARM

·                     Tutorial: Creating STM32F4-Discovery Board Projects

·                     Sample assembly language source file.

·                     Tutorial: Debugging with MDK-ARM

·                     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

·                     STM32 ST-LINK/V2 Utility – Go to this page, select “Design Support” tab, scroll down to “Device Programmers”, and then download and install the STM32 ST-LINK utility. This will also install the USB device driver for the ST-LINK/V2, needed to connect to the project board.

·                     STMicroelectronics

·                     STM32F407VG Microcontroller - Web Resources

·                     STM32F4xx Microcontrollers Technical Reference Manual

·                     STM32F4xx Cortex-M4 programming manual

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

·                     ARM Resources

·            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 home page: http://www.arm.com

·                         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

·                         uC Dragon Demo Program:  startup.s    hex file

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