TI中文支持网
TI专业的中文技术问题搜集分享网站

MMWCAS-DSP-EVM: mmwave studio 与PROCESSOR_SDK_RADAR_03_08_00_00 配置参数问题

Part Number:MMWCAS-DSP-EVM

当我使用相同的波形配置参数能在mmwave studio上采数,而不能在PROCESSOR_SDK_RADAR_03_08_00_00上配置(demo为tda2xx_cascade_bios_radar,选择样例cascade_radar_capture_only,波形修改位置:chains_common_cascade_ar12xx_config_mimo.c),我看了UART打印信息,确定配置rlSetFrameConfig()函数时会卡住

我发现mmwave studio 3.0.0.07使用的固件包为mmwave_dfp_2.1.5.3,PROCESSOR_SDK_RADAR_03_08_00_00使用的固件包为mmwave_dfp_1.2.0.0(ti_components\radar\)。通过e2e.ti.com/…/3344366PROCESSOR_SDK_RADAR的镜像文件xwr22xx_metaImage.h是dfp2.1.5.3,但PROCESSOR_SDK_RADAR还使用dfp1.2.0.0的固件库D:\PROCESSOR_SDK_RADAR\ti_components\radar\mmwave_dfp_01_02_00_00\ti\control\mmwavelink\lib, 波形参数都是通过固件包的API配置射频参数的,会不会是固件包版本会影响波形参数配置。谢谢

Chris Meng:

你好,

请参考下面的论坛讨论:

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1006303/mmwcas-rf-evm-using-sdk-for-cascaded-imaging-radar/3717675 

,

user6381589:

你好,

上面的方法我已经做过了,并成功运行了cascade_radar_capture_only这个demo,但是我试图去修改波形参数时发生了错误,但这个波形配置我已经在mmwave studio是试过了可行。

,

Chris Meng:

你好,

所以你已经修改了processor sdk for radar的代码的dfp 的firmware?你的问题描述让人理解不清楚啊。

即使配置错误,也不应该是卡住,而是返回错误信息。你能否看看是否错误信息返回?

,

user6381589:

我以及按照上面的论坛替换了PROCESSOR_SDK_RADAR_03_08_00_00的固件xwr22xx_metaImage.h,没有修改dfp的代码,修改的是vision_sdk\apps\src\rtos\radar\src\common\chains_common_cascade_ar12xx_config_mimo.c的波形配置参数,

,

Chris Meng:

你好,

论坛上除了更新dfp firmware也就是你说的h文件,还有其他几个文件的修改,相信你都一并修改了吧。

Chris Meng 说:即使配置错误,也不应该是卡住,而是返回错误信息。你能否看看是否错误信息返回?

这点有关注过么?

,

user6381589:

都修改了,并且demo成功运行

没有返回信息

vision_sdk\apps\src\rtos\radar\src\common\chains_common_ar12xx.c

Void ChainsCommon_ar12xxConfig(ChainsCommon_Ar12xxConfigOut *pCfgOut)

{

…// retVal = Bsp_ar12xxConfigParams(BSP_AR12XX_CONFIG_ALL);// Vps_printf("retVal:%d\n",retVal);// UTILS_assert(SYSTEM_LINK_STATUS_SOK == retVal);

retVal = Bsp_ar12xxConfigParams(0x7fff);Vps_printf("retVal:%d\n",retVal);(串口打印了)UTILS_assert(SYSTEM_LINK_STATUS_SOK == retVal);retVal = Bsp_ar12xxConfigParams(0x8000);(停在这个API)Vps_printf("retVal:%d\n",retVal);(串口没有打印)UTILS_assert(SYSTEM_LINK_STATUS_SOK == retVal);

}

,

Chris Meng:

user6381589 说:确定配置rlSetFrameConfig()函数时会卡住

我看了一下Bsp_ar12xxConfigParams函数里调用mmwave配置函数都有返回值,但返回值没有打印出来。你能否打印一下相关mmwave配置函数的返回值,看看返回值是否保存,错误是什么?

,

user6381589:

通过打印发现代码停止的位置有了变化

vision_sdk\apps\src\rtos\radar\src\common\chains_common_ar12xx.c

Void ChainsCommon_ar12xxConfig(ChainsCommon_Ar12xxConfigOut *pCfgOut)

{

 retVal = Bsp_ar12xxConfigParams(BSP_AR12XX_CONFIG_ALL);Vps_printf("retVal:%d\n",retVal);(没有打印)UTILS_assert(SYSTEM_LINK_STATUS_SOK == retVal);

}

Int32 Bsp_ar12xxConfigParams(UInt32 bitMapEnableConfig)

{

if ((retVal == BSP_SOK) && ((bitMapEnableConfig & (UInt32) BSP_AR12XX_CONFIG_CHIRP_PARAM) != 0U)) { retVal = Bsp_ar12xxConfigChirp(radarConfigIdx); GT_1trace(BspDeviceTrace, GT_INFO,"Bsp_ar12xxConfigChirp retVal:%d\r\n",retVal);(有打印) } if ((retVal == BSP_SOK) && ((bitMapEnableConfig & (UInt32) BSP_AR12XX_CONFIG_BPM_CHIRP) != 0U)) { retVal = Bsp_ar12xxConfigBpmChirp(radarConfigIdx); GT_1trace(BspDeviceTrace, GT_INFO,"Bsp_ar12xxConfigBpmChirp retVal:%d\r\n",retVal);(时有时无) } if ((retVal == BSP_SOK) && ((bitMapEnableConfig & (UInt32) BSP_AR12XX_CONFIG_BPM_COMMON) != 0U)) { retVal = Bsp_ar12xxConfigBpmCommon(radarConfigIdx); GT_1trace(BspDeviceTrace, GT_INFO,"Bsp_ar12xxConfigBpmCommon retVal:%d\r\n",retVal);(没有打印) } if ((retVal == BSP_SOK) && ((bitMapEnableConfig & (UInt32) BSP_AR12XX_CONFIG_CSI_LANES) != 0U)) { retVal = rlDeviceSetCsi2Config((rlUInt8_t)gBspAr12xxObj.devIdxMap, &sensorCfg->csiConfigArgs); }

}

Bsp_ar12xxConfigParams()不是配置了四片芯片吗,前三片打印都是正常的,唯独最后一次有问题这就无法理解了?,打印函数不是实时调用的无法准确判断挂死位置,

