Sign in for a personalized NXP experience.
1
Plug It In2
Get Software3
Build, Run4
CreateSign in to save your progress. Don't have an account? Create one.
Let's take your FRDM-K28F for a test drive! You have the choice of watching the sequence in a short video or following the detailed actions list below.
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
Something went wrong! Please try again.
Note: FXOS8700CQ accelerometer is in "End of Life" status. Your FRDM-K28F may not have the accelerometer populated.
Something went wrong! Please try again.
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
Something went wrong! Please try again.
The MCUXpresso SDK is complimentary and includes full source code under a permissive open-source license for all hardware abstraction and peripheral driver software. Want to learn about SDK?
Click below to download a pre-configured SDK release for the FRDM-K28F.
You can also use the online SDK Builder to create a custom SDK package for the FRDM-K28F using the SDK builder.
Something went wrong! Please try again.
NXP offers a complimentary toolchain called MCUXpresso IDE.
No problem! The MCUXpresso SDK includes support for other tools such as IAR , Keil and command-line GCC .
Something went wrong! Please try again.
The MCUXpresso Config Tools is an integrated suite of configuration tools that guides users in creating new MCUXpresso SDK projects, and also provides pin and clock tools to generate initialization C code for custom board support.
Something went wrong! Please try again.
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 in to your PC.
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-K28F'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.
Something went wrong! Please try again.
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
Something went wrong! Please try again.
The MCUXpresso SDK comes with a long list of example applications code. To see what's available, browse to the SDK boards folder of your SDK installation and select your board, the FRDM-K28F (<sdk_install_directory>/boards/frdmk28f
).
To learn more about specific example code, open the readme.txt file in an example’s directory.
Something went wrong! Please try again.
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 MCUXpresso 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 MCUXpresso IDE.
The following steps will guide you through opening the hello_world
example.
Find the "Quickstart Panel" in the lower left hand corner
Then click on "Import SDK examples(s)"
Click on the frdmk28f
board to select that you want to import an example that can run on that board, and then click on "Next"
Use the arrow button to expand the demo_apps
category, and then click the checkbox next to hello_world
to select that project. Then click on "Next"
On the next screen, click the checkbox to Redirect printf/scanf to UART
so that the terminal output gets sent out the UART instead of using semi-hosting through the debugger. Then click on "Finish"
Now, build the project by clicking on the project name and then click on the Build icon
You can see the status of the build in the Console tab
MCUXpresso will probe for connected boards and should find the MBED CMSIS-DAP debug probe that is part of the integrated OpenSDA circuit on the FRDM-K28F. Click on "OK" to continue
The firmware will be downloaded to the board and the debugger started
Start the application by clicking the "Resume" button:
The hello_world
application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections
Use the controls in the menu bar to pause, step into, and step over instructions, and then stop the debugging session by click on the Terminate icon:
The following steps will guide you through opening the hello_world
application. These steps may change slightly for other example applications as some of these applications may have additional layers of folders in their path.
If not already done, open the desired example application workspace. Most example application workspace files can be located using the following path:
1 <install_dir>/boards/<sdk_board_name>/<example_type>/<application_name>/iar
Using the hello_world
demo as an example, the path is:
1<install_dir>/boards/frdmk28f/demo_apps/hello_world/iar
Select the desired build target from the drop-down. For this example, select the "hello_world - Debug" target
To build the application, click the "Make" button, highlighted in red below
The build will complete without errors
The FRDM-K28F board comes loaded with the mbed/CMSIS-DAP debug interface from the factory. If you have changed the debug OpenSDA application on your board, visit OpenSDA for information on updating or restoring your board to the factory state.
Connect the development platform to your PC via USB cable between the "SDAUSB" USB port on the board and the PC USB connector
Open the terminal application on the PC (such as PuTTY or Tera Term) and connect to the debug COM port you determined earlier. Configure the terminal with these settings:
Click the "Download and Debug" button to download the application to the target
The application is then downloaded to the target and automatically runs to the main()
function
Run the code by clicking the "Go" button to start the application
The hello_world
application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections
After the MDK tools are installed, Cortex® Microcontroller Software Interface Standard (CMSIS) device packs must be installed to fully support the device from a debug perspective. These packs include things such as memory map information, register definitions and flash programming algorithms. Follow these steps to install the appropriate CMSIS pack.
Open the MDK IDE, which is called µVision. In the IDE, select the "Pack Installer" icon
In the "Pack Installer" window, navigate to the section with the Kinetis packs (they are in alphabetical order). The Kinetis packs start with Keil::Kinetis
and are followed by the MCU family name, for example Keil::Kinetis_K60_DFP
. Because this example uses the FRDM-K28F platform, the K28 family pack is selected. Click on the "Install" button next to the pack. This process requires an internet connection to successfully complete
After the installation finishes, close the "Pack Installer" window and return to the µVision IDE
The following steps will guide you through opening the hello_world
application. These steps may change slightly for other example applications as some of these applications may have additional layers of folders in their path.
If not already done, open the desired demo application workspace in:
1<install_dir>/boards/<sdk_board_name>/<example_type>/<application_name>/mdk
The workspace file is named <application_name>.uvmpw
, so for this specific example, the actual path is:
1<install_dir>/boards/frdmk28f/demo_apps/hello_world/iar/hello_world.uvmpw
To build the demo project, select the "Rebuild" button, highlighted in red
The build will complete without errors
The FRDM-K28F board comes loaded with the mbed/CMSIS-DAP debug interface from the factory. If you have changed the debug OpenSDA application on your board, visit OpenSDA for information on updating or restoring your board to the factory state.
Connect the development platform to your PC via USB cable between the "SDAUSB" USB port on the board and the PC USB connector
Open the terminal application on the PC (such as PuTTY or Tera Term) and connect to the debug COM port you determined earlier. Configure the terminal with these settings:
After the application is properly built, click the "Download" button to download the application to the target
After clicking the "Download" button, the application downloads to the target and should be running. To debug the application, click the "Start/Stop Debug Session" button, highlighted in red
Run the code by clicking the "Run" button to start the application
The hello_world
application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections
This section contains the steps to install the necessary components required to build and run a KSDK demo application with the Arm GCC Toolchain, as supported by the MCUXpresso SDK. There are many ways to use Arm GCC tools, but this example focuses on a Windows environment. Though not discussed here, GCC tools can also be used with both Linux OS and Mac OSX.
Download and run the installer from GNU Arm Embedded Toolchain . This is the actual toolchain (i.e., compiler, linker, etc.). The GCC toolchain should correspond to the latest supported version, as described in the MCUXpresso SDK Release Notes.
The Minimalist GNU for Windows (MinGW) development tools provide a set of tools that are not dependent on third party C-Runtime DLLs (such as Cygwin). The build environment used by the KSDK does not utilize the MinGW build tools, but does leverage the base install of both MinGW and MSYS. MSYS provides a basic shell with a Unix-like interface and tools.
Download the latest MinGW mingw-get-setup
installer from MinGW - Minimalist GNU for Windows Files
Run the installer. The recommended installation path is C:\MinGW
, however, you may install to any location
Note: The installation path cannot contain any spaces.
Ensure that the "mingw32-base" and "msys-base" are selected under Basic Setup
Click "Apply Changes" in the "Installation" menu and follow the remaining instructions to complete the installation
Add the appropriate item to the Windows operating system Path environment variable. It can be found under Control Panel → System and Security → System → Advanced System Settings in the "Environment Variables" section. The path is:
1<mingw_install_dir>\bin
Assuming the default installation path, C:\MinGW
, an example is shown below. If the path is not set correctly, the toolchain does not work
Note: If you have C:\MinGW\msys\x.x\bin
in your PATH variable (as required by KSDK 1.0.0), remove it to ensure that the new GCC build system works correctly.
Create a new system environment variable and name it ARMGCC_DIR
. The value of this variable should point to the Arm GCC Embedded tool chain installation path, which, for this example, is:
C:\Program Files (x86)\GNU Tools Arm Embedded\4.9 2015q3
Download CMake 3.0.x from CMake
Install CMake, ensuring that the option "Add CMake to system PATH" is selected when installing. It's up to the user to select whether it's installed into the PATH for all users or just the current user. In this example, the assumption is that it's installed for all users
Follow the remaining instructions of the installer
You may need to reboot your system for the PATH changes to take effect
To build an example application, follow these steps.
Change the directory to the example application project directory, which has a path like this:
1<install_dir>/boards/<board_name>/<example_type>/<application_name>/armgcc
For this guide, the exact path is:
1<install_dir>/boards/frdmk28f/demo_apps/hello_world/armgcc
Type build_debug.bat
on the command line or double click on the build_debug.bat
file in Windows operating system explorer to perform the build. The output is shown in this figure:
The GCC tools require a J-Link debug interface. To update the OpenSDA firmware on your board to the latest J-Link app, visit OpenSDA. After installing the J-Link OpenSDA application, download the J-Link driver and software package from SEGGER Downloads .
Connect the development platform to your PC via USB cable between the "SDAUSB" USB port on the board and the PC USB connector
Open the terminal application on the PC (such as PuTTY or Tera Term) and connect to the debug COM port you determined earlier. Configure the terminal with these settings:
Open the J-Link GDB Server application. Assuming the J-Link software is installed, the application can be launched by going to the Windows operating system Start menu and selecting "Programs → SEGGER → J-Link <version> J-Link GDB Server"
Modify the settings as shown below. The target device selection chosen for this example is the "MK28FN2M0xxx15" and use the SWD interface
After it is connected, the screen should resemble this figure:
If not already running, open a GCC Arm Embedded Toolchain command window. To launch the window, from the Windows operating system Start menu, go to "Programs → GNU Tools Arm Embedded <version>" and select "GCC Command Prompt"
Change to the directory that contains the demo application output. The output can be found in using one of these paths, depending on the build target selected:
1<install_dir>/boards/<board_name>/<example_type>/<application_name>/armgcc/debug
1<install_dir>/boards/<board_name>/<example_type>/<application_name>/armgcc/release
For this guide, the path is:
1<install_dir>/boards/frdmk28f/demo_apps/hello_world/armgcc/debug
Run the command arm-none-eabi-gdb.exe <demo_name>.elf
. For this example, it is arm-none-eabi-gdb.exe hello_world.elf
Run these commands:
hello_world
application is now running and a banner is displayed in the terminal windowSomething went wrong! Please try again.
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.
Something went wrong! Please try again.
Option A: Use the MCUXpresso IDE to clone an example project.
Option B: Use the MCUXpresso Config Tools to clone an existing MCUXpresso SDK example for use with third party IDEs.
Something went wrong! Please try again.
Now, let's use the Pins Tool that is part of the MCUXpresso Config Tools package to show how to add a new GPIO pin to your project to blink an LED.
PTB22
is routed as a GPIO to toggle the red LED. Let's disable PTB22
, and change the mux setting of PTB21
to use its GPIO functionality to drive the blue LEDPTB22
(red LED) as a GPIO by clicking the PTB22
field under the GPIO column. The pin will then be disabled (pin will no longer have check in box) and thus disappear from the list PTB21
as a GPIO. First, deselect the "Show Routed All/Pins" so that all the pins are displayed again. Then, search PTB21
in the pins view. Finally, click the box under the GPIO column. The box will highlight in green, and a check will appear next to the pin PTB21
also appears in the "Routed Pins" tab and PTB22
has been removed. The pin_mux.c
file has been updated to reflect the change as well PTB21
already has a defined identifier (i.e. "LED_BLUE") set up for the FRDM-K28F for the "led_output" example configuration. Now, change the identifier to "My_LED" next to PTB21
in the Pins table by searching for PTB21
. This will add a #define to the pin_mux.h
file that will be used to identify the LED Now, export the pin_mux.c
and pin_mux.h
files by clicking on the "Sources" tab on the right side to get to the "Sources" view, and selecting the export icon
Select the directory to export the pin_mux.c
and pin_mux.h
files. In this example export to the "board" folder in the "led_output" project in the workspace that was created in the previous section (i.e. C:\MCUXpressoIDE_Lab\frdmk28f_driver_examples_gpio_led_output\board
). Select "Finish"
pin_mux.c
and pin_mux.h
files gpio_led_output.c
file in the source folder to display the file in the editor. Notice that the macros used in the GPIO driver functions refer to the BOARD_LED
(i.e. red LED). We need to replace these with the macros for "My_LED" that we just created pin_mux.h
file under the board folder in the "led_output" project. Since the file has been updated, press "F5" or File → Refresh to update the file in the editor. Copy BOARD_INITPIN_My_LED_GPIO
in pin_mux.h
gpio_led_output.c
, replace BOARD_LED_GPIO
with BOARD_INITPIN_My_LED_GPIO
in lines 87 and 92 BOARD_INITPINS_MY_LED_GPIO_PIN
from pin_mux.h
gpio_led_output.c
, replace BOARD_LED_GPIO_PIN
with BOARD_INITPIN_My_LED_GPIO_PIN
in lines 87 and 92 Something went wrong! Please try again.
Next, use the Clocks Tool that is part of the MCUXpresso Config Tools package to change the clock settings and change the rate that the LED blinks.
clock_config.c
and clock_config.h
files Select the directory to export the clock_config.c
and clock_config.h
files. In this example export to the "board" folder in the "led_output" project in the workspace. (i.e. C:\MCUXpressoIDE_Lab\frdmk28f_driver_examples_gpio_led_output\board
). Select "Finish"
clock_config.c
and clock_config.h
files Something went wrong! Please try again.
Tera Term is a very popular open source terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
PuTTY is a popular terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
Explore the world with a full assortment of NXP sensor solutions. From accelerometers, pressure sensors, touch sensors, and many more, NXP has a sensor solution for your project. Find out more at Sensors.
Near Field Communication is a simple, intuitive technology that lets you interact securely with the world around you with a simple touch. Learn more about NXP's NFC solutions at NFC.
No problem! Your board simply came in the old packaging and has a different out-of-box demo loaded into the flash memory.
You should be seeing the RGB LED toggling between each of the three colors: red, blue and green. It's OK to move onto the next step when you're ready.
Try proceeding to the next steps to get other example applications running on your board. If you still have problems, try contacting us through the NXP Community .
Getting Started with the FRDM-K28F Development Board
Attach the USB Cable
Run the Out-of-Box Demo
Installing Software for the FRDM-K28F
Jump Start Your Design with the MCUXpresso SDK
Install Your Toolchain
MCUXpresso Config Tools
PC Configuration
Build and Run SDK Demos on the FRDM-K28F
Explore the MCUXpresso SDK Example Code
Build, Run and Debug MCUXpresso SDK Examples