rfEasyLinkRx

Example includes the EasyLink API and uses it to configure the RF driver to RX packets. This project should be run in conjunction with the rfEasyLinkTx project.

For more information on the EasyLink API and usage refer to https://processors.wiki.ti.com/index.php/SimpleLink-EasyLink

Peripherals Exercised

  • Board_PIN_LED1 - Indicates an abort which is expected to happen 300 ms after RX has been scheduled
  • Board_PIN_LED2 - Indicates that a packet has been received Board_PIN_LED1 & Board_PIN_LED2 indicate an error

Resources & Jumper Settings

If you’re using an IDE (such as CCS or IAR), please refer to Board.html in your project directory for resources used and board-specific jumper settings. Otherwise, you can find Board.html in the directory <SDK_INSTALL_DIR>/source/ti/boards/<BOARD>.

Example Usage

Run the example. Board_PIN_LED2 will toggle indicating a packet has been received. Board_PIN_LED1 will toggle indicating an abort, which is expected to happen if a packet is not received within 300 ms of the RX being scheduled. Board_PIN_LED1 and Board_PIN_LED2 indicates an error (not expected to happen under normal conditions, but may occur if there is some interference).

After running this application you should start the rfEasyLinkTx on a second board to transmit packets. Until the rfEasyLinkTx has been started the receiver will be continuously RX.

Application Design Details

This example shows how to use the EasyLink API to access the RF drive, set the frequency and receive packets. The board will blink LED2 when a packet has been received. When a second board is running rfEasyLinkTx example then the expected behavior is that Board_PIN_LED2 will blink every 100 ms 10 times, the TX will then wait for 300 ms before transmitting the next packets and if RFEASYLINKRX_ASYNC is defined (as it is by default) then this will cause the rfEasyLinkRx example to timeout and exercise the EasyLink_abort API. When an RX has been aborted Board_PIN_LED1 should toggle. The rfEasyLinkTx board will then transmit another burst of packets and Board_PIN_LED2 should blink another 10 times and the cycle should repeat.

If RFEASYLINKRX_ADDR_FILTER is defined (as it is by default) then the RX address filter will be enabled for address 0xaa. This will cause the rfEasyLinkRx to only accept packets with a destination address of 0xaa, which the rfEasyLinkTx example transmits. When using the rfEasyLinkTx example there will be no difference in behaviour when defining/undefining RFEASYLINKRX_ADDR_FILTER as the rfEasyLinkTx example will use a destination address of 0xaa. However, if transmitting from another source like SmartRF Studio and not using an address of 0xaa, then defining RFEASYLINKRX_ADDR_FILTER will result in packets not being received.

A single task, “rfEasyLinkRxFnx”, configures the RF driver through the EasyLink API and receives messages.