[IPU1-0] 21.173946 s: AWR12XX: RF Boot Status = 0x73bfefb[IPU1-0] 21.174037 s: AWR12XX: RF Boot Time = 10916 us[IPU1-0] 21.176599 s: Bsp_ar12xxConfigProfile retVal:0[IPU1-0] 21.561001 s: Bsp_ar12xxConfigChirp retVal:0[IPU1-0] 21.561611 s: Bsp_ar12xxConfigBpmChirp retVal:0[IPU1-0] 21.562160 s: Bsp_ar12xxConfigBpmCommon retVal:0[IPU1-0] 21.660373 s: AWR12XX: RF Boot Status = 0x73bfefb[IPU1-0] 21.660495 s: AWR12XX: RF Boot Time = 10916 us[IPU1-0] 21.662965 s: Bsp_ar12xxConfigProfile retVal:0[IPU1-0] 22.046940 s: Bsp_ar12xxConfigChirp retVal:0[IPU1-0] 22.047550 s: Bsp_ar12xxConfigBpmChirp retVal:0[IPU1-0] 22.048099 s: Bsp_ar12xxConfigBpmCommon retVal:0[IPU1-0] 22.146251 s: AWR12XX: RF Boot Status = 0x73bfefb[IPU1-0] 22.146342 s: AWR12XX: RF Boot Time = 10916 us[IPU1-0] 22.148630 s: Bsp_ar12xxConfigProfile retVal:0[IPU1-0] 22.532940 s: Bsp_ar12xxConfigChirp retVal:0[IPU1-0] 22.533550 s: Bsp_ar12xxConfigBpmChirp retVal:0[IPU1-0] 22.534099 s: Bsp_ar12xxConfigBpmCommon retVal:0[IPU1-0] 22.632983 s: AWR12XX: RF Boot Status = 0x73bfefb[IPU1-0] 22.633075 s: AWR12XX: RF Boot Time = 10916 us[IPU1-0] 22.635393 s: Bsp_ar12xxConfigProfile retVal:0[IPU1-0] 23.020130 s: Bsp_ar12xxConfigChirp retVal:0[IPU1-0] 23.020893 s: Bsp_ar12xxConfigBpmChirp retVal:0

,

user6381589:

我配置波形配置参数,只需替换(chains_common_cascade_ar12xx_config_mimo.c),

demo:tda2xx_cascade_bios_radar cascade_radar_capture_only ,processor sdk radar v3.8,固件(xwr22xx_metaImage.h)v2.2.3.1

屏蔽第80行即为原来的demo可以正常运行捕获数据

chains_common_cascade_ar12xx_config_mimo.c

