Slides - TriEmbed
Download
Report
Transcript Slides - TriEmbed
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