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.

SimpleLink CC2640R2 SDK (4.20.00.04)这个版本已经不再支持AOA了?

Other Parts Discussed in Thread: CC2640, CC2652R, CC2642R

CC2640最新的SDK中已经没有RTLS Toolbox的相关资料和文档了。相关的资料在SimpleLink™ CC13X2 / CC26X2 SDK.的SDK中有,AOA这部分功能已经转向CC26X2系列了?

dev.ti.com/.../node

  • CC2640R2的AOA是基于TI私有协议的,做验证测试,之后不再提供支持。
    AOA推荐使用CC26X2和CC13X2系列产品,未来支持比较好
  • 那请问,我们买的CC2640R2的硬件套件,芯片换成CC2652,调试CC26X2的SDK?
  • 可以用CC2642R或CC2652R替换CC2640R2,替换硬件需要修改的地方:www.ti.com.cn/.../swra582c.pdf
    替换完成后用CC26X2的SDK
  • 请问,软件方面simplelink_cc13x2_26x2_sdk_4_30_00_54这个版本SDK中,rtls_master/rtls_passive项目中的关于天线切换部分代码找不到了。请问这部分是做了怎么样的修改
    #define NUM_ENTRIES 3
    #define SWITCH_TIME 2

    #define ANT1 (1<<28)
    #define ANT2 (1<<29)
    #define ANT3 (1<<30)
    #define IO_MASK (ANT1 | ANT2 | ANT3)

    uint32_t antSwitching[] =
    {
    NUM_ENTRIES | (SWITCH_TIME << 8),
    IO_MASK,
    ANT1,
    ANT2,
    ANT3
    };
  • 在RTLS_CMD_AOA_SET_PARAMS中,在python中设置了天线切换模式

    Listing 99. AoaSetParamsReq:

      class AoaSetParamsReq(NpiRequest, SyncReq, FromAp):
          command = Commands.RTLS_CMD_AOA_SET_PARAMS
          struct = Struct(
              "aoaRole" / Enum(Int8ul, AoaRole),  # AOA_MASTER, AOA_SLAVE, AOA_PASSIVE
              "aoaResultMode" / Enum(Int8ul, AoaResultMode),  # AOA_MODE_ANGLE, AOA_MODE_PAIR_ANGLES, AOA_MODE_RAW
              "connHandle" / Int16ul,
              "slotDurations" / Int8ul,  # 1us/2us sampling slots
              "sampleRate" / Int8ul,  # 1Mhz (BT5.1 spec), 2Mhz, 3Mhz or 4Mhz - this enables oversampling
              "sampleSize" / Int8ul,  # 8 bit sample (as defined by BT5.1 spec), 16 bit sample (higher accuracy)
              "sampleCtrl" / Int8ul,  # sample control flags bit[0] = 0-default filtering, bit[0]= 1-RAW_RF no filtering
                                      # bit 4,5 - 0x10 - ONLY_ANT_1, 0x20 - ONLY_ANT_2
                                      # 0x00 is not a valid option.
              "samplingEnable" / Int8ul,
              # 0 = mask CTE even if enabled, 1 = don't mask CTE, even if disabled (support Unrequested CTE)
              "numAnt" / Int8ul,  # Number of antennas in antenna array
              "antArray" / Int8ul[this.numAnt],  # GPIO's of antennas
          )

    看下链接中的任务2:dev.ti.com/.../node

  • 谢谢,这部分已经看到了。还需要请教一个新的问题,自己设置了圆形阵列的天线,需要通过8个GPIO去控制更多的12个天线切换遍。控制的GPIO我需要修改的python和rtls_master中的哪些部分?  

    python中

                        "aoa_cc26x2": {
                            "aoa_slot_durations": 1,
                            "aoa_sample_rate": 1,
                            "aoa_sample_size": 1,
                            "aoa_sampling_control": int('0x10', 16),
                            ## bit 0   - 0x00 - default filtering, 0x01 - RAW_RF no filtering,
                            ## bit 4,5 - default: 0x10 - ONLY_ANT_1, optional: 0x20 - ONLY_ANT_2
                            "aoa_sampling_enable": 1,
                            "aoa_pattern_len": 24,
                            "aoa_ant_pattern": [0, 1, 2,3,4,5,6,7,8,9,10,11,0, 1, 2,3,4,5,6,7,8,9,10,11]
                        }
    rtls_master的AOA.C中

    void AOA_init(uint8_t startAntenna)
    {
    #ifdef RTLS_PASSIVE                //此处宏定义passive有效的话, 在只用master的作为测量设备,需要在配置引脚切换。
    uint8_t antArray[BOOSTXL_AOA_NUM_ANT + 1] = {ANT2, ANT1, ANT3, ANT4, ANT5, ANT6, ANT7,ANT8, ANT9, ANT10, ANT11, ANT12,ANT2, ANT1, ANT3, ANT4, ANT5, ANT6, ANT7,ANT8, ANT9, ANT10, ANT11, ANT12, ANT_ARRAY};

    // Init only once
    if (gPinHandle == NULL)
    {
    AOA_initAntArray(antArray, BOOSTXL_AOA_NUM_ANT + 1);
    }

    // Initialize ant array switch pin
    if (startAntenna == 2)
    {
    // Start with A2 (ANT_ARRAY pin high is A1, low is A2)
    PINCC26XX_setOutputValue(ANT_ARRAY, 0);
    }
    else
    {
    // Start with A1 (ANT_ARRAY pin high is A1, low is A2)
    PINCC26XX_setOutputValue(ANT_ARRAY, 1);
    }
    #endif

  • 另外,如果天线数量增加,这个结构体数组需不需要增加。
    AoA_AntennaPair_t pair_A1[] =
    {
    {// v12
    .a = 0, // First antenna in pair
    .b = 1, // Second antenna in pair
    .sign = 1, // Sign for the result
    .offset = 10, // Measurement offset compensation
    .gain = 0.95, // Measurement gain compensation
    },
    {// v23
    .a = 1,
    .b = 2,
    .sign = 1,
    .offset = -5,
    .gain = 0.9,
    },
    {// v13
    .a = 0,
    .b = 2,
    .sign = 1,
    .offset = -20,
    .gain = 0.50,
    },
    };