This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/CC2652R: [RTLS/AOA] how to disable frequency hopping (lock on one channel) when measure IQ

Part Number: CC2652R

Tool/software: Code Composer Studio

Hi All,

I found a problem, the amplitude of IQ will have a fluctuating range between different frames, but we didn't touch master/passive/slave when IQ testing in chamber

I think it caused by different freq. gain of ANT. lock on one channel can help to clarify it.

Does someone know how to lock channel?

  • HI team,

              For one AoA calculation, customer intend to use data cross frames which means they will use more than one frame data.

        Please instruct how to fix tag Tx channel to one(ex. ch37). Thank you.

  • Hi team,

    Customer tried LNA_max code but they find IQ amplitude still varies frame by frame in the same channel. Does it mean Tx power of tag vary frame by frame?  Can user set Pmax of tag? What is the power control of tag?

    Appreciate your support.

  • Hi Valery,

    It's not possible to disable frequency hoping in the BLE stack. You can use the following API to change the channel map to the minimum supported, which is 2. 

    http://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_3_40_00_02/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___h_c_i.html#ga41200c44c2cb5cd7ce482fa3a7810e91

    The amplitude of the IQ is absolutely sensitive to the dBi gain of the antenna, especially if there are multiple antennas that have different gain values. Even if you are using identical antennas, different amplitude values are possible because the two antennas will not receive the same signal equally, as there will be different incident angles relative to the transmitter. 

    This app note has some great information that goes through many of the considerations and measurements across multiple samples and multiple frequencies/channels. 

    http://www.ti.com/lit/an/tida029/tida029.pdf

  • Hi Evan,

    I have trace this thread.,

    but i didn't know which function is suitable. Can you provide a suitable entry for AOA Master Project?

    the end of RTLSMaster_processRTLSConnInfo() ?

  • Hi,

    I don't think it is a good solution to update the channel map at the end of the function RTLSMaster_processRTLSConnInfo() [because this function is executed several times and the channel map update needs to be done only once].

    I would rather suggest to execute the channel map update at the same time as the connection parameter update (find the treatment related to the event GAP_LINK_PARAM_UPDATE_EVENT).

    Best regards,

  • Hi Clément,

    I have add command as below, but useless, do you have another suggestion

        case GAP_LINK_PARAM_UPDATE_EVENT:
        {

          BLE_LOG_INT_STR(0, BLE_LOG_MODULE_APP, "APP : GAP msg status=%d, opcode=%s\n", 0, "GAP_LINK_PARAM_UPDATE_EVENT");
          connHandle = ((gapLinkUpdateEvent_t *) pMsg)->connectionHandle;

          if (connHandle != LINKDB_CONNHANDLE_INVALID && connHandle < MAX_NUM_BLE_CONNS &&
              ((gapLinkUpdateEvent_t *) pMsg)->hdr.status == SUCCESS)
          {
            // Upon param update, resend connection information
            RTLSMaster_processRTLSConnInfo(connHandle);
          }

          ///////////////////////////////////
          #define LL_NUM_BYTES_FOR_CHAN_MAP   5

          typedef struct
          {
            uint8 chanMap[ LL_NUM_BYTES_FOR_CHAN_MAP ]; // bit map corresponding to the data channels 0..39
          } chanMap_t;

          static chanMap_t chanMap;

          chanMap.chanMap[0] = 0x00;
            chanMap.chanMap[1] = 0xff;
            chanMap.chanMap[2] = 0xff;
            chanMap.chanMap[3] = 0xff;
            chanMap.chanMap[4] = 0x00;
            HCI_LE_SetHostChanClassificationCmd(chanMap.chanMap);

  • Hi,

    First of all, can you verify the function is working as expected:

    - Can you verify the HCI_LE_SetHostChanClassificationCmd() function is returning HCI_SUCCESS

    - Can you verify you are receiving the event hciEvt_CmdComplete_t with cmdOpcode HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION

    Once you are sure the function is working as expected, can you verify if you are activating the expected channels? I mean the code you are using will activate 24 channels (I though you wanted 2 channels).

    FYI, if you want to activate only 2 channels, try to use the following snippet:

          static chanMap_t chanMap;
    
          chanMap.chanMap[0] = 0x03; // 2 channels
          chanMap.chanMap[1] = 0x00;
          chanMap.chanMap[2] = 0x00;
          chanMap.chanMap[3] = 0x00;
          chanMap.chanMap[4] = 0x00;
          HCI_LE_SetHostChanClassificationCmd(chanMap.chanMap);

    Best regards,

  • thank you, Clément

    I change to set

          chanMap.chanMap[0] = 0x03; // 2 channels
          chanMap.chanMap[1] = 0x00;
          chanMap.chanMap[2] = 0x00;
          chanMap.chanMap[3] = 0x00;
          chanMap.chanMap[4] = 0x00;

    USE JTAG to debug, RTLS won't get GAP_LINK_PARAM_UPDATE_EVENT, so i change to GAP_LINK_ESTABLISHED_EVENT

    HCI_LE_SetHostChanClassificationCmd returned HCI_SUCCESS

    but still can't lock to 2 channel

    even put in the beginning of RTLSMaster_processStackMsg or RTLSMaster_processAppMsg

  • Hi,

    I checked with R&D team and this "channel update missing callback" problem is currently under investigation.

    Please bear with me.

    Kind regards,

  • Hi Clément,

    Did you get any response from R&D team?

  • Hi,

    I have not yet received a work around from the R&D team.

    However, even if you are not receiving the CB, have you verified (using a BLE analyzer) if the channel map is updated?

    Regards,

  • update log for chan_map

  • Hi,

    Nice! Glad to see you are making progress here. Can you confirm this is what you expected?

    Can you also provide a few details on how you managed to do this? (I am pretty sure other people will benefit from that).

    Best regards,

  • Hi Clément,

    I am sorry to have confused you

    I just check the chan_map have be updated to only 2 channel(0x3 means channel 1,2 . am i right?). but the start channel is 24 and it also hopping channel from 0~39(sorry, i should show more log)