AN844: Guide to Host/Network CoProcessor Communications Using
Connect v2.x
This document describes how to set up and test UART communication between a host and NCP (Network Co-Processor) using
ASHv3-UART, and how to load NCP. It assumes that you have a
Raspberry Pi, USB cable (for UART communication), and a development board. It applies to Silicon Labs Connect stack version
1.2 through 2.7.n, provided as part of the Flex SDK.
Proprietary is supported on all EFR32FG devices. For others, check the device's data
sheet under Ordering Information > Protocol Stack to see if Proprietary is supported. In
Proprietary SDK version 2.7.n, Connect is not supported on EFR32xG22.
KEY POINTS
• Hardware configuration information.
• Building and using the ASHv3-UART test
application.
• Building and using the standard UART
host application.
• Building and using a host bootloader
application
silabs.com | Building a more connected world. Rev. 0.9
AN844: Guide to Host/Network Co-Processor Communications Using Connect v2.x
Introduction
1. Introduction
A Network Co-Processor (NCP) runs the Connect stack and is controlled by the host processor through ASHv3-UART commands. The
NCP must be a chip in the Wireless Gecko (EFR32™) portfolio. The host is a Linux device such as a Raspberry Pi. ASHv3 is the third
revision of the Asynchronous Serial Host (ASH). It is a reliable and efficient UART communication protocol that is used to facilitate NCP
and Host communication. ASHv3 operates on the same level as the UART and interfaces directly with it.
This document assumes that the NCP platform is loaded with an application image. The Connect stack comes with NCP UART examples (one with hardware and one with software flow control) that can be compiled and loaded onto the NCP platform. The NCP platform
should also be loaded with a correctly-configured serial bootloader (serial-uart-bootloader). Building a Connect example in Studio generates images for both Bootloader+application and application alone. See AN961: Bringing Up Custom Devices for the EFR32MG and
EFR32FG Families to learn how to configure a serial bootloader on an EFR32.
The Linux host is loaded with the ASHv3-UART test application (ash-v3-test-app).
This application note describes the following:
• Hardware configuration information.
• Building and using the ASHv3-UART test application
• Building and using the standard UART host application
• Building and using a host bootloader application
For additional information on using Simplicity Studio and building Connect applications, see QSG138: Getting Started with the Silicon
Labs Flex SDK for the Wireless Gecko (EFR32™) Portfolio. For additional information on ASHv3, see UG115: ASHv3 Protocol Reference.
silabs.com | Building a more connected world. Rev. 0.9 | 2
AN844: Guide to Host/Network Co-Processor Communications Using Connect v2.x
Hardware Configuration
2. Hardware Configuration
For UART NCP, Silicon Labs uses USART0 directed to the same pins that are used for the virtual COM port, as shown in the following
table.
Table 2.1. EFR32 Pin Configurations
Function EFR32 Pin Peripheral Location Description
TX PA0 USART0_TX 0 Data output from NCP
RX PA1 USART0_RX 0 Data input to NCP
CTS* PA2 (N/A)* (N/A)* Clear to send hardware flow control input to NCP
RTS* PA3 (N/A)* (N/A)* Request to send hardware flow control output from NCP
*CTS and RTS are software enabled
For UART NCP implementations on EFR32-based development kits, these pins are also on the WSTK expansion header. Only UART
TX and UART RX are labeled (12 and 14), but CTS and RTS can be found at 3 and 5 respectively.
Connect the Linux host, and make sure that it recognizes the USB connection, if using USB-to-serial interfacing to the UART NCP.
The device entry for the newly connected USB or UART device can vary by operating system but will typically have the form of /dev/
tty<extension>, for example /dev/ttyACM0 (EFR32). Instructions later in this document reference these device formats.
silabs.com | Building a more connected world. Rev. 0.9 | 3