Embedded Systems - Fall 2021

Undergraduate and graduate course, Washington State University, School of Electrical Engineering & Computer Science, 2021

Course Instructor.

General Information

  • Day/Time/Venue: M,W,F11.10-12 / Sloan 46
  • Instructor: Mahdi Pedram, Email: mahdi.pedram@wsu.edu, Office: Dana 114, Office Hours: Monday and Wednesday 2pm to 3pm or by appointment.
  • Pre-requisite: CptS 360 Systems Programming; Good background on Operating Systems, C/C++ programming experience, and knowledge of microprocessors.
  • Course Webpage: https://mahdipedro.github.io//teaching/2021-fall-teaching-1 (for lecture notes, syllabus, class schedule, etc.); and WSU Canvas (for grades, submission of the assignments).
  • Main Textbooks:
    1. Embedded Systems: Introduction to Arm® Cortex™-M Microcontrollers (Volume 1) 5th Edition, By: Jonathan W Valvano, ISBN-13: 978-1477508992, ISBN-10: 1477508996.
    2. Embedded Systems: Real-Time Interfacing to Arm Cortex-M Microcontrollers, 5th Edition, By: Jonathan W Valvano, ISBN-13: 978-1463590154, ISBN-10: 1463590156.

Course Syllabus

  • Introduction to Computers and Electronics
    • Review of number representation & arithmetic: binary representation, conversion, sign magnitude and 2’s complement representations, representation in decimal format, computer arithmetic, addition, subtraction, overflow.
    • Review of digital design basics: what is a digital system, combinational logics, gates, truth table, decoder, encoder, multiplexer, logic simplification, rules of Boolean algebra, designing a simple 1-bit ALU
  • Introduction to Embedded Systems & Applications
  • Introduction to the ARM Cortex-M
    • Instruction Set Architecture (ISA), ARM registers, Processor Status Register (PSR), Instruction Format and Instruction Types, Memory Mapped I/O.
  • Introduction to Input / Output
    • I/O Ports configuration on Arm micro-controller TM4C123: I/O types, Direction register, Data register;
  • Electronic Circuits
    • Current, voltage, Ohms law, power, voltage division, current division, transistor-level NAND gate.
  • System Development Cycle
    • Requirements document, design process, testing; Switch and LED interfacing.
  • Functional debugging;
    • SysTick timer; Arrays in C; Functional debugging.
  • Finite State Machines
    • Precise Timing (using SysTick timer)
  • Serial and Parallel Port Interfacing
    • UART: Methods of synchronization, UART configuration
    • SPI: Fundamentals
    • I2C : Synchronization method, TM4C I2C details
    • USB : Basic principles, modular and integrated USB Interfaces
    • Actuators: Binary Actuators and Motors.
  • Interrupts
    • Introduction to interrupts, Interrupt processing, inter-thread communication, edge-trigger interrupts, configuring edge-trigger interrupts, software code for SysTick periodic interrupt.
  • Digital to Analog Conversion
    • Digitization, Nyquist Theorem, Sampling, Precision, Resolution, Designing a DAC using binary weighted approach, Sound as an analog signal, Designing a DAC using R2R approach, Sound generation example code.
  • ADC and data acquisition
    • Data acquisition system; ADC parameters; Configuring micro-controller for ADC process; Software code for data acquisition.
  • Internet of Things
    • CC3100 Booster Pack, IP Addresses, Client Server Communication.
  • Monitoring complex events
    • Signal processing; Segmentation; Feature extraction; Introduction to Machine Learning.
  • Feature selection
    • Search directions/strategies; Selection criteria; Filter versus wrapper methods
  • Supervised learning algorithms
    • Decision tree classification; K-Nearest-Neighbor classification; Evaluating classifier performance

Statement of Reasonable Accommodation

Reasonable accommodations are available for students with a documented disability. If you have a disability and need accommodations to fully participate in this class, please either visit or call the Access Center (Washington Building 217; 509-335-3417) to schedule an appointment with an Access Advisor. All accommodations MUST be approved through the Access Center. For more information contact a Disability Specialist @ 509-335-3417, http://accesscenter.wsu.edu, Access.Center@wsu.edu.

