Thread 中讨论的其他器件:TDA4VM、 TDA4VL、TDA4VH
工具/软件:
我正在尝试在 TDA4AEN (TDA4 MID)上测试 MCSPI、但它始终在 SPI 总线上输出0x0208、即使发送不同的数据、例如0x5a5a 或0x3333等。但它在 TDA4 AL (Low)和 TDA4 AH (High)上运行相同的代码
中高/低之间是否有任何差异?
静态 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_INTR0_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;
/*执行 SPI 初始化并在失败时重试*/
执行
spi_init ();
if ((spi_socSetInitCfg (SPI_MCSPI_MCSPI_DOMAIN_MAIN、spi_device_instance、&spi_cfg))= 0)
{
if ((SPI_Handle = SPI_open (SPI_MCSPI_MCSPI_DOMAIN_MAIN、SPI_DEVICE_Instance、¶ms))!= NULL)
{
SpiInitStatus = ME_OK;
US_ECUFlag Diagnostic_Clr (DIAG_FLAG_ECU_SPI_Initial_ERR);
break;/*当 SPI 初始化成功时退出循环*/
}
暴露
{
;/*无操作*/
}
}
暴露
{
;/*无操作*/
}
US_ECUFlag Diagnostic_Set (DIAG_FLAG_ECU_SPI_Initial_ERR);
SpiInitRetryCount--;
} while (spiInitRetryCount!=零);
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);
}
退货(spiInitStatus);
}