Reply
Posts: 2
Registered: ‎06-02-2015

RAIL issues while receiving packets

Hello together,
 
I'm working with the EFR32FG SoC (Developmentboard: BRD4250B) and have troubles to receive packets. Currently, 10 additional Bytes are received (before my actual payload). I'm using the simple-trx example. In this example a pattern: 0x0F 0x16 0x11... etc. is send. I made a breakpoint on the RAILCb_RxPacketReceived function and began to read out the receive Buffer. However instead of reading values like 0x0F, 0x16 I found out that the first 10 Bytes of the array contain garbage and after these 10 Bytes my data can be found.


I tried multiple radio configurations (868 MHz, 2.4 GHz presets as well as custom configurations). The problem stayed the same. In order to locate the issue, i manually read out the Rx-FIFO inside the RAILCb_AllocateMemory. Doing this way, i was able to read out the data I expected without leading 10 Bytes of garbage.
 
Therefore, I want to know, why are 10 Bytes added via the library at the beginning and what does these 10 Bytes mean or do i do something wrong? Furthermore, is it possible to go around the RAILCb_AllocateMemory callbacks and to read out the fifo manually on the RAILCb_RxPacketReceived callback? What do i have to do for that (simply deactivating those memory allocation related callbacks)?
 
However, to understand my problem, you will find the example project (and also the changes i made to receive data correctly) in the attachments.
 
Thank you in advance

Posts: 255
Registered: ‎02-14-2014

Re: RAIL issues while receiving packets

Hi Björn,

 

RAILCb_RxPacketReceived returns to you the memory handle for where the received packet and its appended information was stored. This handle will be the same as something returned by the RAILCb_AllocateMemory() API. This handle will hold a RAIL_RxPacketInfo_t structure starting at offset 0 in the buffer. This structure starts with the appended information before the payload data.

 

typedef struct RAIL_RxPacketInfo {

uint16_t dataLength;
uint8_t dataPtr[];

 

You can find this information and further details in the RAIL API document in the SDK install folder at

C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v1.0\protocol\flex_1.1\documentation\API_RAIL_HTML\index.html

Please note also , that this sample app demonstrates the packet based data management method, but the RAIL provides also a FIFO based method. See details at

file:///C:/SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v1.0/protocol/flex_1.1/documentation/API_RAIL_HTML/group___data___management.html#details

Regards,
Tamás
Silicon Labs