/******************************************************************************
Copyright (c) [2018] Texas Instruments IncorporatedAll rights reserved not granted herein.Limited License.Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusivelicense under copyrights and patents it now or hereafter owns or controls tomake,have made, use, import, offer to sell and sell ("Utilize") this softwaresubject to the terms herein.With respect to the foregoing patent license,such license is grantedsolely to the extent that any such patent is necessaryto Utilize the software alone.The patent license shall not apply to anycombinations which include this software, other than combinations with devicesmanufactured by or for TI ("TI Devices").No hardware patent is licensedhereunder.Redistributions must preserve existing copyright notices and reproduce thislicense (including the above copyright notice and the disclaimer and(if applicable) source code license limitations below) in the documentationand/or other materials provided with the distributionRedistribution and use in binary form, without modification, are permittedprovided that the following conditions are met:* No reverse engineering, decompilation, or disassembly of this softwareis permitted with respect to any software provided in binary form.* Any redistribution and use are licensed by TI for use only with TI Devices.* Nothing shall obligate TI to provide you with source code for the softwarelicensed and provided to you in object code.If software source code is provided to you, modification and redistribution ofthe source code are permitted provided that the following conditions are met:* Any redistribution and use of the source code, including any resultingderivative works, are licensed by TI for use only with TI Devices.* Any redistribution and use of any object code compiled from the source codeand any resulting derivative works, are licensed by TI for use only with TIDevices.Neither the name of Texas Instruments Incorporated nor the names of itssuppliers may be used to endorse or promote products derived from this softwarewithout specific prior written permission.DISCLAIMER.THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, ORPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCEOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IFADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
******************************************************************************//***\file chains_common_cascade_ar12xx.c**\brief Cascade Radar sample application AR12xx configuration.*//********************************************************************************INCLUDE FILES********************************************************************************/
#include <include/common/chains_radar.h>/* ========================================================================== */
/*Macros & Typedefs*/
/* ========================================================================== */#define APP_NAME"CHAINS_COMMON_CASCADE"#define CHAINS_CASCADE_PARAMES_CONFIG_FLAG //TODO/* Maximum Number of profiles which is possible from the AR device */
#define CHAINS_CASCADE_RADAR_MAX_PROFILES(4U)/* Name of the configuration used */
#define CHAINS_CASCADE_RADAR_CONFIG_NAME"CASCADE_CONFIG"#define CHAINS_CASCADE_RADAR_NUM_RX_ANTENNA (4U)/* Total number of Txs across sensors that are chirped as part of TDM-MIMO */
#define CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA (8U)/** \brief Radar Sensor Height */
#ifndef CHAINS_CASCADE_PARAMES_CONFIG_FLAG
#define CHAINS_CASCADE_RADAR_RADAR_HEIGHT(64U)
#else
#define CHAINS_CASCADE_RADAR_RADAR_HEIGHT(1U)
#endif#define CHAINS_CASCADE_RADAR_NUM_FRAMES (0U) /* 0 = infinity Frames */#define CHAINS_CASCADE_RADAR_FRAME_PERIODICITY_MS (400) //100#define CHAINS_CASCADE_RADAR_START_FREQ(78U)
#define CHAINS_CASCADE_RADAR_PROFILE1_RADAR_WIDTH(512U)
#define CHAINS_CASCADE_RADAR_SAMPLING_RATE_KSPS(12000U)
#define CHAINS_CASCADE_RADAR_ADC_START_TIME_IN_US(6U)
#define CHAINS_CASCADE_RADAR_IDLE_TIME_IN_US(10U)
#define CHAINS_CASCADE_RADAR_RAMP_END_TIME_IN_US(648/10)
#define CHAINS_CASCADE_RADAR_SLOPE_MHZ_PER_US(88/10)
#define CHAINS_CASCADE_RADAR_RX_GAIN(48U)/* check if frame periodicity too low with 2 ms margin */
#define TOTAL_CHIRP_TIME_US ( /* number of chirps */\(CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA *\CHAINS_CASCADE_RADAR_RADAR_HEIGHT) *\/* time of one chirp */\(CHAINS_CASCADE_RADAR_RAMP_END_TIME_IN_US + \CHAINS_CASCADE_RADAR_IDLE_TIME_IN_US)\)#if ((CHAINS_CASCADE_RADAR_FRAME_PERIODICITY_MS * 1000) < (TOTAL_CHIRP_TIME_US + 2000U))
#error frame periodicity too low
#endif/** \brief CSI Data Rate for data transfer from AR12xx*Valid Values are*150 (for 150 Mbps)*300 (for 300 Mbps)*400 (for 400 Mbps)*450 (for 450 Mbps)*600 (for 600 Mbps)*/
#define CHAINS_AR1243_CSI_DATA_RATE (600U)#if (CHAINS_AR1243_CSI_DATA_RATE == (150U))/** \brief CSI Data rate value set in the AR12 parameters */#define CHAINS_AR1243_CSI_DATA_RATE_VALUE (6)/* 150 Mbps *//** \brief CSI High speed clock set in the AR12 parameters */#define CHAINS_CASCADE_RADAR_DDR_HSI_CLK(0xB)/* 150 Mbps *//** \brief ISS CSI clock paramter set */#define CHAINS_CASCADE_RADAR_ISS_CSI_CLK(75U)/* 150 Mbps */
#elif (CHAINS_AR1243_CSI_DATA_RATE == (300U))/** \brief CSI Data rate value set in the AR12 parameters */#define CHAINS_AR1243_CSI_DATA_RATE_VALUE (4)/* 300 Mbps *//** \brief CSI High speed clock set in the AR12 parameters */#define CHAINS_CASCADE_RADAR_DDR_HSI_CLK(0xA)/* 300 Mbps *//** \brief ISS CSI clock paramter set */#define CHAINS_CASCADE_RADAR_ISS_CSI_CLK(150U)/* 300 Mbps */
#elif (CHAINS_AR1243_CSI_DATA_RATE == (400U))/** \brief CSI Data rate value set in the AR12 parameters */#define CHAINS_AR1243_CSI_DATA_RATE_VALUE (3)/* 400 Mbps *//** \brief CSI High speed clock set in the AR12 parameters */#define CHAINS_CASCADE_RADAR_DDR_HSI_CLK(0x1)/* 400 Mbps *//** \brief ISS CSI clock paramter set */#define CHAINS_CASCADE_RADAR_ISS_CSI_CLK(200U)/* 400 Mbps */
#elif (CHAINS_AR1243_CSI_DATA_RATE == (450U))/** \brief CSI Data rate value set in the AR12 parameters */#define CHAINS_AR1243_CSI_DATA_RATE_VALUE (2)/* 450 Mbps *//** \brief CSI High speed clock set in the AR12 parameters */#define CHAINS_CASCADE_RADAR_DDR_HSI_CLK(0x5)/* 450 Mbps *//** \brief ISS CSI clock paramter set */#define CHAINS_CASCADE_RADAR_ISS_CSI_CLK(225U)/* 450 Mbps */
#elif (CHAINS_AR1243_CSI_DATA_RATE == (600U))/** \brief CSI Data rate value set in the AR12 parameters */#define CHAINS_AR1243_CSI_DATA_RATE_VALUE (1)/* 600 Mbps *//** \brief CSI High speed clock set in the AR12 parameters */#define CHAINS_CASCADE_RADAR_DDR_HSI_CLK(0x9)/* 600 Mbps *//** \brief ISS CSI clock paramter set */#define CHAINS_CASCADE_RADAR_ISS_CSI_CLK(300U)/* 600 Mbps */
#else#warn "CHAINS_CASCADE_RADAR: No valid data rate specified!!"
#endif/** \brief ADC Data Format for AR12*Valid Values are*12(for 12 bit ADC)*14(for 14 bit ADC)*16(for 16 bit ADC)*/
#define CHAINS_CASCADE_RADAR_ADC_DATA_FORMAT (16U)#if (CHAINS_CASCADE_RADAR_ADC_DATA_FORMAT == (12U))/** \brief AR12 data format value set in the configuration */#define CHAINS_CASCADE_RADAR_DATA_FORMAT_CONFIG (RL_ADC_DATA_12_BIT)/* 12 bit */
#elif (CHAINS_CASCADE_RADAR_ADC_DATA_FORMAT == (14U))/** \brief AR12 data format value set in the configuration */#define CHAINS_CASCADE_RADAR_DATA_FORMAT_CONFIG (RL_ADC_DATA_14_BIT)/* 14 bit */
#elif (CHAINS_CASCADE_RADAR_ADC_DATA_FORMAT == (16U))/** \brief AR12 data format value set in the configuration */#define CHAINS_CASCADE_RADAR_DATA_FORMAT_CONFIG (RL_ADC_DATA_16_BIT)/* 16 bit */
#else#warn "CHAINS_CASCADE_RADAR: No valid ADC data format specified!!"
#endif/** \brief Advanced Frame Configurations */
#define CHAINS_CASCADE_RADAR_NUM_SUBFRAMES(2U)
#define CHAINS_CASCADE_RADAR_NUM_BURSTS(1U)
#define CHAINS_CASCADE_RADAR_NUM_BURST_LOOPS(1U)#define CHAINS_CASCADE_CHIRP_START_IDX 0
#ifndef CHAINS_CASCADE_PARAMES_CONFIG_FLAG
#define CHAINS_CASCADE_CHIRP_END_IDX 9
#else
#define CHAINS_CASCADE_CHIRP_END_IDX 383
#endif/** \brief Macro for Frequency Calculation. Input 'x' is in MHz */
#define CHAINS_AR1243_FREQ_MHZ_CONV(x) ((rlUInt32_t)(((float)x * 1000000.0 + CHAINS_AR1243_FREQ_CONST)/CHAINS_AR1243_FREQ_CONST))/* When Advanced frame configuration is set this is ignored */
rlFrameCfg_tgChains_cascadeRadarFrmArgsMaster =
{.chirpStartIdx = (rlUInt16_t) CHAINS_CASCADE_CHIRP_START_IDX,.chirpEndIdx= (rlUInt16_t) CHAINS_CASCADE_CHIRP_END_IDX,.numLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_RADAR_HEIGHT,.numFrames= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_FRAMES,/* profileCfgArgs[1].numAdcSamples * 2 - 512 * 2*/.numAdcSamples= (rlUInt16_t) CHAINS_CASCADE_RADAR_PROFILE1_RADAR_WIDTH * (rlUInt16_t)2,.framePeriodicity= (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(CHAINS_CASCADE_RADAR_FRAME_PERIODICITY_MS),.triggerSelect= (rlUInt16_t) RL_FRAMESTRT_API_TRIGGER,.reserved0= (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0,.frameTriggerDelay = (rlUInt32_t) 0
};rlFrameCfg_tgChains_cascadeRadarFrmArgsSlave =
{.chirpStartIdx = (rlUInt16_t) CHAINS_CASCADE_CHIRP_START_IDX,.chirpEndIdx= (rlUInt16_t) CHAINS_CASCADE_CHIRP_END_IDX,.numLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_RADAR_HEIGHT,.numFrames= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_FRAMES,/* profileCfgArgs[1].numAdcSamples * 2 - 512 * 2*/.numAdcSamples= (rlUInt16_t) CHAINS_CASCADE_RADAR_PROFILE1_RADAR_WIDTH * (rlUInt16_t)2,.framePeriodicity= (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(CHAINS_CASCADE_RADAR_FRAME_PERIODICITY_MS),.triggerSelect= (rlUInt16_t) RL_FRAMESTRT_SYNCIN_TRIGGER,.reserved0= (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0,.frameTriggerDelay = (rlUInt32_t) 0
};rlProfileCfg_t gChains_cascadeRadarProfileArgs[] = {
{.profileId= (rlUInt16_t) 0,.pfVcoSelect= (rlUInt8_t) 0,.pfCalLutUpdate= (rlUInt8_t) 0,.startFreqConst= (rlUInt32_t) CHAINS_AR1243_FREQ_GHZ_CONV(CHAINS_CASCADE_RADAR_START_FREQ),.idleTimeConst= (rlUInt32_t) CHAINS_AR1243_TIME_US_TO_10NS(CHAINS_CASCADE_RADAR_IDLE_TIME_IN_US),.adcStartTimeConst= (rlUInt32_t) CHAINS_AR1243_TIME_US_TO_10NS(CHAINS_CASCADE_RADAR_ADC_START_TIME_IN_US),.rampEndTime= (rlUInt32_t) CHAINS_AR1243_TIME_US_TO_10NS(CHAINS_CASCADE_RADAR_RAMP_END_TIME_IN_US),.txOutPowerBackoffCode = (rlUInt32_t) 0,.txPhaseShifter= (rlUInt32_t) 0,.freqSlopeConst= (rlInt16_t) CHAINS_AR1243_FREQ_MHZ_PER_MICRO_S_SLOPE_CONV(CHAINS_CASCADE_RADAR_SLOPE_MHZ_PER_US),.txStartTime= (rlInt16_t) CHAINS_AR1243_TIME_US_TO_10NS(0U),.numAdcSamples= (rlUInt16_t) CHAINS_CASCADE_RADAR_PROFILE1_RADAR_WIDTH,.digOutSampleRate= (rlUInt16_t) CHAINS_CASCADE_RADAR_SAMPLING_RATE_KSPS, /* Kilo Samples per second */.hpfCornerFreq1= (rlUInt8_t) RL_RX_HPF1_175_KHz,.hpfCornerFreq2= (rlUInt8_t) RL_RX_HPF2_350_KHz,.txCalibEnCfg= (rlUInt16_t) 0,.rxGain= (rlUInt16_t) CHAINS_CASCADE_RADAR_RX_GAIN
}
};#define CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW(512U)
rlChirpCfg_tgChains_cascadeRadarChirpCfgArgsMaster[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW] ={{0}};
rlChirpCfg_tgChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap2[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW] ={{0}};
rlChirpCfg_tgChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap4[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW] ={{0}};
rlChirpCfg_tgChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap8[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW] ={{0}};rlRfPhaseShiftCfg_t gCascade_mimo_master[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW];
rlRfPhaseShiftCfg_t gCascade_mimo_slave2[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW];
rlRfPhaseShiftCfg_t gCascade_mimo_slave4[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW];
rlRfPhaseShiftCfg_t gCascade_mimo_slave8[CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW];rlBpmChirpCfg_tgChains_cascadeRadarBpmChirpCfgArgs[] =
{{.chirpStartIdx = (rlUInt16_t) 0x0,.chirpEndIdx= (rlUInt16_t) 0x0,.constBpmVal= (rlUInt16_t) 0x0,.reserved= (rlUInt16_t) 0x0}
};/**< \brief Sensor configuration for the CHAINS_CASCADE_RADAR Radar Sensor*/
Bsp_Ar12xxConfigObjgAr12xx_config_master =
{.rfChanCfgArgs= {.rxChannelEn = (rlUInt16_t) ((1U << CHAINS_CASCADE_RADAR_NUM_RX_ANTENNA) - 1),.txChannelEn = (rlUInt16_t) ((1U << RL_TX_CNT) - 1),.cascading= (rlUInt16_t) RL_FRAME_SYNC_MODE_MULT_CHIP_MASTER,.cascadingPinoutCfg = (rlUInt16_t) 0x0},.adcOutCfgArgs= {.fmt= {.b2AdcBits= CHAINS_CASCADE_RADAR_DATA_FORMAT_CONFIG,.b6Reserved0 = (rlUInt32_t) 0x0,.b8FullScaleReducFctr = (rlUInt32_t) 0x0,.b2AdcOutFmt= RL_ADC_FORMAT_COMPLEX_1X,.b14Reserved1 = (rlUInt32_t) 0x0},.reserved0= (rlUInt16_t) 0x0},.dataFmtCfgArgs= {.rxChannelEn= (rlUInt16_t) (1<<CHAINS_CASCADE_RADAR_NUM_RX_ANTENNA) - 1,.adcBits= (rlUInt16_t) CHAINS_CASCADE_RADAR_DATA_FORMAT_CONFIG,.adcFmt= (rlUInt16_t) RL_ADC_FORMAT_COMPLEX_1X,.iqSwapSel= (rlUInt8_t) RL_DEV_I_FIRST,.chInterleave = (rlUInt8_t) RL_DEV_CH_NON_INTERLEAVED,.reserved= (rlUInt32_t) 0x0},.rfLpModeCfgArgs= {.reserved= (rlUInt16_t) 0,.lpAdcMode= (rlUInt16_t) RL_ADC_MODE_REGULAR},.chirpCfgArgs= gChains_cascadeRadarChirpCfgArgsMaster,.numChirpCfgArgs= (CHAINS_CASCADE_CHIRP_END_IDX+1U),.profileCfgArgs= gChains_cascadeRadarProfileArgs,.numProfileCfgArgs = sizeof(gChains_cascadeRadarProfileArgs)/sizeof(rlProfileCfg_t),.frameCfgArgs= &gChains_cascadeRadarFrmArgsMaster,.dataPathCfgArgs= {.intfSel= (rlUInt8_t) 0,.transferFmtPkt0 = (rlUInt8_t) 1, /**< Data out Format, \nb5:0 Packet 0 content selection\n000001 - ADC_DATA_ONLY \n000110 - CP_ADC_DATA \n001001 - ADC_CP_DATA \n110110 - CP_ADC_CQ_DATAb7:6 Packet 0 virtual channel number (valid only for CSI2)\n00 Virtual channel number 0 (Default)\n01 Virtual channel number 1\n02 Virtual channel number 2\n03 Virtual channel number 3 \n*/.transferFmtPkt1 = (rlUInt8_t) 0,/**< Data out Format, \nb5:0 Packet 0 content selection\n000000 - Suppress Packet 1 \n001110 - CP_CQ_DATA \n001011 - CQ_CP_DATA \nb7:6 Packet 1 virtual channel number (valid only for CSI2)\n00 Virtual channel number 0 (Default)\n01 Virtual channel number 1\n02 Virtual channel number 2\n03 Virtual channel number 3\n*/.cqConfig= (rlUInt8_t) 2,.cq0TransSize= (rlUInt8_t) 64,.cq1TransSize= (rlUInt8_t) 64,.cq2TransSize= (rlUInt8_t) 64,.reserved= (rlUInt8_t) 0},.dataPathClkCfgArgs= {.laneClkCfg = (rlUInt8_t) 1,.dataRate= (rlUInt8_t) CHAINS_AR1243_CSI_DATA_RATE_VALUE,.reserved= (rlUInt16_t) 0},.hsiClkgs= {.hsiClk= (rlUInt16_t) CHAINS_CASCADE_RADAR_DDR_HSI_CLK,.reserved = (rlUInt16_t) 0x0},.laneEnCfgArgs= {.laneEn= (rlUInt16_t)#if CHAINS_AR1243_CSI_DATA1LANE_POS((rlUInt16_t) 0x1) |#endif#if CHAINS_AR1243_CSI_DATA2LANE_POS((rlUInt16_t) 0x2) |#endif#if CHAINS_AR1243_CSI_DATA3LANE_POS((rlUInt16_t) 0x4) |#endif#if CHAINS_AR1243_CSI_DATA4LANE_POS((rlUInt16_t) 0x8) |#endif((rlUInt16_t) 0x0),.reserved = (rlUInt16_t) 0x0},.ldoBypassCfgArgs = {3, 0},.bpmCommnCfgArgs = {.mode.b2SrcSel= 0,.mode.b1Reserved0= 0,.mode.b13Reserved1 = 0,.reserved0= (rlUInt16_t) 0,.reserved1= (rlUInt16_t) 0,.reserved2= (rlUInt16_t) 0,.reserved3= (rlUInt32_t) 0,.reserved4= (rlUInt32_t) 0},.bpmChirpCfgArgs = gChains_cascadeRadarBpmChirpCfgArgs,.numBpmChirpCfgArgs = sizeof(gChains_cascadeRadarBpmChirpCfgArgs)/sizeof(rlBpmChirpCfg_t),.csiConfigArgs = {.lanePosPolSel = ((CHAINS_AR1243_CSI_CLOCKLANE_POS << 16U) | /* Polarity Always */(CHAINS_AR1243_CSI_DATA4LANE_POS << 12U) | /* assumed to be 0 */(CHAINS_AR1243_CSI_DATA3LANE_POS << 8U) |(CHAINS_AR1243_CSI_DATA2LANE_POS << 4U) |(CHAINS_AR1243_CSI_DATA1LANE_POS)),.reserved1 = (rlUInt32_t) 0U,},.advFrameCfgArgs = {.frameSeq = {.numOfSubFrames = (rlUInt8_t) CHAINS_CASCADE_RADAR_NUM_SUBFRAMES,.forceProfile= (rlUInt8_t) 1,.loopBackCfg= (rlUInt8_t) 0,.subFrameTrigger = (rlUInt8_t) 0,.subFrameCfg = {{.forceProfileIdx= (rlUInt16_t) 0,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA,.numLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_RADAR_HEIGHT,.burstPeriodicity= (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(33U),/* burstPeriodicity >=* (numLoops)* (numOfChirps) * chirpTime + InterBurstBlankTime,* where InterBurstBlankTime is primarily for sensor* calibration / monitoring, thermal control, and some minimum* time needed for triggering next burst.* NOTE: Across bursts, if the value numOfChirps, is not a* constant, then the actual available blank time can vary and* needs to be accounted for 1 LSB = 5 ns*/.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURSTS,.numOfBurstLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURST_LOOPS,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(66U),.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0},{.forceProfileIdx= (rlUInt16_t) 1,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA,.numLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_RADAR_HEIGHT,.burstPeriodicity= (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(33U),.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURSTS,.numOfBurstLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURST_LOOPS,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(66U),.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0},{.forceProfileIdx= (rlUInt16_t) 0,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) 0,.numLoops= (rlUInt16_t) 0,.burstPeriodicity= (rlUInt32_t) 0,.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) 0,.numOfBurstLoops= (rlUInt16_t) 0,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0},{.forceProfileIdx= (rlUInt16_t) 0,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) 0,.numLoops= (rlUInt16_t) 0,.burstPeriodicity= (rlUInt32_t) 0,.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) 0,.numOfBurstLoops= (rlUInt16_t) 0,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0}},.numFrames= (rlUInt16_t) 0,.triggerSelect= (rlUInt16_t) RL_FRAMESTRT_API_TRIGGER,.frameTrigDelay = (rlUInt32_t) 0,.reserved0= (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0},.frameData = {.numSubFrames = (rlUInt8_t) CHAINS_CASCADE_RADAR_NUM_SUBFRAMES,.reserved0= (rlUInt8_t) 0,.reserved1= (rlUInt16_t) 0,.subframeDataCfg = {{.totalChirps =(rlUInt32_t) CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA * CHAINS_CASCADE_RADAR_RADAR_HEIGHT * CHAINS_CASCADE_RADAR_NUM_BURSTS,/* Number of Chirps in Sub-Frame =*numOfChirps * numLoops * numOfBurst*/.numAdcSamples = (rlUInt16_t) CHAINS_CASCADE_RADAR_PROFILE1_RADAR_WIDTH * (rlUInt16_t) 2,.numChirpsInDataPacket = (rlUInt8_t) 1,/* In AR12xx: Program this as 1 */.reserved = (rlUInt8_t) 0,},{.totalChirps = (rlUInt32_t) 0,.numAdcSamples = (rlUInt16_t) 0,.numChirpsInDataPacket = (rlUInt8_t) 1,.reserved = (rlUInt8_t) 0,},{.totalChirps = (rlUInt32_t) 0,.numAdcSamples = (rlUInt16_t) 0,.numChirpsInDataPacket = (rlUInt8_t) 1,.reserved = (rlUInt8_t) 0,},{.totalChirps = (rlUInt32_t) 0,.numAdcSamples = (rlUInt16_t) 0,.numChirpsInDataPacket = (rlUInt8_t) 1,.reserved = (rlUInt8_t) 0,}}}},.frameType = BSP_AR12XX_FRAME_TYPE_NORMAL,.calibEnArgs = {.calibEnMask= (rlUInt32_t) 0x1ff0,.reserved0= (rlUInt8_t) 0x0,.reserved1= (rlUInt8_t) 0x0,.reserved2= (rlUInt16_t) 0x0,.reserved3= (rlUInt32_t) 0x0}
};/**< \brief Sensor configuration for the CHAINS_CASCADE_RADAR Radar Sensor*/
Bsp_Ar12xxConfigObjgAr12xx_config_slave_DevIdxMap2 =
{.rfChanCfgArgs= {.rxChannelEn = (rlUInt16_t) (1 << CHAINS_CASCADE_RADAR_NUM_RX_ANTENNA) - 1,.txChannelEn = (rlUInt16_t) (1 << RL_TX_CNT) - 1,.cascading= (rlUInt16_t) RL_FRAME_SYNC_MODE_MULT_CHIP_SLAVE,.cascadingPinoutCfg = (rlUInt16_t) 0x0},.adcOutCfgArgs= {.fmt= {.b2AdcBits= CHAINS_CASCADE_RADAR_DATA_FORMAT_CONFIG,.b6Reserved0 = (rlUInt32_t) 0x0,.b8FullScaleReducFctr = (rlUInt32_t) 0x0,.b2AdcOutFmt= RL_ADC_FORMAT_COMPLEX_1X,.b14Reserved1 = (rlUInt32_t) 0x0},.reserved0= (rlUInt16_t) 0x0},.dataFmtCfgArgs= {.rxChannelEn= (rlUInt16_t) (1<<CHAINS_CASCADE_RADAR_NUM_RX_ANTENNA) - 1,.adcBits= (rlUInt16_t) CHAINS_CASCADE_RADAR_DATA_FORMAT_CONFIG,.adcFmt= (rlUInt16_t) RL_ADC_FORMAT_COMPLEX_1X,.iqSwapSel= (rlUInt8_t) RL_DEV_I_FIRST,.chInterleave = (rlUInt8_t) RL_DEV_CH_NON_INTERLEAVED,.reserved= (rlUInt32_t) 0x0},.rfLpModeCfgArgs= {.reserved= (rlUInt16_t) 0,.lpAdcMode= (rlUInt16_t) RL_ADC_MODE_REGULAR},.chirpCfgArgs= gChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap2,.numChirpCfgArgs= (CHAINS_CASCADE_CHIRP_END_IDX+1U),.profileCfgArgs= gChains_cascadeRadarProfileArgs,.numProfileCfgArgs = sizeof(gChains_cascadeRadarProfileArgs)/sizeof(rlProfileCfg_t),.frameCfgArgs= &gChains_cascadeRadarFrmArgsSlave,.dataPathCfgArgs= {.intfSel= (rlUInt8_t) 0,.transferFmtPkt0 = (rlUInt8_t) 1, /**< Data out Format, \nb5:0 Packet 0 content selection\n000001 - ADC_DATA_ONLY \n000110 - CP_ADC_DATA \n001001 - ADC_CP_DATA \n110110 - CP_ADC_CQ_DATAb7:6 Packet 0 virtual channel number (valid only for CSI2)\n00 Virtual channel number 0 (Default)\n01 Virtual channel number 1\n02 Virtual channel number 2\n03 Virtual channel number 3 \n*/.transferFmtPkt1 = (rlUInt8_t) 0,/**< Data out Format, \nb5:0 Packet 0 content selection\n000000 - Suppress Packet 1 \n001110 - CP_CQ_DATA \n001011 - CQ_CP_DATA \nb7:6 Packet 1 virtual channel number (valid only for CSI2)\n00 Virtual channel number 0 (Default)\n01 Virtual channel number 1\n02 Virtual channel number 2\n03 Virtual channel number 3\n*/.cqConfig= (rlUInt8_t) 2,.cq0TransSize= (rlUInt8_t) 64,.cq1TransSize= (rlUInt8_t) 64,.cq2TransSize= (rlUInt8_t) 64,.reserved= (rlUInt8_t) 0},.dataPathClkCfgArgs= {.laneClkCfg = (rlUInt8_t) 1,.dataRate= (rlUInt8_t) CHAINS_AR1243_CSI_DATA_RATE_VALUE,.reserved= (rlUInt16_t) 0},.hsiClkgs= {.hsiClk= (rlUInt16_t) CHAINS_CASCADE_RADAR_DDR_HSI_CLK,.reserved = (rlUInt16_t) 0x0},.laneEnCfgArgs= {.laneEn= (rlUInt16_t)#if CHAINS_AR1243_CSI_DATA1LANE_POS((rlUInt16_t) 0x1) |#endif#if CHAINS_AR1243_CSI_DATA2LANE_POS((rlUInt16_t) 0x2) |#endif#if CHAINS_AR1243_CSI_DATA3LANE_POS((rlUInt16_t) 0x4) |#endif#if CHAINS_AR1243_CSI_DATA4LANE_POS((rlUInt16_t) 0x8) |#endif((rlUInt16_t) 0x0),.reserved = (rlUInt16_t) 0x0},.ldoBypassCfgArgs = {3, 0},.bpmCommnCfgArgs = {.mode.b2SrcSel= 0,.mode.b1Reserved0= 0,.mode.b13Reserved1 = 0,.reserved0= (rlUInt16_t) 0,.reserved1= (rlUInt16_t) 0,.reserved2= (rlUInt16_t) 0,.reserved3= (rlUInt32_t) 0,.reserved4= (rlUInt32_t) 0},.bpmChirpCfgArgs = gChains_cascadeRadarBpmChirpCfgArgs,.numBpmChirpCfgArgs = sizeof(gChains_cascadeRadarBpmChirpCfgArgs)/sizeof(rlBpmChirpCfg_t),.csiConfigArgs = {.lanePosPolSel = ((CHAINS_AR1243_CSI_CLOCKLANE_POS << 16U) | /* Polarity Always */(CHAINS_AR1243_CSI_DATA4LANE_POS << 12U) | /* assumed to be 0 */(CHAINS_AR1243_CSI_DATA3LANE_POS << 8U) |(CHAINS_AR1243_CSI_DATA2LANE_POS << 4U) |(CHAINS_AR1243_CSI_DATA1LANE_POS)),.reserved1 = (rlUInt32_t) 0U,},.advFrameCfgArgs = {.frameSeq = {.numOfSubFrames = (rlUInt8_t) CHAINS_CASCADE_RADAR_NUM_SUBFRAMES,.forceProfile= (rlUInt8_t) 1,.loopBackCfg= (rlUInt8_t) 0,.subFrameTrigger = (rlUInt8_t) 0,.subFrameCfg = {{.forceProfileIdx= (rlUInt16_t) 0,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA,.numLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_RADAR_HEIGHT,.burstPeriodicity= (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(33U),/* burstPeriodicity >=* (numLoops)* (numOfChirps) * chirpTime + InterBurstBlankTime,* where InterBurstBlankTime is primarily for sensor* calibration / monitoring, thermal control, and some minimum* time needed for triggering next burst.* NOTE: Across bursts, if the value numOfChirps, is not a* constant, then the actual available blank time can vary and* needs to be accounted for 1 LSB = 5 ns*/.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURSTS,.numOfBurstLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURST_LOOPS,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(66U),.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0},{.forceProfileIdx= (rlUInt16_t) 1,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA,.numLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_RADAR_HEIGHT,.burstPeriodicity= (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(33U),.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURSTS,.numOfBurstLoops= (rlUInt16_t) CHAINS_CASCADE_RADAR_NUM_BURST_LOOPS,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) CHAINS_AR1243_TIME_MS_TO_5NS(66U),.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0},{.forceProfileIdx= (rlUInt16_t) 0,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) 0,.numLoops= (rlUInt16_t) 0,.burstPeriodicity= (rlUInt32_t) 0,.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) 0,.numOfBurstLoops= (rlUInt16_t) 0,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0},{.forceProfileIdx= (rlUInt16_t) 0,.chirpStartIdx= (rlUInt16_t) 0,.numOfChirps= (rlUInt16_t) 0,.numLoops= (rlUInt16_t) 0,.burstPeriodicity= (rlUInt32_t) 0,.chirpStartIdxOffset = (rlUInt16_t) 0,.numOfBurst= (rlUInt16_t) 0,.numOfBurstLoops= (rlUInt16_t) 0,.reserved0= (rlUInt16_t) 0,.subFramePeriodicity = (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0,.reserved2= (rlUInt32_t) 0}},.numFrames= (rlUInt16_t) 0,.triggerSelect= (rlUInt16_t) RL_FRAMESTRT_API_TRIGGER,.frameTrigDelay = (rlUInt32_t) 0,.reserved0= (rlUInt32_t) 0,.reserved1= (rlUInt32_t) 0},.frameData = {.numSubFrames = (rlUInt8_t) CHAINS_CASCADE_RADAR_NUM_SUBFRAMES,.reserved0= (rlUInt8_t) 0,.reserved1= (rlUInt16_t) 0,.subframeDataCfg = {{.totalChirps =(rlUInt32_t) CHAINS_CASCADE_RADAR_NUM_TX_ANTENNA * CHAINS_CASCADE_RADAR_RADAR_HEIGHT * CHAINS_CASCADE_RADAR_NUM_BURSTS,/* Number of Chirps in Sub-Frame =*numOfChirps * numLoops * numOfBurst*/.numAdcSamples = (rlUInt16_t) CHAINS_CASCADE_RADAR_PROFILE1_RADAR_WIDTH * (rlUInt16_t) 2,.numChirpsInDataPacket = (rlUInt8_t) 1,/* In AR12xx: Program this as 1 */.reserved = (rlUInt8_t) 0,},{.totalChirps = (rlUInt32_t) 0,.numAdcSamples = (rlUInt16_t) 0,.numChirpsInDataPacket = (rlUInt8_t) 1,.reserved = (rlUInt8_t) 0,},{.totalChirps = (rlUInt32_t) 0,.numAdcSamples = (rlUInt16_t) 0,.numChirpsInDataPacket = (rlUInt8_t) 1,.reserved = (rlUInt8_t) 0,},{.totalChirps = (rlUInt32_t) 0,.numAdcSamples = (rlUInt16_t) 0,.numChirpsInDataPacket = (rlUInt8_t) 1,.reserved = (rlUInt8_t) 0,}}}},.frameType = BSP_AR12XX_FRAME_TYPE_NORMAL,.calibEnArgs = {.calibEnMask= (rlUInt32_t) 0x1ff0,.reserved0= (rlUInt8_t) 0x0,.reserved1= (rlUInt8_t) 0x0,.reserved2= (rlUInt16_t) 0x0,.reserved3= (rlUInt32_t) 0x0}
};/* These two will be filled at run-time using DevIdxMap2 as base, because all parameters except* chirp configurations are same.*/
Bsp_Ar12xxConfigObjgAr12xx_config_slave_DevIdxMap4;
Bsp_Ar12xxConfigObjgAr12xx_config_slave_DevIdxMap8;void Chains_ar22xxSetChirpParams(UInt8 DevIdxMap,UInt32 chirpNum)
{UInt32 i,serson;rlChirpCfg_t *chirpCfg = NULL;char Master[6]={0,0,0, 0,0,0};char Slave1[6]={1,1,2, 2,1,2};char Slave2[6]={0,0,0, 0,0,0};char Slave3[6]={0,0,0, 0,0,0};char idleTime[6]={35,22,6,0,6,7};//umUInt32 startFreq=0;char *mask;UTILS_assert(chirpNum<=CHAINS_RADAR_MAX_NUM_CHIRP_CFG_NEW);DevIdxMap&=0xf;for(serson=0;serson<4;serson++){if(DevIdxMap&0x1){chirpCfg = gChains_cascadeRadarChirpCfgArgsMaster;mask = Master;DevIdxMap^=0x1;}else if(DevIdxMap&0x2){chirpCfg = gChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap2;mask = Slave1;DevIdxMap^=0x2;}else if(DevIdxMap&0x4){chirpCfg = gChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap4;mask = Slave2;DevIdxMap^=0x4;}else if(DevIdxMap&0x8){chirpCfg = gChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap8;mask = Slave3;DevIdxMap^=0x8;}else{Vps_printf("DevIdxMap ends\n");break;}startFreq = 0;for(i=0;i<chirpNum;){chirpCfg[i].chirpStartIdx	= (rlUInt16_t)i;chirpCfg[i].chirpEndIdx= (rlUInt16_t)i;chirpCfg[i].profileId= (rlUInt16_t)0;chirpCfg[i].reserved= (rlUInt16_t)0;chirpCfg[i].freqSlopeVar	= (rlUInt16_t)0;chirpCfg[i].adcStartTimeVar	= (rlUInt16_t)0;chirpCfg[i].startFreqVar	= (rlUInt32_t)CHAINS_AR1243_FREQ_MHZ_CONV(startFreq);chirpCfg[i].idleTimeVar= (rlUInt16_t)CHAINS_AR1243_TIME_US_TO_10NS(idleTime[i%6]);chirpCfg[i].txEnable= (rlUInt16_t)mask[i%6];i++;if(i%6 == 0)startFreq += 6;}}}Int32 Chains_ar12xxGetSampleCascadeConfig(ChainsCommon_Ar12xxConfigOut *pCfgOut)
{Int32 retVal = BSP_SOK;UInt32 i = 0;memset(pCfgOut, 0, sizeof(ChainsCommon_Ar12xxConfigOut));/* 4 Chip Cascade Configuration */pCfgOut->numRadars = 4U;Vps_printf(APP_NAME " AR12xx Initializing FPGA ...\n\r");if (Bsp_boardGetBaseBoardRev() < BSP_BOARD_REV_E){/* On Rev A, only one GPIO to lift the CRESET and power on ALL FPGA */retVal = ChainsCommon_fpgaPowerUp(0);UTILS_assert(BSP_SOK == retVal);}for (i = 0; i < pCfgOut->numRadars; i++){/* Lift the CRESET and power on each FPGA */if (Bsp_boardGetBaseBoardRev() >= BSP_BOARD_REV_E){retVal = ChainsCommon_fpgaPowerUp(i);UTILS_assert(BSP_SOK == retVal);}/* Lift the Logic reset for each FPGA. FPGA will now be ready to accept* CSI Data.*/retVal = ChainsCommon_fpgaStart(i);UTILS_assert(BSP_SOK == retVal);}Vps_printf(APP_NAME " AR12xx Initializing FPGA Done...\n\r");/* Check for certain size limitations. This will show up as compile time* issues.*/COMPILE_TIME_ASSERT(sizeof(gChains_cascadeRadarProfileArgs)/sizeof(rlProfileCfg_t) >CHAINS_CASCADE_RADAR_MAX_PROFILES);for (i = 0; i < pCfgOut->numRadars; i++){/* Defaulting to macro as this not captured in the ar12xxConfig parameter */pCfgOut->radarParams[i].numValidBits = CHAINS_CASCADE_RADAR_ADC_DATA_FORMAT;pCfgOut->radarParams[i].bpmEnabled = 0U;pCfgOut->radarParams[i].numProfiles = sizeof(gChains_cascadeRadarProfileArgs)/sizeof(rlProfileCfg_t);sprintf(pCfgOut->radarParams[i].configName, "%s_%d", CHAINS_CASCADE_RADAR_CONFIG_NAME, i);pCfgOut->radarParams[i].chirpRow = NULL;pCfgOut->radarParams[i].numChirpRow = 0;pCfgOut->radarParams[i].numTxPhaseShifterCfg = 0;}pCfgOut->radarParams[0].txPhaseShifterCfg = gCascade_mimo_master;pCfgOut->radarParams[1].txPhaseShifterCfg = gCascade_mimo_slave2;pCfgOut->radarParams[2].txPhaseShifterCfg = gCascade_mimo_slave4;pCfgOut->radarParams[3].txPhaseShifterCfg = gCascade_mimo_slave8;Chains_ar22xxSetChirpParams(0x0f,CHAINS_CASCADE_CHIRP_END_IDX+1);/* Use DevIdxMap2 config as reference, everything is same except chirp configs */memcpy((void*)&gAr12xx_config_slave_DevIdxMap4, (const void *)&gAr12xx_config_slave_DevIdxMap2, sizeof(gAr12xx_config_slave_DevIdxMap2));gAr12xx_config_slave_DevIdxMap4.chirpCfgArgs = gChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap4;memcpy((void*)&gAr12xx_config_slave_DevIdxMap8, (const void *)&gAr12xx_config_slave_DevIdxMap2, sizeof(gAr12xx_config_slave_DevIdxMap2));gAr12xx_config_slave_DevIdxMap8.chirpCfgArgs = gChains_cascadeRadarChirpCfgArgsSlave_DevIdxMap8;memcpy(&pCfgOut->radarParams[0].ar12xxConfig, &gAr12xx_config_master, sizeof (gAr12xx_config_master));memcpy(&pCfgOut->radarParams[1].ar12xxConfig, &gAr12xx_config_slave_DevIdxMap2, sizeof (gAr12xx_config_slave_DevIdxMap2));memcpy(&pCfgOut->radarParams[2].ar12xxConfig, &gAr12xx_config_slave_DevIdxMap4, sizeof (gAr12xx_config_slave_DevIdxMap4));memcpy(&pCfgOut->radarParams[3].ar12xxConfig, &gAr12xx_config_slave_DevIdxMap8, sizeof (gAr12xx_config_slave_DevIdxMap8));/* Default to normal frame */pCfgOut->frameType = 0U;return retVal;
}

,

Chris Meng:

你好,

请问你使用的12V电源的电流有5A么?

如果你的电源适配器电流满足要求,请问你有仿真器么?可以连上单步看看吗?

,

user6381589:

用自带的适配器, 没有仿真器。经测试只配置3片芯片可正常启动,暂时只用3片芯片吧

,

Chris Meng:

你好,

级联板是没有标配适配器的,请看看你的12V电源电流是多少?

,

user6381589:

你好,

12v,6A 。demo都能正常启动

赞(0)
未经允许不得转载:TI中文支持网 » MMWCAS-DSP-EVM: mmwave studio 与PROCESSOR_SDK_RADAR_03_08_00_00 配置参数问题
分享到: 更多 (0)