Wired Communications Middleware for NXP Microcontrollers

Overview

Features

Wired Communications Middleware MCUXpresso Ecosystem

Wired Communications Middleware MCUXpresso Ecosystem

MCU Minutes | CANopen and CANopen FD in the MCUXpresso SDK

MCU Minutes | CANopen and CANopen FD in the MCUXpresso SDK thumbnail

Libraries and examples provided through MCUXpresso SDK

  • NXP has developed a wide range of wired communications libraries and collaborates with select partners to offer complementary specialized stacks. Each solution is fully integrated into the MCUXpresso SDK and comes with ready-to-use software examples to help you complete an in-depth evaluation and get started with your design.

USB Applications

  • Source code provided
  • Complimentary for use on any NXP devices
  • Wide range of USB device, host, audio and OTG examples
  • Bare metal or RTOS based

CAN and CAN-FD Applications

  • CANopen and CANopen FD stacks from EmSA
  • CANopen configuration tools supplied
  • CAN and CAN-FD drivers and examples provided by NXP for use with other protocols
  • Evaluation version provided in MCUXpresso SDK

Ethernet Applications

  • Based on popular, open source LwIP TCP/IP stack
  • Source code provided
  • Several examples included, covering common use cases
  • Bare metal or RTOS based
  • Complimentary for use on NXP devices

USB and NetX Duo networking

  • Based on popular, open source LwIP TCP/IP stack
  • Source code provided
  • Several examples included, covering common use cases
  • Bare metal or RTOS based
  • Complimentary for use on NXP devices

USB Applications

NXP’s USB applications host and device libraries are provided with full source code and a wide range of examples. The MCUXpresso SDK default configurations include all of the necessary drivers and several example applications to help you take full advantage of USB features, and the MCUXpresso peripheral tools enable you to quickly and easily configure USB drivers for your application needs. Examples are provided as bare metal and RTOS-based implementations, with build options for full- and high-speed USB.

  • USB device classes/examples
    • Composite devices (CDC), including mass storage and VCOM
    • Generic human interface device (HID), including mouse and keyboard emulation plus use of suspend/resume
    • Mass storage class and RAM disk
    • Device firmware update (DFU)
    • Smart card
    • Audio generators, speakers and combined audio devices
    • Virtual network interface (NIC)
    • Weigh scale
    • Printer
    • Camera
  • USB host-side class support
    • Composite device
    • Human interface device (HID), including use of suspend/resume
    • Audio speaker
    • Mass storage device (MSD)
    • Printer (plain text)
    • Video camera
    • Personal healthcare device (PHDC)
  • USB audio 2.0 classes and examples
  • USB Type-C power delivery
Host Device
Device Family Core Power delivery**
CDC & HID
Audio
Storage
Camera
PHDC
CDC & HID
Audio
Storage
Camera Printer,
PHDC
VNIC
K2x Cortex-M4
K32 L2x Cortex-M0+
K32 L3x Cortex-M4
K6x Cortex-M4
K8x Cortex-M4
LPC51U68 Cortex-M0+
LPC5411x Cortex-M4 + Cortex-M0+
LPC54S/540xx Cortex-M4
LPC54S018JxM Cortex-M4
LPC546xx Cortex-M4
LPC551x/S1x Cortex-M33
LPC552x/S2x Cortex-M33
LPC55S6x Dual Cortex-M33
i.MX RT5xx Cortex-M33 + Cadence® Tensilica® Fusion F1 DSP
i.MX RT6xx Cortex-M33 + Cadence Tensilica HiFi 4 DSP
i.MX RT101x Cortex-M7
i.MX RT102x Cortex-M7
i.MX RT105x Cortex-M7
i.MX RT106x Cortex-M7
i.MX RT1170 Cortex-M7 + M4

**Requires USB PD products from NXP

Azure RTOS USBX is a high-performance USB host, device, and on-the-go (OTG) embedded stack. Azure RTOS USBX is fully integrated with Azure RTOS ThreadX and available for all ThreadX–supported processors. Like ThreadX, Azure RTOS USBX is designed to have a small footprint and high performance, making it ideal for deeply embedded applications that require an interface with USB devices. USBX is free to use on NXP MCUs. For more information on USBX visit the Microsoft Azure website.

