Slides - TriEmbed

advertisement
Embedded Systems
– Shape the World
Course Review: Jan – May 2015
edX – MOOC
UT.6.02x
University of Austin, Texas
Jonathan Valvano & Ramesh Yerriballi
Student: Craig Cook
TriEmbed Group – 8 June 2015
www.triembed.org
Who am I?

Bachelor of Information Technology

Worked in IT since mid 90's

Former Systems Administrator

IT Manager

Recently interested in Raspberry Pi and Ardunio
edX

MOOC - Massive Online Open Course

28,000 students (approx)

4000 worked on real board finished one lab

Tiva™ C Series TM4C123G LaunchPad
Evaluation Board - ARM Cortex™-M4F CPU

Sponsors: ARM and Texas Instruments

Free (optional paid certificate)
Target Students



High School or College student thinking about
engineering career
Tech who likes gadgets (should know about
http://embedded.fm)
Professional engineer expanding skills to
embedded systems
Course Goals




Understanding how the computer stores and
manipulates data
The understanding of embedded systems
using modular design and abstraction
C programming: considering both function
and style
The strategic use of memory
Course Goals (Continued)




Debugging and verification using a simulator
and on the real microcontroller
How input/output using switches, LEDs,
DACs, ADCs, motors, and serial ports
The implementation of an I/O driver,
multithreaded programming
Understanding how local variables and
parameters work
Course Goals (Continued)




Analog to digital conversion (ADC), periodic
sampling
Simple motors (e.g., open and closed-loop
stepper motor control)
Digital to analog conversion (DAC), used to
make simple sounds
Design and implementation of elementary
data structures
Buying Hardware

Worldwide Course

Element14

Digikey

Mouser

US$40 - US$70 parts

http://edx-orgutaustinx.s3.amazonaws.com/UT601x/index.ht
ml
Image from
http://users.ece.utexas.edu/~valvano/Volume1/
E-Book/
Software

Keil uVision (V4.74) compiler/debugger/simulator developed by ARM

TexaS - Test EXecute and Simulate

C programming language
Support

piazza (student forums)

Study Groups (organized via piazza)
Module 1
Welcome and Introduction to course
and staff

Introduction

Structure and Objectives

Syllabus

http://users.ece.utexas.edu/~valvano/Volume1/
E-Book/

Assessment

New for Spring 2015
Module 1
Welcome and Introduction to course
and staff

Introduction

Structure and Objectives

Syllabus

http://users.ece.utexas.edu/~valvano/Volume1/
E-Book/

Assessment

New for Spring 2015
Module 2
Fundamental concepts

Binary number systems

Embedded Systems

Introduction to Computers

IO ports (GPIO) / Alternate function

CPU registers

Assembly Language

Address space and memory map

Software Development Process
Figure 2.6. An embedded system includes a
microcomputer interfaced to external devices.
http://users.ece.utexas.edu/~valvano/Volume1/EBook/C2_FundamentalConcepts.htm
Module 2
Fundamental concepts

Binary number systems

Embedded Systems

Introduction to Computers

IO ports / Alternate function

CPU registers

Assembly Language

Address space and memory map

Software Development Process
Module 3
Electronics

Electric Circuits

Resistors

Voltage

Current

Ohm’s Law
Module 4
Digital Logic

Binary Information Implemented with MOS
transistors

Digital Logic

Flip-flops are used for storage

Binary Adder

Digital Information stored in Memory
Module 4
Digital Logic

Binary Information Implemented with MOS
transistors

Digital Logic

Flip-flops are used for storage

Binary Adder

Digital Information stored in Memory
Logic Functions
Module 4
Digital Logic

Binary Information Implemented with MOS
transistors

Digital Logic

Flip-flops are used for storage

Binary Adder

Digital Information stored in Memory
Module 5
Introduction to C programming

Introduction

Structure and Organization of C

Variables and Expressions

Functions

Conditional branching and loops

Keyboard input using scanf

C Keywords and Punctuation
Module 6
Microcontroller Input/Output

Stellaris and Tiva pins

Basic Concepts of Input and Output Ports

I/O Programming and the Direction Register

Debugging monitor using a LED

Hardware Debugging Tools
Alternate Functions

UART
Universal asynchronous receiver/transmitter

SSI
Synchronous serial interface

I2C
Inter-integrated circuit
Timer
compare
Periodic interrupts, input capture, and output

PWM
Pulse width modulation

ADC
Analog to digital converter, measure analog signals

Analog Comparator
Compare two analog signals

QEI
Quadrature encoder interface

USB
Universal serial bus

Ethernet
High-speed network

CAN
Controller area network

Module 6
Microcontroller Input/Output

Stellaris and Tiva pins

Basic Concepts of Input and Output Ports

I/O Programming and the Direction Register

Debugging monitor using a LED

Hardware Debugging Tools
Initialize an I/O port for general use
void PortF_Init(void){ volatile unsigned long delay;
SYSCTL_RCGC2_R |= 0x00000020;
// 1) activate clock for Port F
delay = SYSCTL_RCGC2_R;
// allow time for clock to start
GPIO_PORTF_LOCK_R = 0x4C4F434B;
// 2) unlock GPIO Port F
GPIO_PORTF_CR_R = 0x1F;
// allow changes to PF4-0
// only PF0 needs to be unlocked, other bits can't be locked
GPIO_PORTF_AMSEL_R = 0x00;
// 3) disable analog on PF
GPIO_PORTF_PCTL_R = 0x00000000;
// 4) PCTL GPIO on PF4-0
GPIO_PORTF_DIR_R = 0x0E;
// 5) PF4,PF0 in, PF3-1 out
GPIO_PORTF_AFSEL_R = 0x00;
// 6) disable alt funct on PF7-0
GPIO_PORTF_PUR_R = 0x11;
// enable pull-up on PF0 and PF4
GPIO_PORTF_DEN_R = 0x1F;
// 7) enable digital I/O on PF4-0
}
Module 6
Microcontroller Input/Output

Stellaris and Tiva pins

Basic Concepts of Input and Output Ports

I/O Programming and the Direction Register

Debugging monitor using a LED

Hardware Debugging Tools
Module 7
Design and Development Process

Product Life Cycle

Successive Refinement

Quality Design

Functions, Procedures, Methods, Subroutines

Making Decisions
Module 7
Design and Development Process

Product Life Cycle

Successive Refinement

Quality Design

Functions, Procedures, Methods, Subroutines

Making Decisions
Golden Rule of Software
Development
Write software for others as
you wish they would write
for you.
Module 7
Design and Development Process

Product Life Cycle

Successive Refinement

Quality Design

Functions, Procedures, Methods, Subroutines

Making Decisions
Module 8
Interfacing Switches and LEDs

Breadboards

Switches

LED interfaces

Hardware and software design using flowcharts.

Testing
Module 9
Arrays and Functional Debugging

Debugging Theory

SysTick Timer

Arrays

Strings

Functional debugging
Module 10
Finite State Machines

Phase Lock Loop

Systick

Structs

Finite State Machines

Stepper Motors
Finite State Machine
http://users.ece.utexas.edu/~valvano/Volume1/EBook/C10_FiniteStateMachines.htm

Interactive Tool 10.1
Module 10
Finite State Machines

Phase Lock Loop

Systick

Structs

Finite State Machines

Stepper Motors
Module 11
Serial Interfacing


I/O Synchronization
Universal Asynchronous
Receiver/Transmitter (UART) - The Serial
Interface

Conversions

Distributed Systems

Interfacing the Nokia 5110
Module 11
Serial Interfacing


I/O Synchronization
Universal Asynchronous
Receiver/Transmitter (UART) - The Serial
Interface

Conversions

Distributed Systems

Interfacing the Nokia 5110
Module 12
Interrupts



Interrupt Concepts
Inter-thread communication and
synchronization
Nested Vectored Interrupt Controller (NVIC) on
the ARM Cortex-M Processor

Edge-triggered Interrupts

SysTick Periodic Interrupts

DC Motor Interface with PWM
Module 13
DAC and Sound

Approximating continuous signals in the digital
domain

Interactive Tool 13.1

Digital to Analog Conversion

Interactive Tool 13.2

Sound Generated by Speakers

Music Generation
Module 13
DAC and Sound


Interactive Tool 13.1
http://users.ece.utexas.edu/~valvano/Volume1/
E-Book/C13_DACSound.htm
Module 13
DAC and Sound

Approximating continuous signals in the digital
domain

Interactive Tool 13.1

Digital to Analog Conversion

Interactive Tool 13.2

Sound Generated by Speakers

Music Generation
Module 13
DAC and Sound


Interactive Tool 13.2
http://users.ece.utexas.edu/~valvano/Volume1/
E-Book/C13_DACSound.htm
Module 13
DAC and Sound

Approximating continuous signals in the digital
domain

Interactive Tool 13.1

Digital to Analog Conversion

Sound Generated by Speakers

Music Generation
Music Generation
3 Bit DAC
Module 14
ADC and Data Acquisition

Analog to Digital Conversion

ADC on the TM4C123/LM4F120

Nyquist Theorem

Data Acquisition and Control Systems

Robot Car Controller
Module 14
ADC and Data Acquisition

Analog to Digital Conversion

ADC on the TM4C123/LM4F120

Nyquist Theorem

Data Acquisition and Control Systems

Robot Car Controller
Module 14
ADC and Data Acquisition

Analog to Digital Conversion

ADC on the TM4C123/LM4F120

Nyquist Theorem

Data Acquisition and Control Systems

Robot Car Controller
Module 15
Systems Approach to Game Design

Requirements Document

Modular Design

Introduction to Graphics

Using Structures to Organizing Data

Periodic Interrupt using Timer 2A

Random Number Generator

Summary and Best Practices
Lab 16
Internet of Things

Introduction to the Internet of Things

The internet in a nutshell

Internet of Things

IP Addresses

CC3100 Booster pack

Client Server communication

Communication with a weather server

Summary and best practices
Final Thoughts

Many hours of work

Great introduction to Embedded Systems

Want to finish course

Possible future presentations
Download