Other Parts Discussed in Thread: TDA4VM, TDA4VL, TDA4VH
Tool/software:
I am trying to test MCSPI on TDA4AEN(TDA4 MID), but it always output 0x0208 on SPI bus, even I send diferent data, like 0x5a5a, or 0x3333 etc. but same code it works on TDA4 AL(Low) and TDA4 AH(High)
any difference between mid and High/low?
static uint8_t Us_Platform_Spi_Init(void)
{
uint8_t spiInitStatus = ME_NOT_OK;
uint8_t spiInitRetryCount = US_PLATFORM_MAX_RETRY_COUNT_SPI;
SPI_HWAttrs spi_cfg =
{
.baseAddr = CSL_MCSPI0_CFG_BASE,
.intNum = CSLR_MAIN2MCU_LVL_INTRTR0_IN_MCSPI0_INTR_SPI_0,
.pinMode = (uint32_t)SPI_PINMODE_4_PIN,
.chNum = MCSPI_CHANNEL_0,
.chMode = MCSPI_SINGLE_CH,
.enableIntr = (bool)ME_FALSE,
.inputClkFreq = 48000000U,
.initDelay = MCSPI_INITDLY_0,
.rxTrigLvl = MCSPI_RX_TX_FIFO_SIZE,
.txTrigLvl = MCSPI_RX_TX_FIFO_SIZE,
.chnCfg =
{
[0] =
{
.csPolarity = MCSPI_CS_POL_LOW,
.dataLineCommMode = MCSPI_DATA_LINE_COMM_MODE_7,
.tcs = MCSPI_CH0CONF_TCS0_ZEROCYCLEDLY,
.trMode = MCSPI_TX_RX_MODE,
},
},
.rxDmaEventNumber = CSL_PDMA_CH_MAIN_MCSPI0_CH0_RX,
.txDmaEventNumber = CSL_PDMA_CH_MAIN_MCSPI0_CH0_TX,
};
spi_cfg.edmaHandle = (void *)MCSPIApp_udmaInit(&spi_cfg);
spi_cfg.dmaMode = (bool)TRUE;
SPI_device_instance = 0;
/*Perform the spi initialization and retry if fails*/
do{
SPI_init();
if ((SPI_socSetInitCfg(SPI_MCSPI_DOMAIN_MAIN, SPI_device_instance, &spi_cfg)) == 0)
{
if ((spi_handle = SPI_open(SPI_MCSPI_DOMAIN_MAIN, SPI_device_instance, ¶ms)) != NULL)
{
spiInitStatus = ME_OK;
US_Diagnostic_ClrECUFlag(DIAG_FLAG_ECU_SPI_INITIAL_ERR);
break; /*Exit the loop as spi initialization is sucessfull*/
}
else
{
;/* No Action */
}
}
else
{
;/* No Action */
}
US_Diagnostic_SetECUFlag(DIAG_FLAG_ECU_SPI_INITIAL_ERR);
spiInitRetryCount--;
}while(spiInitRetryCount != ZERO);
memset((void*)SPITX,0x33,64*4*2);
while(1)
{
if((chtest &1) == 1)
{
US_DSI3Drv_triggerDmaSpiTxRx(0,(uint8_t *)SPITX[0],(uint8_t *)SPITX[0],64);
}
if((chtest &4) == 4)
{
US_Sleep(2);
}
if((chtest &2) == 2)
{
US_DSI3Drv_triggerDmaSpiTxRx(0,(uint8_t *)SPITX[1],(uint8_t *)SPITX[1],64);
}
US_Sleep(2);
}
return(spiInitStatus);
}