Conditions
- SDK version: simplelink_cc13x0_sdk_1_50_00_08
- Use EasyLink_receive (Blocking call that waits for an Rx Packet) to receive data.
- The receiving timeout is 300 ms.
- The transmitter sends a data packet every 100 ms.
- There is no problem with the receiver at ambient temperature, and data can be received normally no matter how long it runs.
Abnormal conditions:
- If the receiver is placed in an environment where the temperature changes rapidly (the temperature is heating from -40 to +50 degree within about half an hour), the transmitter has been sending data at 100 ms interval, and the phenomenon will appear that there is no data received at the receiver and only to reset the receiver can be back to normal.
- Under the previous conditions, RF_yield (RfHandle) is added after the data is received every time. If the transmitter has been sending data, the reception has been normal under the same temperature change. However, if the transmitter does not send data, the receiver can only do nothing until time out (the serial port prints a string after the timeout). The chip does not respond during our tests, and it can only be restored to normal by resetting.
- Finally, tracing back to the RF_pendCmd function and delete the followings codes: Semaphore_pend (Semaphore_handle(&h->state.semSync), BIOS_WAIT_FOREVER). After tests, the data can be received normally under any conditions.
Questions:
- Why changes in high low temperature can cause the above phenomenon?
- Is there a problem with the third point solution of the abnormal conditions? Could it cause other abnormal problems? If this method is not appropriate, please provide a solution.