【简介】
在之前的帖子中我们介绍过S32K3 的SPI master 的配置(【S32K3XX】SPI Master 驱动配置),不过没有对参数进行说明,在前贴的基础上继续介绍参数的的意义,以下是本地的参数配置。

本地如下的测试代码发送两字节的0x55 的数据到SPI总线
/* Init lpspi interface */
Status_Spi = Lpspi_Ip_Init(&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_Instance_0);
if(LPSPI_IP_STATUS_SUCCESS != Status_Spi)
{
PRINTF("Spi init failed %d \r\n",Status_Spi);
}
uint8_t pTxBuffer[2] = {0x55,0x55};
uint8_t pRxBuffer[2] = {0};
Status_Spi = Lpspi_Ip_SyncTransmit(&Lpspi_Ip_DeviceAttributes_fs26_Instance_0,
pTxBuffer,
pRxBuffer,
2,
0XFFFFFF);
if(LPSPI_IP_STATUS_SUCCESS != Status_Spi)
{
PRINTF("Spi send failed %d \r\n",Status_Spi);
}逻辑分析仪器抓取数据如下,通信的速率为5M 和配置的保持一致。

CS 信号到CLK 拉起的时间间隔为1us 和上述配置的一致

最后一个时钟的IDLE 信号和CS 信号的间隔为1us 和配置的也是一致的。

修改CS信号配置为CS_TOGGLE吗,对应的信号配置说明如下:

修改后抓取波形在每一帧的传输过程中CS 都会重新拉低。

同时查看CS2CS 的时间间隔和配置的1us 也是保持一致的。

数据帧长度验证,修改配置帧长度修改为15,并修改代码发送4字节的数据。

运行后发现数据已经按照16bit为一帧的方式发送了。

我要赚赏金
