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.

AWR2944: Question for HWA's channel combining feature

Part Number: AWR2944

Tool/software:

Hi TI's expert,

For the channel combining feature described at TRM 28.7.8 is not clear.

How can I set the registers if I need to combine data from four channels?

Please share some executable example.

Appreciated!!

BRs,

Dennis

  • Hi Dennis,

    Currently we do not have any example for Channel combining. I can share few code snippets that can be used as a reference.

    The following piece of code sets the bits CHANCOMB_EN of the PREPROC register in the paramset.

    hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.preProcCfg.chanCombEn = HWA_FEATURE_BIT_ENABLE;

    Also set the HWA common config mask to specify which fields are valid when HWA_ConfigCommon API is called. 
    HWA_COMMONCONFIG_MASK_CHANCOMB_VEC_SIZE mask should be used to set channel combining vector and the channel combining size when HWA_ConfigCommon API is called. 
    /* Config Common Registers */
    obj->azimFFTCfg.hwaCommonConfig.configMask = HWA_COMMONCONFIG_MASK_STATEMACHINE_CFG |/* numLoops, paramStartIdx, paramStopIdx combined here */
                                            HWA_COMMONCONFIG_MASK_TWIDDITHERENABLE|
                                            HWA_COMMONCONFIG_MASK_DCSUB_SWVAL |
                                            HWA_COMMONCONFIG_MASK_CHANCOMB_VEC_SIZE|
                                            HWA_COMMONCONFIG_MASK_COMPLEXMULT_SCALEARRAY;
    
    /* Configure the channel combining size register */
    obj->azimFFTCfg.hwaCommonConfig.chanCombConfig.size = cfg->staticCfg.numSteerVecs - 1;
    
    /* Configure channel combining vector */
    for(i = 0; i < 8; i++)
    {
        obj->azimFFTCfg.hwaCommonConfig.chanCombConfig.vector[i] = 0x33333333; // Sequence of 1100
        // The LSB of the bit-vector corresponds to the first input samples
    }
    
    /* Now configure the HWA common config registers by calling HWA_configCommon API */
    retVal = HWA_configCommon(obj->hwaHandle, &obj->azimFFTCfg.hwaCommonConfig);
    
    The above configuration combines two consecutive samples from the membank. If you have the data present in the membank in the required format, then you can add the 4 consecutive samples by configuring channel combining vector accurately. It should follow '11110000' sequence.

    For example, chanCombConfig.vector[0] = 0xF0F0F0F0.

    Regards,

    Samhitha

  • Hi Samhitha,

    Thanks for your reply. Is there any restriction on the data format to be combined? Can I combine the complex number or log2 format data?

    BRs,

    Dennis

  • Hi Dennis,

    Is there any restriction on the data format to be combined? Can I combine the complex number or log2 format data?

    Channel combining performs simple addition. If there are two samples a, b which are input to the channel combining block, then the output will be a+b. You can add two complex numbers or real numbers. When you say log2 format, if you mean log2(a+b) or log2(a) + log2(b) operations, then it's not possible.

    Regards,

    Samhitha

  • Thanks Samhitha!