Configure TI CC2541 compatible proprietary PHY - markding/iot-developer-boot-camp GitHub Wiki
English | Chinese
Table of Contents
Sometime it has request on configure compatible PHY for communicate with device from other vendor. Here share the experience on configure an EFR32xG22 PHY communicate with TI CC2541 proprietary 2.4G PHY. To communicate between 2 RF devices, the frequency, modulation, datarate, deviation, preamble, syncwork, packet format etc. must be the same. To configure the PHY for EFR32xG22, it needs to know the detail parameters on radio configurator.
- 1 WSTK with EFR32xG22 radio boards(BRD4182A)
- 1 SmartRF05 EB plus CC2541EMK
- 1 Anritsu MS2692A
The BRD4182A radio board supports three wireless protocols. Bluetooth LE/Mesh, Zigbee and Proprietary. Here use it on Proprietary protocol.
Simplicity Studio is a free Eclipse-based Integrated Development Environment (IDE) and a collection of value-add tools provided by Silicon Labs. Developers can use Simplicity Studio to develop, debug and analyze their applications. Silicon Labs recently released the Simplicity Studio 5 which is based on the latest versions of Eclipse and the C/C++ Development Tooling. Builds off the features of the previous version and includes advanced SecureVault technology, a new web-like interface, and solid performance improvements.
SmartRF™ Studio SmartRF™ is a Windows application that helps designers of RF systems to easily evaluate the radio at an early stage in the design process for CC2xxx low-power RF devices. It simplifies generation of the configuration register values and commands, as well as practical testing and debugging of the RF system. Here use SmartRF Studio 7.
Some parameters are provided and some are get from the xml file, the CC2541 config file that contain detail register setting. Finally it got below known parameters.
- Modulation: 2GFSK
- Datarate: 2Mbps
- Deviation 500KHz
- Preamble: 10101010 (13 bytes)
- Syncword: 0x29417671
- Payload: 64 bytes variable length
- Endian: MSB_FIRST
- CRC polynomial: CCITT_16(0x1021)
- CRC seed: 0xFFFF
- Whitening polynomial: PN9_BYTE
- Whitening seed: 0xFF
Try to configure a PHY according to above known parameters. The PHY doesn't work, even can not detect the preamble, so it is worth to analyze data transmit from CC2541.
Below GIF file show how to open a config file and transmit RF data on SmartRF Studio 7.
To get a readable frame data on signal analyzer MS2692A, it needs to configure the frequency, reference power level etc. accordingly.
Time between Marker1 and Marker2 is 52us. This should be the preamble time. 13bytes preamble, 2Mbps means one bit take 0.5us, 13x8x0.5us=52us. The signal analyzer MS2692A only detect 1 byte preamble and got 48us CW signal. Still not know the reason, but checking on TI BLE PHY and other GFSK 2Mbps PHYs, all got the same issue. This's why it has configured according to given parameters but our EFR32xG22 device can not detect the preamble.
Once the Preamble can be located, the frame data should be readable, just try to sampling the data bit for each 0.5us interval.
After checking the CC2541 frame data, know detail parameters setting on radio configurator, now it can create and configure on our EFR32xG22 project, here use "Flex (RAIL) - RAILtest" example on SSv5.
Double click radio config file -- "radio_settings.radioconf", select one preset PHY(2450M 2GFSK 2Mbps 1M), then check on "Customized", target PHY's center frequency is 2466MHz, first change frequency to 2466MHz.
It only got 8 bits preamble, according to AN1253, timing detect on preamble should be disable.
Left the other parameter as default, the PHY is done. Save and build, now then software is ready.
For more information on radio configurator, refer to AN1253.
TI CC2541 RX, EFR32xG22 TX, 20 packets.
For more information on CLI command, refer to UG409.
By checking PHY configuration from CC2541 TX on signal analyzer MS2692A, and tried several times on its CRC and Whitening configuration, know the parameters on radio configurator, it can get a compatible PHY for EFR32xG22 and CC2541.