Azure RTOS USBX is currently available for i.MX RT105x and i.MX RT106x devices, and is available as an optional download in MCUXpresso SDK. Support for the i.MX RT101x and i.MX RT102x product families will be available by the end of 2020, with device support being expanded through 2021. Note that USBX may not be used with any RTOS other than ThreadX.


CAN and CAN-FD Applications

NXP has partnered with Embedded Systems Academy (EmSA) to offer CANopen and CANopen FD libraries based on its Micro CANopen Plus stack for our CAN / CAN-FD enabled microcontrollers. These libraries are free to use, and available through the MCUXpresso SDK with fully-functional example applications that implement CANopen and CANopen FD devices and managers. EmSA has made their CANopen Architect Software available as a complimentary download to help you go beyond the examples and generate custom configurations.

  • CANopen Device library and CANopen Manager library
  • CANopen FD Device library and CANopen FD Manager library
  • Functionality suitable for simple I/O devices and control applications that can pass the official CANopen Conformance Test (extended functionality libraries available from EmSA)
  • Object Dictionary contents can be freely configured using EmSA’s CANopen Architect Standard EDS editor
  • Compatible with CANopen monitoring, configuration or analysis tools such as CANopen Magic

EmSA’s stacks utilize NXP’s CAN and CAN-FD SDK drivers, which are provided with full source code and basic examples.

Device Family* Core CAN drivers CAN-FD drivers EmSA CANopen stack EmSA CANopen FD stack Recommended Evaluation Board(s)
[Click to access SDK]
KE Cortex-M0+/M4
K6x Cortex-M4
LPC54S/540xx Cortex-M4 LPCXpresso54018 + OM13099
LPCXpresso54S018 + OM13099
LPC54S018JxM Cortex-M4 LPCXpresso54S018M + OM13099
LPC5460x Cortex-M4 LPCXpresso54628 + OM13099
LPC5461x / 62x Cortex-M4 LPCXpresso54628 + OM13099
LPC551x / S1x Cortex-M33 LPCXpresso55S16
i.MX RT102x Cortex-M7 MIMXRT1020-EVK
i.MX RT105x Cortex-M7 MIMXRT1050-EVKB
i.MX RT106x Cortex-M7 Coming soon MIMXRT1060-EVK

*Functionality may not be available on all parts within each family listed above.


Ethernet Applications

NXP’s Ethernet driver and middleware libraries are provided with full source code - complete with driver and network interface-level applications. Examples are based on the popular, open-source LWIP TCP/IP library, and are provided as bare metal and RTOS-based implementations. In addition, full cloud-connected applications are provided for select platforms. Examples provided show use of most commonly used networking elements:

  • HTTP server with and secure HTTP server using MbedTLS and WolfSSL (evaluation version)
  • DHCP and static IP allocation
  • TCP
  • UDP
  • MQTT
Secure server
Device Family* Core
WolfSSL
MBedTLS
HTTP server MQTT TCP/UDP
K6x Cortex-M4
LPC54S/540xx Cortex-M4
LPC54S018JxM Cortex-M4
LPC546xx Cortex-M4
i.MX RT102x Cortex-M7
i.MX RT105x Cortex-M7
i.MX RT106x Cortex-M7

Microsoft Azure NetX Duo

Azure RTOS NetX Duo embedded TCP/IP network stack is Microsoft’s advanced, industrial grade dual IPv4 and IPv6 TCP/IP network stack designed specifically for deeply embedded, real-time, and IoT applications. NetX Duo provides embedded applications with core network protocols such as IPv4, IPv6, TCP, and UDP as well as a complete suite of additional, higher-level add-on protocols. Azure RTOS NetX Duo is also secure via additional add-on security products, including Azure RTOS NetX Secure IPsec and Azure RTOS NetX Secure SSL/TLS/DTLS. All of this combined with an small footprint, fast execution, and superior ease-of-use make Azure RTOS NetX Duo the ideal choice for the most demanding embedded IoT applications. For more information on the features of NetX Duo please visit the Microsoft Azure website.

Azure RTOS NetX Duo is currently available for i.MX RT105x and i.MX RT106x devices, and is available as an optional download in MCUXpresso SDK. Support for the i.MX RT102x product families will be available by the end of 2020, with device support being expanded through 2021. Note that NetX Duo may not be used with any RTOS other than ThreadX.