ELEC 5260/ELEC 6260:  Embedded Computing Systems

    Spring 2014

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

Syllabus

Assignments

1.       Monday, 1/13/14: Read about and write a 4-page report an a commercial multimedia embedded system (smart phone, video game, etc.) 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. Do not discuss “marketing” information.  Be sure to list all references used.

2.       Wednesday, 1/22/14 (Due date changed): Questions from Chapter 1  (download file)  

3.       Monday, 2/3/14: (Due date changed) ARM Assembly Language (Text – Chapter 2 and ARM resources below)

4.       Friday, 2/7/14: Assembly language functions/subroutines

5.       Wednesday, 2/12/14:  DSP program and Questions from Chapter 3

6.       Monday, 2/24/14:  Parallel I/O project

7.       Friday, 2/28/14:  Parallel I/O project with interrupts

8.       Wednesday, 3/5/14:  From the end of Chapter 3, answer questions Q3-24, 25, 26 and 28, related to cache memory.

9.       Wednesday, 3/19/14: Memory design (Chapter 4)

10.    Wednesday, 3/26/14: Audio “Tone Generator” Project (Part 1)

Friday, 4/4/14:           Audio “Tone Generator” Project (Part 2)

11.    Wednesday, 4/9/14:   Analog subsystem design (on paper)

12.    Friday, 4/18/14:           Real-time operating systems – Questions from Chapter 6

13.    Friday, 4/25/14:           ELEC 5260 Final Project

ELEC 6260 Final Project

Course Notes

1.       Wednesday, 1/8/14     Embedded systems overview (Chap. 1.1, 1.2)

2.       Friday, 1/10/14            Embedded systems overview continued (Chap. 1.1, 1.2)

3.       Monday, 1/13/14         Design process (Chap. 1.3), UML modeling (Chap. 1.3)

4.       Wednesday, 1/15/14   UML modeling (Chap. 1.3, 1.4)

5.       Friday, 1/17/14            Design example (Chap. 1.4)

6.       Monday, 1/20/14         No class (MLK Holiday)

7.       Wedneday, 1/22/14     ARM CPUs  (Also see ARM resources below)

8.       Friday, 1/24/14            ARM CPUs  (Also see ARM resources below)

9.       Monday, 1/27/14         ARM CPUs  (Also see ARM resources below)

10.    Wednesday, 1/29/14   Snow day

11.    Friday, 1/31/14            ARM CPUs  (Also see ARM resources below)

12.    Monday, 2/3/14           ARM CPUs  (Also see ARM resources below)

13.    Wednesday, 2/5/14     ARM CPUs  (C-to-assembly class example)

14.    Friday, 2/7/14              Texas Instruments 32C5x DSP

15.    Monday, 2/10/14         Input/Output (Chap. 3.1 – 3.3)

16.    Wednesday, 2/12/14   Input/Output and Interrupts (Chap. 3.1 – 3.3)

17.    Friday, 2/14/14            Interrupts and STM32F4-Discovery Parallel I/O

18.    Monday, 2/17/14         Midterm Quiz #1  (ARM Instruction Set Summary)

19.    Wednesday, 2/19/14   ARM, Cortex and TM32F4-Discovery Interrupts

20.    Friday, 2/21/14            ARM, Cortex and TM32F4-Discovery Interrupts

21.    Monday, 2/24/14         ARM, Cortex and TM32F4-Discovery Interrupts

22.    Wednesday, 2/26/14   ARM, Cortex and TM32F4-Discovery Interrupts

23.    Friday, 2/28/14            Hierarchical memory in Embedded Systems (Chap. 3.5)

24.    Monday, 3/3/14           Cache memory structures (Chap. 3.5)

25.    Wednesday, 3/5/14     CPU buses (Chap. 4.2, 4.3)

26.    Friday, 3/7/14              Memory devices and systems (Chap 4.4, 4.5)

Spring break week (3/10 – 3/15)

27.    Monday, 3/17/14         MSTM32F4 FSMC memory interface, I/O buses

28.    Wednesday, 3/19/14   Serial I/O:  SPI bus, I2C bus, I2S bus (I2C in Chap. 8.4)

29.    Friday, 3/21/14            I2C bus, Hierarchical software design

30.    Monday, 3/24/14         I2C bus, Hierarchical software design, digital to analog conversion (scan of class notes)

31.    Wednesday, 3/26/14   Digital to analog conversion, programmable timers

32.    Friday, 3/28/14            Analog input/output in embedded systems

33.    Monday, 3/31/14         Analog input/output in embedded systems

34.    Wednesday, 4/2/14     Midterm Quiz #2

35.    Friday, 4/4/14              Analog to digital converters

36.    Monday, 4/7/14           Analog to digital converters

37.    Wednesday, 4/9/14     Processes in embedded applications (Chapter 6)

38.    Friday, 4/11/14            Processes in embedded applications (Chapter 6)

39.    Monday, 4/14/14         Real-time operating systems (Chapter 6)

40.    Wednesday, 4/16/14   Real-time operating systems (Chapter 6), Keil/ARM Real-Time Executive (RTX)

41.     

FINAL EXAM: Monday, April 28, 8-10 am

Resources

·         Text book errata

·         Marilyn Wolf "Computers as Components, 3rd Edition” web resources

·         Kiel ARM development software (download page): http://www.keil.com/demo/

·         STMicroelectronics

·         STM32F407VG Microcontroller - Web Resources

·         STM32F4xx Microcontrollers Technical Reference Manual

·         STM32F4xx Cortex-M4 programming manual

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

·         Auburn document: Creating projects for Keil/STM32F4-Discovery

·                      Sample “simple” assembly language source file.

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

·         STM32F4-Discovery Demo Software (.zip file)

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

·         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

·         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/community/university/

·             Online introduction to ARM: http://www.techonline.com/learning/course/100280

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