This application note describes methods to improve coexistence
of 2.4 GHz IEEE 802.11b/g/n Wi-Fi and Bluetooth® radios. These
techniques are applicable to the EFR32MGx family and
EFR32BGx family. This application note assumes you have a
basic understanding of how Wi-Fi coexistence is implemented
on EFR32 devices. For more information, see UG103.17: Wi-Fi®
Coexistence Fundamentals.
This application note describes EFR32 Bluetooth coexistence support for Silicon Labs
Bluetooth SDK version 3.0.1.0 and Bluetooth Mesh SDK version 1.7.2.0. See 5 Doc-
ument Revision Historyfor a summary of key changes in previous revisions of this
application note.
Additional details about the implementation of managed coexistence are included in
AN1243:Timing and Test Data for EFR32 Coexistence with Wi-Fi, available under
non-disclosure from Silicon Labs Sales.
KEY POINTS
• Configure PTA support for Bluetooth.
• Use application code existence exten-
sions.
• Order the Coexistence Backplane Evaluation Board.
silabs.com | Building a more connected world. Rev. 1.7
5. Document Revision History .................................................................................................................... 20
silabs.com | Building a more connected world. Rev. 1.7 | 1
AN1128: Bluetooth® Coexistence with Wi-Fi®
Introduction
1. Introduction
This application note includes the following sections:
• 2 PTA Support Software Setup describes how to configure the Silicon Labs Packet Traffic Arbitration (PTA) for Bluetooth.
• 3 Application Code Coexistence Extensionsdescribes how to use the application code existence extensions.
• 4 Coexistence Backplane Evaluation Board (EVB)explains how to order the EVB for evaluating the Silicon Labs EFR32 software
coexistence solution.
Notes:
1. Not all coexistence support features are present in SDK versions earlier than Bluetooth 3.0.1.0 and Bluetooth Mesh 1.7.2.0. Users
of Bluetooth SDK 2.13.7 or earlier and Bluetooth Mesh SDK 1.7.1 or earlier may see different features from those documented in
this application note.
2. Throughput this application note “Bluetooth Low Energy” is referenced as “Bluetooth”.
3. This application note addresses Bluetooth coexistence applications using EFR32 devices as per Bluetooth Core Specification v5.0
Vol 6 “Low Energy Controller” (point-to-point) and as per Bluetooth Specification Mesh Profile v1.0 (mesh network). These two applications have different coexistence considerations and, where necessary, this application note differentiates using the following
terms:
• “Bluetooth device” to reference Bluetooth Core Specification v5.0 Vol 6 “Low Energy Controller” (point-to-point) operation
• “Bluetooth mesh device” or “Bluetooth mesh node” to reference Bluetooth Specification Mesh Profile v1.0 (mesh network) oper-
ation
silabs.com | Building a more connected world. Rev. 1.7 | 2
AN1128: Bluetooth® Coexistence with Wi-Fi®
PTA Support Software Setup
2. PTA Support Software Setup
Note: GPIO interrupt numbers are based on the GPIO pin numbers and not the port. This can cause conflicts if the same pin is selected
for different ports—for example, PD15 will conflict with PB15. Silicon Labs recommends avoiding these conflicts. If the conflict
exists in hardware, manual macros can be added with the assistance of Silicon Labs Support.
2.1. Compile Time PTA Setup and Defaults
To enable PTA coexistence support, the following steps are required.
1. Create Bluetooth or Bluetooth Mesh project in Simplicity Studio.
2. Add the PRS component to your project. Double-click the slcp file of your project to open the Project Configurator, and go to the
SOFTWARE COMPONENTS tab. Search for PRS, select it, and click Install.
3. Add the RAIL Utility, Co-existence component to your project. Search for COEX, select RAIL Utility. Co-existence, and click In-
stall.
silabs.com | Building a more connected world. Rev. 1.7 | 3
AN1128: Bluetooth® Coexistence with Wi-Fi®
PTA Support Software Setup
The coexistence directory under gecko_sdk_3.x/platform/radio/rail_lib/plugin gets populated with the coexistence sources:
4. Edit project includes to include additional paths to files added to project:
1. Right-click the project and select Properties.
2. Expand C/C++ General and select Paths and Symbols.
3. Select the Includes tab.
4. In languages, select the desired C compiler (for example, GNU C).
5. Press add, check Is a workspace path, and enter each of the following paths:
Note: In 1-Wire PTA configurations based on GRANT-only, REQUEST is not implemented. If REQUEST is not needed, remove
the BSP_COEX_REQ_PORT and BSP_COEX_REQ_PIN #defines from coexistence-hal-config.h.
• REQUEST Window
REQUEST Window adjusts the lead time for REQUEST assertion before first Bluetooth TX or RX operation after REQUEST
asserted. A TX operation will proceed if GRANT is asserted at the end of the REQUEST Window. An RX operation will attempt
to proceed regardless of GRANT asserted or deasserted as Bluetooth RX does not impact other co-located radios. This feature’s
setting needs to at least exceed the maximum time for Wi-Fi/PTA to provide GRANT asserted or deasserted after REQUEST
asserted.
The following #define example sets the REQUEST Window to 500µs:
#define HAL_COEX_REQ_WINDOW (500)
• REQUEST signal is shared.
The following #define example disables Shared REQUEST for single-EFR operation.:
#define HAL_COEX_REQ_SHARED (0)
The following #define example enables Shared REQUEST.
#define HAL_COEX_REQ_SHARED (1)
• REQUEST signal max backoff mask
REQUEST signal max backoff determines the random REQUEST delay mask (only valid if REQUEST signal is shared). The
random delay (in µs) is computed by masking the internal random variable against the entered mask. The mask should be set
to a value of 2n-1 to ensure a continuous random delay range.
The following #define sets backoff to recommended value:
#define HAL_COEX_REQ_BACKOFF (15)
• GRANT pin settings: Enable/disable, polarity, port, and pin
The following #defines example enables active-low GRANT on PC3:
#define BSP_COEX_GNT_PIN (3)
silabs.com | Building a more connected world. Rev. 1.7 | 6
Loading...
+ 16 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.