Campus Safety Information

Review the Campus Safety Plan (http://safetyplan.wsu.edu/) and visit the Office of Emergency Management website (http://oem.wsu.edu/) for a comprehensive listing of university policies, procedures, statistics, and information related to campus safety, emergency management, and the health and welfare of the campus community.

Cheating Policy

Limited cooperation among students on homework assignments and programming projects is encouraged. Students may discuss meaning of the assignments and possible directions on how to solve the problems. However, any written portion of an assignment MUST be the student’s work. Copying from other students or allowing other students to copy your work is considered to be cheating and will result in a reduced or a failing grade.

Assignments (Homework and Projects)

Please read the instructions included in each homework assignment about how to submit your assignment and on late submission policy. Assignments that are submitted beyond the allowed time frame will not be graded. A tutorial document on how to install and use the Keil software is provided on the course website.

Hardware Components

You will be working on hands-on projects. You will need to purchase a number of hardware components for your projects. A list of the components is provided here.

Grading Policy

  • There will be one midterm exam (15%), one final exam (15%), and approximately 10 assignments (70%).
  • The letter-grade equivalencies are based on lower bound thresholds of 90, 87, 83, 80, 77, 73, 70, 67, 63, and 60 for letter-grades of ‘A’, ‘A-‘, ‘B+’, ‘B’, ‘B-‘, ‘C+’, ‘C’, ‘C-‘, ‘D+’, and ‘D’, respectively. An overall course score of below 60 translates into an ‘F’ letter-grade. In short, the letter equivalencies are as follows. ‘A’≥=90; 87≤’A-‘<90; 83≤’B+’<87; 80≤’B’<87; 77≤’B-‘<80; 73≤’C+’<77; 70≤’C’<73; 67≤’C-‘<70; 63≤’D+’<67; 60≤’D’<63; F<60.

Grades

Grades will be posted on WSU Canvas approximately one week after the due date for each homework assignment.

Exams

  • Midterms will take place during normal class hours and in the same classroom as lectures.
  • Final exam will take place according to the University Final Exams Schedules.

Class Schedule

Week OfTopic & ReadingComments
Aug.23Introduction to the course; Review of number representation & arithmetic: binary representation, conversion, sign magnitude and 2’s complement representations, representation in decimal format, computer arithmetic, addition, subtraction, overflow. 
Aug.30Review of digital design basics: what is a digital system, combinational logics, gates, truth table, decoder, encoder, multiplexer, logic simplification, rules of Boolean algebra, designing a simple 1-bit ALU; Introduction to Microcontrollers and Embedded systems: Applications, Von Neumann and Harvard Architectures, Instruction Set Architecture (ISA), ARM registers, Processor Status Register (PSR), Instruction Format and Instruction Types, Memory Mapped I/O. 
Sept.6I/O Ports configuration on Arm micro-controller TM4C123: I/O types, Direction register, Data register; Electronic circuits: current, voltage, Ohms law, power, voltage division, current division, transistor-level NAND gate. 
Sept.13Development cycle: requirements document, design process, testing; Switch and LED interfacing. 
Sept.20SysTick timer; Arrays in C; Functional debugging. 
Sept.27Finite State Machines; Precise Timing (SysTick timer) 
Oct.4UART: Methods of synchronization, UART configuration 
Oct.11Interrupts: Introduction to interrupts, Interrupt processing, inter-thread communication, edge-trigger interrupts, configuring edge-trigger interrupts, software code for SysTick periodic interrupt. 
Oct.18Digital to Analog Conversion: Digitization, Nyquist Theorem, Sampling, Precision, Resolution, Designing a DAC using binary weighted approach, Sound as an analog signal, Designing a DAC using R2R approach, Sound generation example code. 
Oct.25ADC and Data Acquisition: Data acquisition system; ADC parameters; Configuring micro-controller for ADC process; Software code for data acquisition. 
Nov.1Monitoring complex events: Signal processing; segmentation; feature extraction; Introduction to Machine Learning