NU32 Videos
This page has a number of videos supporting chapters in the book Embedded Computing and Mechatronics with the PIC32 Microcontroller. Some of these videos were created for a preliminary (alpha) version of the NU32 development board, which used the PIC32MX795F512L 100-pin chip. Those videos will gradually be updated for the final production version of the NU32, which uses the PIC32MX795F512H 64-pin chip. Sample code for the book can be downloaded from the NU32 page.
Most of the videos below were created using the Lightboard, an ingenious and easy-to-use device developed by Prof. Michael Peshkin at Northwestern University. Our deepest gratitude to him and Prof. Alex Birdwell, who runs the Lightboard Studio at Northwestern.
Appendix A: A Crash Course in C
Videos:
Click here for a playlist of all videos in this chapter
- Writing your first program in C, HelloWorld.c (5:09). Chapter A.1. Exercises: 1.
- Differences between C and MATLAB (7:30). Chapter A.2. Exercises: 2, 3.
- Binary and hexadecimal (Base 2 and 16) (4:47). Chapter A.3.1. Exercises: 4, 6.
- C data types (5:30). Chapter A.3.1. Exercises: 8, 10.
- Using C data types (3:49). Chapter A.3.1. Exercises: 11.
- Representations of C data types (5:15). Chapter A.3.1. Exercises: 12, 13.
- C pointer basics (5:54). Chapter A.3.2. Exercises: 14, 15.
- Sample program: printout.c (5:55). Chapter A.4. Exercises: 16 (not covered in video, reading only) 17, 18.
- Sample program: datasizes.c (2:57). Chapter A.4. Exercises: 9.
- Sample program: overflow.c (2:43). Chapter A.4. Exercises: 19.
- Sample program: typecast.c (5:43). Chapter A.4. Exercises: 20.
- invest.c, part 1/5: intro to a typical C program (4:18). Chapter A.4. Exercises: 23.
- invest.c, part 2/5: overview (3:58). Chapter A.4. Exercises: 24, 25.
- invest.c, part 3/5: sections 1-4: program comments, preprocessor commands, new data type definitions, and global variables (4:48). Chapter A.4. Exercises: 26.
- invest.c, part 4/5: sections 5-6: helper function prototypes and the main function (4:40). Chapter A.4.
- invest.c, part 5/5: section 7: helper functions (7:42). Chapter A.4. Exercises: 28-30, 32, 33 (some material covered in reading only).
- Header files and libraries (9:31).
Chapter 1: Quickstart
Videos:
Chapter 2: Hardware
Videos:
Click here for a playlist of all videos in this chapter
- Introduction to the PIC32 microcontroller (5:10).
- Introduction to the PIC32 architecture (6:02).
- The PIC32 physical memory map (5:20).
- Introduction to the NU32 development board (4:03).
Chapter 3: Software
Videos:
Click here for a playlist of all videos in this chapter
- The PIC32 virtual memory map (5:24).
- Understanding simplePIC.c (5:42). (The latest version of simplePIC.c includes xc.h, not plib.h)
- Digging through PIC32 header files (7:12). (Information on plib.h, which is no longer included in simplePIC.c, can be ignored. Focus on xc.h and later.)
- The PIC32 executable build process (4:26). (The command line compiler commands are a bit different than in Chapter 3, but the main ideas are the same.)
Chapter 4: Using Libraries
Video:
- The NU32 library (5:28).
Chapter 5: Time and Space
Videos:
Click here for a playlist of all videos in this chapter
- Timing PIC32 code and the disassembly file (8:27). (Note that the timing.c code is slightly different from what is seen in Chapter 5.)
- The PIC32 memory map file (7:15). (Note that the map file looks a bit different from the one in the book, due to changes in timing.c.)
Chapter 6: Interrupts
Videos:
Click here for a playlist of all videos in this chapter
- Overview of interrupts on the PIC32 (4:29).
- PIC32 interrupt SFRs (6:22).
- The PIC32 shadow register set (1:25).
- Seven steps to using an interrupt with the PIC32 (3:47)
- PIC32 interrupt code example (4:10) NOTE: The code in this video is an old version of the code in Chapter 6. Do not use this code, use what's in Chapter 6.
Chapter 7: Digital Input and Output
Videos:
Click here for a playlist of all videos in this chapter
- Intro to digital I/O on the PIC32 (6:24)
- Change notification on the PIC32 (1:18)
- PIC32 program with digital I/O and change notification (9:02)
Chapter 8: Counters / Timers
Videos:
Click here for a playlist of all videos in this chapter
- Intro to PIC32 counter/timers (5:59)
- PIC32 timer SFRs (5:55)
- Using PIC32 timers to generate interrupts (3:34)
- Example PIC32 timer interrupt program (5:08)
Chapter 9: Output Compare
Videos:
Click here for a playlist of all videos in this chapter
- Introduction to the PIC32 output compare (5:30)
- A PWM program on the PIC32 (3:12)
- Using output compare to create an analog output (3:09)
Chapter 10: Analog Input
Video:
Chapter 23: PID Feedback Control
Videos:
Click here for a playlist of all videos in this chapter
- Introduction to PID control (4:28)
- Improving the basic PID control algorithm (2:33)
- PID control of a mass-spring-damper (4:10)
- P, PI, and PD variants of PID control (2:42)
- Empirical PID gain tuning (7:08)
Chapter 25: Brushed Permanent Magnet DC Motors
Videos:
Click here for a playlist of all videos in this chapter
- Intro to brushed permanent magnet DC motors, part 1/2 (4:31)
- Intro to brushed permanent magnet DC motors, part 2/2 (7:10)
- Brushed DC motor equations (6:53)
- Brushed DC motor speed-torque curve (5:59)
- The DC motor speed-torque plane (4:27)
- DC motor electrical and mechanical power in the speed-torque plane (3:52)
- DC motor output power (2:05)
- Friction in DC motors (0:55)
- A DC motor data sheet (4:34)
Chapter 26: Gearing and Motor Sizing
Videos:
Click here for a playlist of all videos in this chapter
- Introduction to gears (4:12)
- Gear efficiency (2:40)
- Types of gears (3:47)
Chapter 27: DC Motor Control
Videos:
Click here for a playlist of all videos in this chapter
- Driving DC motors, part 1/3: Flyback diodes (7:03)
- Driving DC motors, part 2/3: PWM (3:05)
- Driving DC motors, part 3/3: H-bridges (4:22)
- A professional motor control system (6:55)