GOAL - NXP RT1180

Development board

The following image shows the development target board.

Following interfaces are significant for the package:

Port

Function

Remarks

Port

Function

Remarks

ENET0

First switch port

disabled by default

ENET1

Second switch port

enabled by default

ENET2

Third switch port

enabled by default

ENET3

Fourth switch port

disabled by default

DC IN 5V

Power supply

 

MCU Link DEBUG USB

Serial interface for logging

For development the MCU Link firmware was replaced with JLINK firmware provided by SEGGER. The interface provides, beside the debugging interface, a serial interface with the following settings:

  • Baudrate: 115200 kBit/s

    • Flow Control: OFF

This interface is not required for firmware update, only for optional serial logging.

USB

Bootloader interface

The lower USB port (label USB_OTG1) is required for flashing the firmware.

Building and deploying a firmware

Available build targets

Target

description

remarks

Target

description

remarks

nxp_evkmimxrt1180_bm_flash

flash image based on bare metal, no operating system

in the bare-metal configuration all code is run in a super loop. Some hardware specific code is run in interrupts.

nxp_evkmimxrt1180_bm_ram

ram based image for bare metal, no operating system

same applies as for the bare metal flash image

since code needs to fit into RAM beside the data, not all example applications can be run with this configuration

purpose is debugging during implementation

nxp_evkmimxrt1180_rtos_flash

flash image based on FreeRTOS

all code is run in tasks, some minimal functionality is processed in interrupts

nxp_evkmimxrt1180_rtos_ram

 

same applies as for the FreeRTOS flash image

since code needs to fit into RAM beside the data, not all example applications can be run with this configuration

purpose is debugging during implementation

Requirements

In order to build the examples, a Linux machine with the following installations is required:

sudo apt-get install build-essential sudo apt-get install python3 sudo apt-get install python-is-python3 sudo apt-get install python3-pip sudo pip install spsdk

Beside that a toolchain is required:

sudo apt-get install gcc-arm-none-eabi

Unpacking the delivery

The archive should be unpacked into a dedicated folder, e.g.:

> mkdir rt1180_pnio > cd rt1180_pnio > unzip ../2_23_0_00410_PORT_evkmimxrtl1180_profinet.zip

Folder structure of the delivery

Folder

content

 

Folder

content

 

appl

source of example applications

 

bsp

bsp for target platform

 

ext

external 3rd party software components

 

goal

goal framework

 

goal_media

goal framework interfaces

 

licenses

licenses of 3rd party software

 

plat

platform specific drivers

 

projects

Makefiles for example applications

 

protos

protocol stacks

 

tools

build system tools

 

Building an example application

To build example applications, the following steps need to be done in the specific project folder:

Entering the example directory

Choosing the build platform

Building

When compiling, a call of the Build-Tool make is sufficient. However, a toolchain needs to be provided using a parameter:

The prefix specifies which compiler / linker / debugger is called by the make system. If the compiler is not within the search path, the full path needs to be specified, e.g:

If everything works as expected, an elf file is generated and the following log messages are shown:

Creating flash image

Within the same folder using the following command, the flashable image can be generated:

Preparing the board for flashing

Firmware update mode requires the following configuration on the dip switches of the board regarding boot mode:

Switch

Mode

Switch

Mode

1

OFF

2

OFF

3

OFF

4

ON

DIP-Switch configuration SW5

After correct setting of the DIP-Switches a reset is required. There is a reset button right beside the POWER switch.

Flashing

If firmware update is executed in a virtual machine, please consider that during firmware update (once the flash loader is loader) the USB device changes (vendor id and product id). Thus 2 USB devices need to be configured to be connected to the virtual machine.

  • First USB device:

    • vid: 1fc9, pid: 014c, rev: 0002, name: NXP SEMICONDUCTORS OO Blank RT Family [0002]

  • Secondary USB device:

    • vid: 15a2, pid: 0073, rev: 0073, name: FREESCALE SEMICONDUCTOR INC. USB COMPOSITE DEVICE [0002]

 

To add these devices, add filters under device->usb->usb settings by using the “plus” button. Since the devices switch during flashing, they need to be caught during this process:

  1. connect the board

  2. catch 1st USB device as filter

  3. try flashing – do not reset the board

  4. catch 2nd USB device as filter

The user needs rights to access USB devices, it is recommended to use root.

In some VM ware product versions it is enough to set "Connect device to foreground VM(M)", so that all USB device are automatically connected.

At first a Reset of the CPU is required. Perform this using the reset switch on the board.

The following command programs the firmware:

 

If programming of the firmware is successful, the following log is shown:

The script tries to run GDB, however this can be quit using Ctrl-D or typing “quit”.

Booting the firmware

Boot mode requires the following configuration on the dip switches of the board regarding boot mode:

Switch

Mode

Switch

Mode

1

OFF

2

ON

3

OFF

4

OFF

DIP-Switch configuration SW5

After correct setting of the DIP-Switches a reset is required. There is a reset button right beside the POWER switch.

Enable logging

By default, the binary is build without logging. If wished, this can be enabled. Please execute the following command within the project folder:

This will add additional lines to the goal_config.h header file of the application being built.

If the application is build now, an image with logging enabled is generated. Log messages will be put out on the USB UART (see chapter "Development Board”).

Further documentation

Please refer to port’s confluence page for further documentation on the protocol stacks and the examples:

GOAL

https://portgmbh.atlassian.net/wiki/spaces/GOALR

Network Protocol Stacks

CC-Link IE Field Basic

https://portgmbh.atlassian.net/wiki/spaces/CIFB

EtherNet/IP

https://portgmbh.atlassian.net/wiki/spaces/ETIP

Modbus/TCP

OPC-UA

CC-Link IE TSN

EtherCAT

PROFINET

Software & Tools

Industrial Communication Creator

Industrial Communication Explorer