Get Started with the NXP FRDM-MCXN947 Development Board
Develop projects on connectivity, graphics, machine learning, motor control, and sensors
By Dogan Ibrahim
Preface
Chapter 1 • The FRDM-MCXN947 Development Board
1.1 Overview
1.2 The FRDM-MCXN947 Development Board hardware
- 1.2.1 On-board connectors
- 1.2.2 The MCU
- 1.2.3 Jumpers on the board
- 1.2.4 Push buttons on the board
- 1.2.5 LEDs on the board
- 1.2.6 Ethernet interface
- 1.2.7 FlexCAN interface
- 1.2.8 I3C sensor interface
- 1.2.9 SD card interface
1.3 Starting Up – demo program
1.4 MCX N Series microcontrollers
Chapter 2 • MCUXpresso and the Software Development Kit (SDK)
2.1 Overview
2.2 Installing the MCUXpresso IDE and SDK
2.3 Testing the installation
- 2.3.1 Some information on the program
- 2.3.2 Modified program
2.4 Creating a project from scratch
2.5 Exporting a project
2.6 Importing an exported project
2.7 MCUXpresso for Visual Studio Code
Chapter 3 • Simple Program Examples and Debugging
3.1 Software-only programs
- 3.2 Example 1: Sum of integer numbers
- 3.3 Example 2: Table of squares
- 3.4 Example 3: Centigrade to Fahrenheit
- 3.5 Example 4: Times table
- 3.6 Example 5: Table of trigonometric sine
- 3.7 Example 6: Table of trigonometric sine, cosine, and tangent
- 3.8 Example 7: Integer calculator
- 3.9 Example 8: Solution of a quadratic equation
- 3.10 Example 9: Squares and cubes of numbers
- 3.11 Example 10: Factorial of a number
- 3.12 Example 11: Check for prime number
- 3.13 Example 12: Matrix addition
- 3.14 Example 13: Matrix transpose
3.15 Debugging a project
- 3.15.1 Example debug session
Chapter 4 • LED Projects
4.1 Overview
- 4.2 Project 1: Flashing the on-board red and green LEDs
- 4.3 Project 2: Flashing an external LED
- 4.4 Project 3: LED flashing as Morse SOS signal
- 4.5 Project 4: Alternately flashing two LEDs
- 4.6 Project 5: Chasing LEDs
- 4.6.1 More efficient program
- 4.6.2 Using PortClear and PortSet functions
- 4.7 Project 6: Binary counting LEDs
- 4.8 Project 7: Random flashing LEDs
- 4.9 Project 8: Lucky day of the week
- 4.10 Project 9: Binary up/down counter with LEDs
- 4.11 Project 10: Binary event counter with LEDs
Chapter 5 • 7-Segment LED Displays
5.1 Overview
5.2 7-Segment LED display structure
- 5.3 Project 1: 7-Segment 1-digit LED counter
- 5.4 Project 2: 7-Segment 4-digit multiplexed LED display
- 5.5 Project 3: 7-Segment 4-digit multiplexed LED display counter – timer interrupts
- 5.6 Project 4: 7-Segment 4-digit multiplexed LED display counter – blanking leading zeroes
- 5.7 Project 5: Conveyor belt goods counter with 7-Segment 4-digit multiplexed LED display counter
- 5.7.1 The LDR
Chapter 6 • Using Serial Communication
6.1 Overview
6.2 Project 1: Serial communication between two FRDM-MCXN947 development boards
Chapter 7 • I2C and I3C Bus Interface
7.1 Overview
7.2 The I2C bus
7.3 The I3C bus
7.4 Differences between the I2C and I3C
7.5 Project 1: Port expander using the I3C bus
7.6 Project 2: TMP102 temperature sensor
Chapter 8 • SPI Bus Interface
8.1 Overview
8.2 Project 1: Port expander
Chapter 9 • Using LCDs
9.1 Overview
9.2 The HD44780 LCD module
9.3 Connecting the LCD to the development board
- 9.3 Project 1: Displaying text on LCD
- 9.4 Project 2: Using LCDs – simple up counter
- 9.5 Including the LCD codes in a program
- 9.6 Project 3: Using LCDs – simple up counter – including LCD header file
- 9.7 Project 4: LCD based conveyor belt goods counter
- 9.8 Project 5: Using external interrupts
- 9.9 Project 6: Event counter – Using external interrupts
- 9.10 Project 7: LCD dice
Chapter 10 • Analog to Digital Converter (ADC)
10.1 Overview
- 10.2 Project 1: Voltmeter – Output on console
- 10.3 Project 2: Voltmeter – Output on LCD
- 10.4 Project 3: Analogue temperature sensor
- 10.5 Project 4: ON/OFF temperature controller
- 10.6 Project 5: ON/OFF temperature controller – using LCD
- 10.7 Project 6: Measuring the ambient light intensity
- 10.8 Project 7: Ohmmeter
- 10.9 Project 8: Measuring the temperature using a thermistor
- 10.10 Project 9: Temperature measurement using the MCU sensor
- 10.10.1 The P3T1755DP temperature sensor
Chapter 11 • Using Pulse Width Modulation (PWM)
11.1 Overview
11.2 Basic theory of the pulse width modulation
11.3 Features of the FRDM-MCXN947 PWM modules
11.4 Operation of the PWM
11.5 Project 1: Mosquito Repeller
- 11.5.1 The original program (see the original programfile: readme_md)
- 11.5.2 The modified program
Chapter 12 • Electric Motors
12.1 Overview
- 12.2 Project 1: Two-speed motor speed control
- 12.3 Project 2: Changing the motor speed and direction
- 12.3.1 Using an H-bridge module
Chapter 13 • Digital to Analog Converter (DAC) Projects
13.1 Overview
- 13.2 Project 1: Generating square wave signal with a peak up to +3.3V
- 13.3 Project 2: Generating sawtooth wave signal
- 13.4 Project 3: Generating triangle wave signal
- 13.5 Project 4: Generating sine wave signal
Chapter 14 • Operational Amplifiers
14.1 Overview
- 14.2 Non-inverting amplifier mode
- 14.3 Inverting amplifier mode
- 14.4 Project 1: Non-inverting amplifier with a gain of 3
Chapter 15 • The UTICK Timer
15.1 Overview
- 15.2 Project 1: Generating 1 second delays – Onetime mode
- 15.3 Project 2: Generating 1 second delays – Onetime mode with interrupt service routine
- 15.4 Project 3: Generating 1 second delays – Repeat mode with interrupt service routine
Chapter 16 • Real Time Clock (RTC)
16.1 Overview
- 16.2 Project 1: Set and display the absolute current date and time
- 16.3 Project 2: Read date and time from the keyboard and load to the RTC
Chapter 17 • The LPTIMER (LPTMR)
17.1 Overview
17.2 Project 1: Creating interrupts at required intervals
Chapter 18 • The FreeRTOS
18.1 Overview
18.2 Project 1: Simple 2 task application
Chapter 19 • Using the CMSIS-DSP Library
19.1 Overview
19.2 Project 1: Matrix addition, multiplication, and transpose
Chapter 20 • Using the FlexIO Module, Touch Screen, Neural Networks, and some others
20.1 Overview
20.2 The FlexIO module
- 20.2.1 Project 1: Using the FlexIO UART interface – Communication with a PC
20.3 Touch Sensing Input module (TSI)
20.4 Cyclic Redundancy Check module (CRC)
20.5 Frequency Measurement module (FREQME)
20.6 Synchronous Audio Interface module (SAI)
20.7 Controller Area Network module (FlexCAN)
20.8 Security system
20.9 Neural Processing Unit (NPU)
- 20.9.1 Demo Neural Network program: tflm_label_image
Chapter 21 • Demo Programs
21.1 Overview
21.2 Accessing the demo programs
21.3 List of demo programs