NXP LPCXpresso55S69 (uGOAL)

Introduction

The NXP LPCXpresso55S69 Board is an development board of the manufacterer NXP. The device is based on the Arm® Cortex®-M33 architecture with 320kB of RAM and 640kB of ROM. It is capable as an application controller for the iRJ45/SoM module.

Currently the LPCXpresso55S69 is only compatible with uGoal.

Software

Integrated Development Environment

The MCUXpresso IDE by NXP is a free Integrated Development Environment which provides several utilities to develop and debug applications for the LPCXpresso55S69 Board. It is available on the NXP website.

Building and Flashing

For compiling the example code, the GNU Arm Embedded Toolchain is required. It can be obtained in several ways. Further information can be found here: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads. To flash the application the MCUXpresso IDE is needed.

Make sure, the toolchain is added properly to your path variable after the installation.

Getting Started

Preparations

Hardware Requirements

Make sure following settings are set:

  • J13 - Connect “iRJ45” with “Sockel”

  • J8 - Connect “CS_SOURCE” with “PB2”

  • J7 - Connect “RST_SOURCE” with “PD7”

  • Set all DIP-Switches to “OFF”

NXP LPCXpresso55S69 Board

Set the Jumper J1 - DFU if you want to flash the device per command line.

Target System

Connect both boards (see Figure above). Voltage supply is done through the VCC33_Sockel by the LPCXpresso55S69.

Please connect both boards with each other, before you connect them per USB to your computer.

EtherCAT Distributed Clocks

The Platform LPCXpresso55S69 supports the feature EtherCAT Distributed Clocks (DC). To use the signal SYNC1 and SYNC0 bridges are needed to connect the pins of the Arduino Adaptershield with the Interrupt pins on the target. Connected as shown in the figure below, both of the SYNC signals cause an interrupt on the LPCXpresso55S69.

Using delivered build system

Prerequisites to flash LPCXpresso55S69

If you want flash the device per command line, there are following prerequisites to do:

  1. Install MCUXpresso IDE from nxp, as this brings the necessary RedlinkServer.

  2. Add the “binaries” directory, located in the installation directory of the MCUXpresso IDE, to your PATH variable (for e.g. “C:/nxp/MCUXpressoIDE_11.4.0_6224/ide/binaries” ).

  3. Copy the target description files “ugoal/plat/lpc55s69/vendor/LPC55S69.xml” and “LPC55S69_part.xml” into the mentioned directory “binaries”.

Please restart the command line after adding the directory to the PATH variable.

Build and flash

Within a example folder “ugoal/projects/ugoal/<example name>/gcc” of the software delivery, build the firmware with following commands:

1 make PLATFORM=lpc55S69

Use following command within the example folder, to flash the application onto the LPCXpresso55S69:

1 make PLATFORM=lpc55S69 flash

If you want to clean the build, use following command:

1 make PLATFORM=lpc55S69 clean

The application will run after automaticly after flashing.

Using MCUXpresso IDE by NXP

This chapter describes the integration of the source files into a new e2 studio project, to edit, compile and debug the software delivery.

Please make sure to install the appropriate SDK for the LPCXpresso55S69 into the MCUXpresso IDE. The SDK can be downloaded on the NXP website.

Automated project generation

From any project folder a project generator can be run to create a MCUXpresso IDE project for the application. The project generator requires a python3 installation. Required dependencies are installed automatically.

If you want to create a MCUXpresso IDE project, run the following command:

1 2 3 4 5 6 7 8 9 10 11 12 make PLATFORM=lpc55s69 gen_project Please select a template - OR - press <CTRL+c> and set the GEN_PROJECT_TPL environment variable. Choose IDE: [ 1] e2studio [ 2] eclipse [ 3] mcuxpressoide [ 4] stmcubeide Choice [1-4]:

For the LPCXpresso55S69 the template number 3 needs to be chosen.

1 2 3 4 5 6 7 8 Selected template: [1] mcuxpressoide/nxp/lpcxpresso55s69 gen_project ----------- Project: 02_eip_io_data_lpc55s69 Templates: /home/tbi/2015013_irj45/ugoal/tools/gen_project/templates/mcuxpressoide/nxp/lpcxpresso55s69 Generating: .cproject .project language.settings.xml Output dir: /home/tbi/2015013_irj45/ugoal/projects/2015013_irj45/ac/02_eip_io_data/gcc/../ide/mcuxpressoide/nxp/lpc55s69/

The generated project should be imported into MCUXpresso IDE using “Import → Existing Projects into Workspace” and be browsing to the project folder:

The imported project can be compiled and debugged using “Debug As → 2 MCUXpresso IDE LinkServer”:

Using MCUXpresso IDE ConfigTools

The MCUXpresso contains ConfigTools for a simple start in configuring peripheral devices and pins of the NXP LPCXpresso55S69. As uGOAL delivers his own configuration there are a few things to do to use the ConfigTools in the project:

  1. Open the *.mex file in the “Project Explorer”.

  2. Choose “ConfigTools → Pins” in the upper toolbar.

  3. Right click on the error message in the lower right “Problems”-Window and choose “Add SDK component…” to include the missing Paths to the project.

  4. Choose “ConfigTools → Peripherals” in the upper toolbar.

  5. Right click on the error messages in the lower right “Problems”-Window and choose “Add SDK component…” to include the missing Paths to the project.

  6. Change back to perspective “develop (default)”.

  7. Remove or Exclude the directories “plat/lpc55s69/vendor/component”, “/drivers”, “/LPC55S69” and “/utilities” via Right Click at the appropriate directory and choosing “Properties → C/C++ Build → Settings” as shown in the image below.

The Build process will now exclude the delivered source and header files and will use the by the ConfigTools created ones instead.

Debugging

UART

The UART-interface of the LPCXpresso55S69 is accessable through the connected USB cable on the Debug Link P6 USB port. You can access the UART by launching a serial monitor like putty. Choose the following settings:

Speed

115200

Data Bits

8

Stop Bits

1

Parity

None

Flow Control

XON/XOFF

Application

After setting up the serial monitor and starting the application, the output should look like this:

1 2 3 4 5 6 7 8 9 10 11 12 13 [INF] ../rpc/goal_mctc_rb.c:277 creating rpc ring buffer with buffer size 768 and elem size 256 [INF] ../rpc/goal_mctc_rb.c:277 creating rpc ring buffer with buffer size 768 and elem size 256 [INF] ../goal_media/goal_mi_mctc.c:793 rpc transfer size set to 1024 [INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init [INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init [INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init [INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init [INF] ../goal_media/goal_mi_mctc.c:455 RPC state synchronized, running appl_setup [INF] ../goal_media/goal_mi_mctc.c:458 configuring timeout values for peer [INF] ../pnio/goal_pnio_rpc_ac.c:259 PROFINET Application Core successfully started [INF] ../example/02_profinet/goal_appl.c:188 Initializing device structure [INF] ../example/02_profinet/goal_appl.c:230 PROFINET ready [INF] ../goal_media/goal_mi_mctc.c:487 local setup done

Known Issues

Following you’ll find current limitations regarding the LPCXpresso55S69.

  • There are no known issues of this target.