Getting Started with the FRDM-KL28Z | NXP Semiconductors

Getting Started with the FRDM-KL28Z

Last Modified: 2022-12-28 12:22:00Supports FRDM-KL28Z | KL28 | Dev Platform

Contents of this document

  • 1

    Plug It In
  • 2

    Get Software
  • 3

    Build, Run
  • 4

    Create

1. Plug It In

1.1 Attach the USB Cable

FRDM-KL28Z-GS-BOARD

FRDM-KL28Z-GS-BOARD

1.2 Setup Board and PC

With the board plugged in, you'll then see a disk drive named "FRDM-KL28ZD" enumerated. Download the demo file from the link below, then drag and drop the bubble(FRDM-KL28Z).bin file into "FRDM-KL28ZD" disk drive. Press the reset button (SW1) to initiate the board.

Get bubble demo file

1.3 Run the Out-of-Box Demo

This bubble demo leverages the on board accelerometer. When the board is flat, the RGB LED is turned off, and when the board is tilted, the red and green LEDs gradually illuminate based on the degree of tilt on the X- and Y-Axis.

FRDM-KL28Z-GS-IMG2

FRDM-KL28Z-GS-IMG2

Demo not working?

2. Get Software

2.1 Jump Start Your Design with the Kinetis SDK

Want to learn about SDK?

The Kinetis Software Development Kit (SDK) is complimentary and includes full source code under a permissive open-source license for all hardware abstraction and peripheral driver software.

Click below to download the SDK Release appropriate for your computer's operating system.

Get Kinetis SDK

2.2 Install Your Toolchain

NXP offers a complimentary toolchain called Kinetis Design Studio (KDS).

Get Kinetis Design Studio

Want to use a different toolchain?

No problem. The Kinetis SDK includes support for other tools such as IAR , Keil  and command-line GCC .

2.3 Tool Update

If using Kinetis Design Studio or Arm GCC toolchains, the latest SEGGER J-Link software tools need to be downloaded and installed. This update is required for those tools to support the KL28 family. Ensure you install this update after installing the IDE of your choice.

First, download the latest "Software and Documentation pack", from SEGGER Downloads .

Then, install the software and at the end of the installation, there will be a dialog box asking to update installed IDEs. Make sure that the KDS 3.2.0 IDE is checked if using Kinetis Design Studio.

2.4 PC Configuration

Many of the example applications output data over the MCU UART so you'll want to make sure that the driver for the board's virtual COM port is installed. Before you run the driver installer, you must have the board plugged into your PC.

Download Driver

With the serial port driver installed, run your favorite terminal application to view the serial output from the MCU's UART. Configure the terminal to 115,200 baud rate, 8 data bits, no parity and 1 stop bit. To determine the port number of the FRDM-KL28Z's virtual COM port, open the device manager and look under the "Ports" group.

Not sure how to use a terminal application? Try one of these tutorials: Tera Term Tutorial, PuTTY Tutorial.

3. Build, Run

3.1 Explore the SDK Example Code

The Kinetis SDK comes with a long list of demo applications and driver examples. To see what's available, browse to the SDK 'boards' folder of your SDK installation and select your board, the FRDM-KL28Z (<sdk_install_directory>/boards/frdmkl28z).

To learn more about demo applications or driver examples, open the readme.txt, located in each of the demo/driver example folder.

3.2 Build, Run and Debug SDK Examples

If one or more of the demo applications or driver examples sounds interesting, you're probably wanting to know how you can build and debug yourself. The Getting Started with Kinetis SDK guide provides easy, step-by-step instructions on how to configure, build, and debug demos for all toolchains supported by the SDK.

Use the guide below to learn how to open, build and debug an example application using the Kinetis Design Studio (KDS) IDE.

Using a different toolchain?

4. Create

4.1 Get SDK Project Generator

Let's create our own project and make a simple SDK-based application. NXP provides an intuitive, simple project generation utility that allows creation of custom projects based on the Kinetis SDK.

Get Project Generator

4.2 Run the SDK Project Generator

After extracting the ZIP file, open the utility by clicking on the "KSDK_Project_Generator" executable for your computer's operating system. Point the tool to your SDK installation path, name your project, and select the board that it uses as a reference. Click on the "Quick Generate" button to finish.

FRDM-KL28Z-GS-IMG4

FRDM-KL28Z-GS-IMG4

4.3 Open Your Project

Your new project will be located in <sdk_install_directory>/boards/frdmkl28z/user_apps. Open the project in your toolchain of choice by using the same process described in section 3.2.

4.4 Write Some Code

Now, let's make our new project do something other than spin in an infinite loop. The SDK examples provide a board support package (BSP) to do various things specific to the board, including macros and definitions for items such as LEDs, switches and peripheral instances. To keep things simple, lets make the LED blink using the BSP macros.

Update the main() function in your project's main.c file with the following code:

1234567891011121314151617181920212223volatile int delay;

// Configure board specific pin muxing
BOARD_InitPins();

// Configure clock source
BOARD_BootClockRUN();

// Initialize the UART terminal
BOARD_InitDebugConsole();
PRINTF("myProject project\n\r");

// Enable GPIO port for the red LED
CLOCK_EnableClock(kCLOCK_PortE);
PORT_SetPinMux(BOARD_LED_RED_GPIO_PORT, BOARD_LED_RED_GPIO_PIN, kPORT_MuxAsGpio);
LED_RED_INIT(LOGIC_LED_OFF);

for (;;)
{
     LED_RED_TOGGLE();
     delay = 5000000;
     while(delay--);
}

4.5 Build, Download, Run

With the changes made to your main() function, build your application. Once the build is complete, download the application to your board.

If you need help figuring out how to build, download or run an application, reference your tool-specific guide from section 3.2.

4.6 Success

With the application downloaded, you will see the FRDM-KL28Z's red LED blinking. You can also view terminal output using PRINTF.