This page describes the EEGR3233 Introduction to Microcontrollers class that was taught in the fall of 2018 at LeTourneau University. The class focused on the NXP KL43 microcontroller. This is a 32-bit microcontroller with an ARM Cortex-M0+ core. The FRDM-KL43Z board was used for the hands-on assignments. Programs were written in C using MCUXpresso.
Textbook: Embedded Systems Fundamentals with ARM Cortex-M based Microcontrollers, Alexander G. Dean, ARM Education Media, 2017.
Lectures: The class had 28 lectures of 80 minutes each. The lectures introduced the main peripherals of the microcontroller, interrupts, the DMA, a real-time operating system (FreeRTOS), and an introduction to assembly language programming. The material was structured as follows:
Introduction (2.5 lectures)
Interrupts (2 lectures)
DMA (2 lectures)
Introduction to FreeRTOS (4 lectures)
Analog-to-digital and digital-to-analog converters (2 lectures)
I2C (1 lecture)
USB (1 lecture)
Assembly language (2.5 lectures)
Lab assignments: All lab and prelab assignments have relied on the FRDM-KL43 board and the MCUXpresso software. Prelab assignments are hands-on homework assignments that are meant to provide additional programming experience. They are not always related to the lab assignments.
Lab 1: Introduction to MCUXpresso
Lab 2: Introduction to Program Debugging. Uses lcd_drive.c.
Lab 3: LCD and Console Functions. Prelab: LED control.
Lab 4: Nested Loops. Prelab: Testing pin connections.
Lab 5: Interrupts. Prelab: Event-driven LED control.
Lab 6: DMA. Prelab: LED control via DMA.
Lab 7: FreeRTOS. Prelab: Concurrent tasks.
Lab 8: Timers. Prelab: Mutex semaphores.
Lab 9: Coordinating Tasks. Uses i2cDrive.c.
Lab 10: Motor Control. Prelab: Pitch, roll, and yaw angles.
Lab 11: ADC and DAC. Prelab: Input capture.
Lab 12: Data Logging. Uses SerialUSB.vi and USB demo files. The USB files are from the usb_vcom_lite example of the FRDM-KL43Z SDK and are under the BSD license. Among these files, virtual_com.c was adapted for this lab assignment.
Lab 13: I2C.