Subscribe to Dr. LaMeres' YouTube channel to get access to the most recent textbook videos plus other online instructional content he has created.  Dr. LaMeres’ YouTube channel focuses on introductory-level instruction of digital logic circuits, embedded systems, basic programming, and robotics.  This channel is for: (1) engineering instructors looking for material to augment their live teaching; (2) K-12 teachers wishing to implement engineering modules in their classrooms; (3) makers that need an introduction to basic electrical engineering; or (4) anyone just curious about how computers work.

## Textbook Videos

### Chapter 1: Introduction to Embedded Systems

1.1: What is an Embedded System  (16 min)

### Chapter 2: Digital Logic Basics

2.1: Number Systems
2.1.1: Positional Number Systems
- Formation and Terminology (24 min)
2.1.2: Base Conversions
- Converting from Decimal (14 min)
- Converting to Decimal (12 min)
- Converting between powers-of-2 Bases (3 min)
2.1.3: Binary Arithmetic
Binary Arithmetic (13 min)
2.1.4: Unsigned and Signed Numbers
- Unsigned Numbers (6 min)
- Signed Numbers (21 min)
- Two's Complement Arithmetic (11 min)
2.2: Combinational Logic
2.2.1: Basic Gates
- Functional Description of Digital Logic Behavior (13 min)
- BUF, INV, AND, NAND, OR, NOR Gates (11 min)
- XOR, XNOR Gates (8 min)
2.2.2: Boolean Algebra
- Introduction & Axioms (14 min)
- Single-Variable Theorems (20 min)
- Multiple-Variable Theorems (22 min)
- Functionally Complete Sets (6 min)
2.2.3: Combinational Logic Synthesis
- SOP & Minterms (15 min)
- Minterm Lists (5 min)
- SOP Design Example (8 min)
- POS & Maxterms (11 min)
- Maxterm Lists (3 min)
- POS Design Example (10 min)
- Algebraic Minimization (6 min)
- Karnaugh Map Formation (19 min)
- Minimized SOP's using K-maps (21 min)
- Minimized POS's using K-maps (17 min)
- Minimal Sums (8 min)
- Don't Cares (7 min)
- XOR/XNOR Patterns in K-maps (5 min)
- Hazard Overview (15 min)
2.2.4: MSI Logic
Decoders (12 min)
Encoders (10 min)
Multiplexers (13 min)
Demultiplexers (10 min)
Subtractiors  (18 min)
Multipliers (23 min
Dividers (16 min)
2.3: Sequential Logic
2.3.1: Sequential Logic Storage Devices
Cross Coupled Inverter Pair & Metastability (20 min)
SR Latch (12 min)
S'R' Latch (9 min)
SR Latch w/ Enable (9 min)
D Latch (6 min)
D-flip-flop (14 min)
- Registers
Shift Registers (3 min)
2.3.2: Finite State Machine
FSM Introduction & Descripting FSM Behavior (20 min)
FSM Synthesis (29 min)
FSM Design Process Overview (6 min)
- Simple Control Unite
Example: 2-bit Binary Up Counter (17 min)
Example: 2-bit Binary Up/Down Counter (8 min)
2.4: Memory
Architecture & Terminology Overview (33 min)
Non-Volatile Memory Overview (33 min)
- Volatile Memory Overview (SRAM) (11 min)
Volatile Memory Overview (DRAM) (17 min)
- FRAM Overview

### Chapter 3 - Computer Systems

3.1: Computer Overview (11 min)
3.2: Computer Hardware (17 min)
3.3:  Computer Software (22 min)

### Chapter 4: The MSP430

4.1MSP430 Hardware Overview (23 min)
4.2: MSP430 Software Overview (13 min)
-  LaunchPad Hardware Overview (7 min)
- Getting the Right Documentation (10 min)

### Chapter 5: Getting Started Programming the MSP430 in Assembly

5.1: The Anatomy of an Assembly Program File (22 min)
- Installing Code Composer Studio (9 min)
- Writing, Assembling, and Testing your Program (18 min)
5.3: Using the CCS Debugger (13 min)

### Chapter 7: Data Manipulation Instructions

7.1: Arithmetic Instructions
- Subtraction (SUB) (16 min)
- Subtraction w/ Carry (SUBC) (21 min)
- Increment (INC, INCD) and Decrement (DEC, DECD) (12 min)
7.2: Logic Instructions (INV, AND, OR, XOR) + Bit Masking (26 min)
7.3: Bit Set (BIS) and Bit Clear (BIC) Instructions (9 min)
7.4: Test Instructions (BIT, CMP, TST) (15 min)
7.5: Rotate Operations (RLA, RRA, RLC, RRC) (19 min)

### Chapter 8: Program Flow Instructions

8.1: Unconditional Jumps & Branches
- Jump (JMP) & Branch (BR) Overview (13 min)
- Jump (JMP) & Branch (BR) Example Program (1 min)
8.2Conditional Jumps
- Carry-Based Jumps (JC, JNC) (14 min)
-Zero-Based Jump (JZ, JNZ) (10 min)
-Negative-Based Jumps (JN) (9 min)
-
8.3Implementing Common Programming Constructs in Assembly
-
-
-
-
8.4Flow Charts
- Flow Chart Overview (9 min)
- Creating an Assembly Program from a Flow Chart (10 min)

### Chapter 9: Digital I/O

9.1 The MSP430 Digital I/O System
- MSP430FR2355 Digital I/O Peripheral Overview (20 min)

9.2 Digital Output Programming (11 min)
9.3 Digital Input Programming (19 min)

### Chapter 10: The Stack and Subroutines

10.1 The STACK  (18 min)
10.2 Subroutines  (15 min)

### Chapter 11: Introduction to Interrupts

11.1 The Concept of an Interrupt
- IRQ Concept, Flags, and Enable  (19 min)
- Interrupt Vector Table  (11 min)

- MSP430 Interrupts  (13 min)
11.2 MSP430FR2355 Port Interrupts
- Port Interrupt Overview   (16 min)
- Using a Port IRQ to Reading from a Switch   (21 min)
- Impact of Changing Edge Sensitiviey when Reading from Switch  (7 min)

### Chapter 12: Introduction to Timers

12.1 Timer Overview
- Timer Concept & Calculating Time Between Events  (13 min)
12.2 Timer Overflows on the MSP430FR2355
- Timer Overflow Concept  (21 min)
- Timer Overflow Ex: Using ACLK  (13 min)
- Timer Overflow Ex: Using ACLK w/ 12-bit Length  (11 min)
- Timer Overflow Ex: Using SMCLK  (12 min)
- Timer Overflow Ex: Using SMCLK wi Div-by-4  (13 min)
12.3 Timer Compares on the MSP430FR2355
- Timer Compare Overview  (12 min)
- Timer Compare Example: Using CCR0 to Trigger Event  (15 min)
12.4 Creating Pulse Width Modulated Signals Using Timer Compares
- PWM Overview and Example of Creating a 5% PWM using two Compares  (22 min)
12.5 Timer Captures on the MSP430FR2355
- Timer Capture Overview and Example of SW Triggered Capture  (19 min)

### Chapter 13: Switching to the C Language

13.1 C Programming on the C MSP430
- C Programming Overview in CCS (15 min)
- While() Loops in C on the MSP430 (12 min)
- For() Loops in C on the MSP430 (9 min)

13.2 Digital I/O in C
- Digital Output Programming (LED1) (10 min)
- Digital Input Programming & Polling (SW1) (14 min)
13.3 Interrupts in C
- IRQ Overview & Port IRQ Example (SW1) (16 min)
13.4 Timers in C
- Timer Overflow using ACLK (17 min)

- Timer Overflow using SMCLK (13 min)

- Timer Compares using CCR0 (18 min)

- Timer Captures (SW triggered) (24 min)

### Chapter 14: Serial Communications in C

14.1 Universal Asynchronous Receiver/ Transmitter (UART)

- The UART Standard (20 min)
- Setting up the MSP430FR2355 UART Tx (16 min)
- Setting the MSP430FR2355 Baud Rate (17 min)
- Setting up Analog Discovery 2 (11 min)

14.2 Serial Peripheral Interface (SPI)
-The SPI Protocol  (17 min)
-
-
-
-
-SPI Slave Operation  (4 min)
14.3 Inter-Integrated Circuit (I2C) Bus
- I2C Overview & Why the Resistors? (11 min)
- I2C Basic Message Structure (14 min)
- I2C Addressing Individual Slave Registers (19 min)
- Configuring the MSP430FR2355 as an I2C Master (15 min)
- Overview of the Adafruit Real-Time-Clock (13 min)
- Making a Simple Probe to Measure I2C with the AD2 (9 min)
- Example: Writing a Byte to an I2C Slave (19 min)
- Example: Writing a Register Address and Three Bytes to an I2C Slave (19 min)
- Example: Reading a Byte from an I2C Slave (15 min)
- Example: Reading a Byte from a Specific I2C Slave Register Address (29 min)
- Configuring the MSP430FR2355 as an I2C Slave (7 min)

### Chapter 15: Analog to Digital Converter

15.1 Analog to Digital Converter Overview (15 min)
15.2 ADC Operation on the MSP430FR2355
- MSP430FR2355 ADC Overview and Configuration (17 min)