Hi Team,
The customer communicates using the SPIB of the AWR1642. Is there any way to make the program receive the transmitted data without scanning? Customer sets the callback function but can't always enter it.
The specific code is as follows:
void driver_spi_init(void)
{
SPI_Params spiParams;
DMA_Params dmaParams;
int32_t retVal;
int32_t errCode;
Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PIND13_PADAD, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);/* SPIA_MOSI */
Pinmux_Set_FuncSel(SOC_XWR16XX_PIND13_PADAD, SOC_XWR16XX_PIND13_PADAD_SPIA_MOSI);
Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINE14_PADAE, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);/* SPIA_MISO */
Pinmux_Set_FuncSel(SOC_XWR16XX_PINE14_PADAE, SOC_XWR16XX_PINE14_PADAE_SPIA_MISO);
Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINE13_PADAF, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);/* SPIA_CLK */
Pinmux_Set_FuncSel(SOC_XWR16XX_PINE13_PADAF, SOC_XWR16XX_PINE13_PADAF_SPIA_CLK);
Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINC13_PADAG, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);/* SPIA_CS */
Pinmux_Set_FuncSel(SOC_XWR16XX_PINC13_PADAG, SOC_XWR16XX_PINC13_PADAG_SPIA_CSN);
Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINP13_PADAA, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);/* SPI_HOST_INTR - not used, reference code */
Pinmux_Set_FuncSel(SOC_XWR16XX_PINP13_PADAA, SOC_XWR16XX_PINP13_PADAA_SPI_HOST_INTR);
/* Enable output control for SPIB */
if(SOC_SPIOutputCtrl(gMmwMssMCB.socHandle, 1U, 1U, &errCode) < 0)
{
/* Debug Message: */
System_printf ("Debug: SOC_SPIOutputCtrl failed with Error [%d]\n", errCode);
}
System_printf ("Debug: MibSPI Driver Test Application begin \n");
/* Init SYSDMA params */
DMA_Params_init(&dmaParams);
/* Open DMA driver instance 0 for SPI test */
gMmwMssMCB.gDmaHandle = DMA_open(0, &dmaParams, &retVal);
if( gMmwMssMCB.gDmaHandle == NULL)
{
System_printf("Open DMA driver failed with error=%d\n", retVal);
}
SPI_init();
/* Setup the default spi Parameters */
SPI_Params_init(&spiParams);
spiParams.mode = SPI_MASTER;
spiParams.u.masterParams.bitRate = 40000000;
spiParams.u.masterParams.numSlaves = 1;
spiParams.u.masterParams.slaveProf[0].chipSelect = 0;
spiParams.u.masterParams.slaveProf[0].ramBufLen = MIBSPI_RAM_MAX_ELEM;
spiParams.u.masterParams.slaveProf[0].dmaCfg.txDmaChanNum =1U;
spiParams.u.masterParams.slaveProf[0].dmaCfg.rxDmaChanNum =0U;
/* Enable DMA and set DMA channels */
spiParams.dmaEnable = 1;
spiParams.dataSize = 16;
spiParams.dmaHandle = gMmwMssMCB.gDmaHandle;
// spiParams.frameFormat = SPI_POL0_PHA0;
// spiParams.shiftFormat = SPI_MSB_FIRST;
spiParams.frameFormat = SPI_POL1_PHA0;
spiParams.shiftFormat = SPI_LSB_FIRST;
spiParams.pinMode = SPI_PINMODE_4PIN_CS;
spiParams.eccEnable = 1;
gMmwMssMCB.gSpiHandle = SPI_open(0, &spiParams);
if (gMmwMssMCB.gSpiHandle == NULL)
{
System_printf("Error: Unable to open the SPI Instance\n");
return;
}
System_printf("SPI open successful..\n");
}
The above is the way to receive using the scan method. May I know what is the configuration of the SPI callback function?
Thanks.