embedded systems – shape the world course review: jan – may 2015 edx – mooc ut.6.02x...

Post on 25-Dec-2015

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Embedded Systems – Shape the World

Course Review: Jan – May 2015edX – MOOC

UT.6.02xUniversity of Austin, Texas

Jonathan Valvano & Ramesh Yerriballi

Student: Craig Cook

TriEmbed Group – 8 June 2015www.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-org-utaustinx.s3.amazonaws.com/

UT601x/index.html

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/E-Book/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 Periodic interrupts, input capture, and output compare

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/E-Book/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

top related