In the Cascade system of two AWR2243 chips, we use the cascade demo in the folder "C:\ti\mmwave_mcuplus_sdk_04_04_01_02\mmwave_mcuplus_sdk_04_04_01_02\ti\utils\test\cascade\am273x".
The numFrames in the "rlFrameCfg_t" is 10, but we could not receive 10 frames.The following is the running result:
MMWave MSS Configuration done
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=1
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=1
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=1
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=2
CSIRX: MmwCascade_csirxSOF0callback, arg=1, cnt=1
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=2
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=2
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=3
CSIRX: MmwCascade_csirxCombinedEOFcallback, arg=0, cnt=1
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=3
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=3
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=4
CSIRX: MmwCascade_csirxSOF0callback, arg=1, cnt=2
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=4
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=4
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=5
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=5
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=5
CSIRX: MmwCascade_csirxSOF0callback, arg=1, cnt=3
CSIRX: MmwCascade_csirxCombinedEOFcallback, arg=0, cnt=2
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=6
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=6
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=6
CSIRX: MmwCascade_csirxSOF0callback, arg=1, cnt=4
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=7
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=7
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=7
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=8
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=8
CSIRX: MmwCascade_csirxSOF0callback, arg=1, cnt=5
CSIRX: MmwCascade_csirxCombinedEOFcallback, arg=0, cnt=3
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=9
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=9
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=8
CSIRX: MmwCascade_csirxSOF0callback, arg=1, cnt=6
CSIRX: MmwCascade_csirxCommonCallback, arg=0, cnt=10
CSIRX: MmwCascade_csirxSOF0callback, arg=0, cnt=10
CSIRX: MmwCascade_csirxCommonCallback, arg=1, cnt=9
CSIRX: MmwCascade_csirxCombinedEOFcallback, arg=0, cnt=4
CSIRX: MmwCascade_csirxCombinedEOFcallback, arg=1, cnt=1
MMWave MSS Start done
The code is stoping on the following code:
The "gCSIRXState.callbackCount" is shown below:
the syscfg file is shown below:
/**
* These arguments were used when this file was generated. They will be automatically applied on subsequent loads
* via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
* @cliArgs --device "AM273x" --package "ZCE" --part "Default" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM273x.evmAM273x@09.00.00"
* @versions {"tool":"1.17.0+3128"}
*/
/**
* Import the modules used in this configuration.
*/
const cbuff = scripting.addModule("/drivers/cbuff/cbuff", {}, false);
const cbuff1 = cbuff.addInstance();
const crc = scripting.addModule("/drivers/crc/crc", {}, false);
const crc1 = crc.addInstance();
const csirx = scripting.addModule("/drivers/csirx/csirx", {}, false);
const csirx1 = csirx.addInstance();
const csirx2 = csirx.addInstance();
const edma = scripting.addModule("/drivers/edma/edma", {}, false);
const edma1 = edma.addInstance();
const edma2 = edma.addInstance();
const edma3 = edma.addInstance();
const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
const gpio1 = gpio.addInstance();
const gpio2 = gpio.addInstance();
const gpio3 = gpio.addInstance();
const gpio4 = gpio.addInstance();
const mibspi = scripting.addModule("/drivers/mibspi/mibspi", {}, false);
const mibspi1 = mibspi.addInstance();
const mibspi2 = mibspi.addInstance();
const mibspi3 = mibspi.addInstance();
const clock = scripting.addModule("/kernel/dpl/clock");
const debug_log = scripting.addModule("/kernel/dpl/debug_log");
const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
const mpu_armv71 = mpu_armv7.addInstance();
const mpu_armv72 = mpu_armv7.addInstance();
const mpu_armv73 = mpu_armv7.addInstance();
const mpu_armv74 = mpu_armv7.addInstance();
const mpu_armv75 = mpu_armv7.addInstance();
/**
* Write custom configuration values to the imported modules.
*/
cbuff1.$name = "CONFIG_CBUFF0";
crc1.$name = "CONFIG_CRC0";
csirx1.$name = "CONFIG_CSIRX0";
csirx1.instOpenEnable = false;
csirx1.dphy.$name = "CONFIG_CSIRX_DPHY0";
csirx1.dphy.ddrClockInHz = 300000000;
csirx1.complexio.$name = "CONFIG_CSIRX_COMPLEXIO0";
csirx1.complexio.isAllLanesEnterULPM = true;
csirx1.complexio.isAllLanesExitULPM = true;
csirx1.common.$name = "CONFIG_CSIRX_COMMON0";
csirx1.common.burstSize = "CSIRX_BURST_SIZE_8X64";
csirx1.common.combinedEndOfFrameCallback = "MmwCascade_csirxCombinedEOFcallback";
csirx1.common.commonCallback = "MmwCascade_csirxCommonCallback";
csirx1.common.isOcpError = true;
csirx1.common.isFifoOverflow = true;
csirx1.common.isComplexioError = true;
csirx1.common.startOfFrameIntr0Callback = "MmwCascade_csirxSOF0callback";
csirx1.context[0].$name = "CONFIG_CSIRX_CONTEXT0";
csirx1.context[0].userDefinedMapping = "CSIRX_USER_DEFINED_FORMAT_RAW8";
csirx1.context[0].isPayloadChecksumEnable = true;
csirx1.context[0].isEndOfFramePulseEnabled = true;
csirx1.context[0].numLinesForLineBasedPingPongSwitching = 1;
csirx1.context[0].isFrameEndCodeDetect = true;
csirx1.context[0].numLinesForIntr = 0;
csirx1.context[0].isEndOfLinePulseEnabled = true;
csirx1.context[0].isFrameStartCodeDetect = true;
csirx1.context[0].isLineStartCodeDetect = true;
csirx1.context[0].isGenerateIntrEveryNumLinesForIntr = false;
csirx2.$name = "CONFIG_CSIRX1";
csirx2.instance = "CSIRX B";
csirx2.instOpenEnable = false;
csirx2.dphy.$name = "CONFIG_CSIRX_DPHY1";
csirx2.dphy.ddrClockInHz = 300000000;
csirx2.complexio.$name = "CONFIG_CSIRX_COMPLEXIO1";
csirx2.common.$name = "CONFIG_CSIRX_COMMON1";
csirx2.common.burstSize = "CSIRX_BURST_SIZE_8X64";
csirx2.common.isOcpError = true;
csirx2.common.isComplexioError = true;
csirx2.common.isFifoOverflow = true;
csirx2.common.commonCallback = "MmwCascade_csirxCommonCallback";
csirx2.common.startOfFrameIntr0Callback = "MmwCascade_csirxSOF0callback";
csirx2.common.combinedEndOfFrameCallback = "MmwCascade_csirxCombinedEOFcallback";
csirx2.context[0].$name = "CONFIG_CSIRX_CONTEXT1";
csirx2.context[0].isEndOfFramePulseEnabled = true;
csirx2.context[0].isPayloadChecksumEnable = true;
csirx2.context[0].numLinesForLineBasedPingPongSwitching = 1;
csirx2.context[0].isFrameEndCodeDetect = true;
csirx2.context[0].userDefinedMapping = "CSIRX_USER_DEFINED_FORMAT_RAW8";
csirx2.context[0].isGenerateIntrEveryNumLinesForIntr = false;
csirx2.context[0].isFrameStartCodeDetect = true;
csirx2.context[0].isLineStartCodeDetect = true;
edma3.$name = "CONFIG_EDMA2";
edma3.instance = "EDMA_DSS_A";
edma3.edmaRmDmaCh[0].$name = "CONFIG_EDMA_RM10";
edma3.edmaRmDmaCh[0].resourceType = scripting.forceWrite("ownDmaCh");
edma3.edmaRmDmaCh[0].startIndex = 0;
edma3.edmaRmDmaCh[0].endIndex = 63;
edma3.edmaRmQdmaCh[0].$name = "CONFIG_EDMA_RM11";
edma3.edmaRmQdmaCh[0].startIndex = 0;
edma3.edmaRmQdmaCh[0].endIndex = 0;
edma3.edmaRmTcc[0].$name = "CONFIG_EDMA_RM12";
edma3.edmaRmTcc[0].startIndex = 0;
edma3.edmaRmTcc[0].endIndex = 63;
edma3.edmaRmParam[0].$name = "CONFIG_EDMA_RM13";
edma3.edmaRmParam[0].startIndex = 0;
edma3.edmaRmParam[0].endIndex = 127;
edma3.edmaRmReservedDmaCh[0].$name = "CONFIG_EDMA_RM14";
edma3.edmaRmReservedDmaCh[0].startIndex = 0;
edma3.edmaRmReservedDmaCh[0].endIndex = 0;
gpio1.instance = "RCSS_GPIO";
gpio1.pinDir = "OUTPUT";
gpio1.$name = "NRESET_FE1";
gpio1.RCSS_GPIO.$assign = "RCSS_GPIO0";
gpio1.RCSS_GPIO.gpioPin.$assign = "PAD_DW";
gpio2.instance = "RCSS_GPIO";
gpio2.$name = "RCSS_MIBSPIA_HOST_IRQ";
gpio2.RCSS_GPIO.$assign = "RCSS_GPIO0";
gpio2.RCSS_GPIO.gpioPin.$assign = "PAD_CS";
gpio3.$name = "NRESET_FE2";
gpio3.pinDir = "OUTPUT";
gpio3.instance = "RCSS_GPIO";
gpio3.RCSS_GPIO.$assign = "RCSS_GPIO0";
gpio3.RCSS_GPIO.gpioPin.$assign = "PAD_DX";
gpio4.$name = "RCSS_MIBSPIB_HOST_IRQ";
gpio4.instance = "RCSS_GPIO";
gpio4.RCSS_GPIO.$assign = "RCSS_GPIO0";
gpio4.RCSS_GPIO.gpioPin.$assign = "PAD_CX";
mibspi1.$name = "CONFIG_MIBSPI0";
mibspi1.bitRate = 1000000;
mibspi1.t2cDelay = 0x8;
mibspi1.c2tDelay = 0x8;
mibspi1.wDelay = 0x10;
mibspi1.frameFormat = "POL0_PHA1";
mibspi1.instance = "RCSS_MIBSPIA";
mibspi1.mibspiChannel[0].$name = "CONFIG_MIBSPI_CH0";
mibspi1.RCSS_MIBSPI.$assign = "RCSS_MIBSPIA";
mibspi1.RCSS_MIBSPI.CLK.$assign = "PAD_CQ";
mibspi1.RCSS_MIBSPI.MISO.$assign = "PAD_CP";
mibspi1.RCSS_MIBSPI.MOSI.$assign = "PAD_CO";
mibspi2.$name = "CONFIG_MIBSPI1";
mibspi2.instance = "RCSS_MIBSPIB";
mibspi2.bitRate = 1000000;
mibspi2.t2cDelay = 0x8;
mibspi2.c2tDelay = 0x8;
mibspi2.wDelay = 0x10;
mibspi2.frameFormat = "POL0_PHA1";
mibspi2.mibspiChannel[0].$name = "CONFIG_MIBSPI_CH1";
mibspi2.mibspiChannel[0].RCSS_CSn.$assign = "PAD_CW";
mibspi2.RCSS_MIBSPI.$assign = "RCSS_MIBSPIB";
mibspi2.RCSS_MIBSPI.CLK.$assign = "PAD_CV";
mibspi2.RCSS_MIBSPI.MISO.$assign = "PAD_CU";
mibspi2.RCSS_MIBSPI.MOSI.$assign = "PAD_CT";
edma1.$name = "CONFIG_EDMA0";
mibspi1.edmaConfig = edma1;
mibspi2.edmaConfig = edma1;
edma1.edmaRmDmaCh[0].$name = "CONFIG_EDMA_RM0";
edma1.edmaRmDmaCh[0].startIndex = 0;
edma1.edmaRmDmaCh[0].endIndex = 32;
edma1.edmaRmQdmaCh[0].$name = "CONFIG_EDMA_RM1";
edma1.edmaRmTcc[0].$name = "CONFIG_EDMA_RM2";
edma1.edmaRmTcc[0].startIndex = 0;
edma1.edmaRmTcc[0].endIndex = 32;
edma1.edmaRmParam[0].$name = "CONFIG_EDMA_RM3";
edma1.edmaRmReservedDmaCh[0].$name = "CONFIG_EDMA_RM4";
edma1.edmaRmReservedDmaCh[0].startIndex = 0;
edma1.edmaRmReservedDmaCh[0].endIndex = 11;
mibspi3.$name = "CONFIG_MIBSPI2";
mibspi3.bitRate = 1000000;
mibspi3.t2cDelay = 0x5;
mibspi3.c2tDelay = 0x5;
mibspi3.dataSize = 8;
mibspi3.frameFormat = "POL0_PHA1";
mibspi3.advanced = true;
mibspi3.csHold = true;
mibspi3.instance = "MSS_MIBSPIB";
mibspi3.MSS_MIBSPI.$assign = "MSS_MIBSPIB";
mibspi3.MSS_MIBSPI.CLK.$assign = "PAD_AJ";
mibspi3.MSS_MIBSPI.MISO.$assign = "PAD_AI";
mibspi3.MSS_MIBSPI.MOSI.$assign = "PAD_AH";
mibspi3.mibspiChannel[0].$name = "CONFIG_MIBSPI_CH2";
mibspi3.mibspiChannel[0].MSS_CSn.$assign = "PAD_AK";
edma2.$name = "CONFIG_EDMA1";
edma2.instance = "EDMA_MSS_A";
mibspi3.edmaConfig = edma2;
edma2.edmaRmDmaCh[0].$name = "CONFIG_EDMA_RM5";
edma2.edmaRmDmaCh[0].resourceType = scripting.forceWrite("ownDmaCh");
edma2.edmaRmQdmaCh[0].$name = "CONFIG_EDMA_RM6";
edma2.edmaRmTcc[0].$name = "CONFIG_EDMA_RM7";
edma2.edmaRmParam[0].$name = "CONFIG_EDMA_RM8";
edma2.edmaRmReservedDmaCh[0].$name = "CONFIG_EDMA_RM9";
mpu_armv71.$name = "CONFIG_MPU_REGION0";
mpu_armv71.attributes = "Device";
mpu_armv72.$name = "CONFIG_MPU_REGION1";
mpu_armv72.size = 14;
mpu_armv73.$name = "CONFIG_MPU_REGION2";
mpu_armv73.baseAddr = 0x80000;
mpu_armv73.size = 14;
mpu_armv74.$name = "CONFIG_MPU_REGION3";
mpu_armv74.baseAddr = 0x10200000;
mpu_armv74.size = 20;
mpu_armv75.$name = "CONFIG_MPU_REGION4";
mpu_armv75.baseAddr = 0x102E0000;
mpu_armv75.size = 16;
mpu_armv75.attributes = "Cached+Sharable";
/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
mibspi1.mibspiChannel[0].RCSS_CSn.$suggestSolution = "PAD_CR";
Does anyone know how to config the cascade parameters of AWR2243?
--------------------------------
Thanks for your reply.