660 likes | 669 Views
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. Embedded Systems – Shape the World. Who am I?. Bachelor of Information Technology
E N D
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 Embedded Systems – Shape the World
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 1Welcome 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 1Welcome 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 2Fundamental 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 2Fundamental 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 3Electronics • Electric Circuits • Resistors • Voltage • Current • Ohm’s Law
Module 4Digital Logic • Binary Information Implemented with MOS transistors • Digital Logic • Flip-flops are used for storage • Binary Adder • Digital Information stored in Memory
Module 4Digital Logic • Binary Information Implemented with MOS transistors • Digital Logic • Flip-flops are used for storage • Binary Adder • Digital Information stored in Memory
Module 4Digital Logic • Binary Information Implemented with MOS transistors • Digital Logic • Flip-flops are used for storage • Binary Adder • Digital Information stored in Memory
Module 5Introduction 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 6Microcontroller 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 6Microcontroller 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 6Microcontroller 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 7Design and Development Process • Product Life Cycle • Successive Refinement • Quality Design • Functions, Procedures, Methods, Subroutines • Making Decisions
Module 7Design 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 7Design and Development Process • Product Life Cycle • Successive Refinement • Quality Design • Functions, Procedures, Methods, Subroutines • Making Decisions
Module 8Interfacing Switches and LEDs • Breadboards • Switches • LED interfaces • Hardware and software design using flowcharts. • Testing
Module 9Arrays and Functional Debugging • Debugging Theory • SysTick Timer • Arrays • Strings • Functional debugging
Module 10Finite 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 10Finite State Machines • Phase Lock Loop • Systick • Structs • Finite State Machines • Stepper Motors
Module 11Serial Interfacing • I/O Synchronization • Universal Asynchronous Receiver/Transmitter (UART) - The Serial Interface • Conversions • Distributed Systems • Interfacing the Nokia 5110
Module 11Serial Interfacing • I/O Synchronization • Universal Asynchronous Receiver/Transmitter (UART) - The Serial Interface • Conversions • Distributed Systems • Interfacing the Nokia 5110
Module 12Interrupts • 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 13DAC 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 13DAC and Sound • Interactive Tool 13.1 • http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C13_DACSound.htm