Hi @Xjh193,
This is you code:
MC33664_MASTER_SPI_HANDLE->TCR = LPSPI_TCR_CPOL(0) | LPSPI_TCR_CPHA(1) | LPSPI_TCR_PCS(0) | LPSPI_TCR_PRESCALE(MC33664_CLK_FRE)
| LPSPI_TCR_CONT(1) | LPSPI_TCR_CONTC(1) | LPSPI_TCR_FRAMESZ(16 - 1) | LPSPI_TCR_TXMSK(1);
MC33664_MASTER_SPI_HANDLE->TDR = tx[0];
MC33664_MASTER_SPI_HANDLE->TDR = tx[1];
MC33664_MASTER_SPI_HANDLE->TCR = LPSPI_TCR_CPOL(0) | LPSPI_TCR_CPHA(1) | LPSPI_TCR_PCS(MC33664_PCS_MAP[id]) | LPSPI_TCR_PRESCALE(MC33664_CLK_FRE)
| LPSPI_TCR_CONT(0) | LPSPI_TCR_CONTC(0) | LPSPI_TCR_FRAMESZ(16 - 1) | LPSPI_TCR_TXMSK(1);
MC33664_MASTER_SPI_HANDLE->TDR = tx[2];
In the first command, you have both CONT can CONTC set.
But only CONT should be set, becasuse it starts a new continuous transfer (CONT = 1) but it does not change an ongoing continuous transfer (CONTC = 0).
Then, you can write all the three 16bit words (please check if there is a place in the FIFO left).
And terminate the continuous transfer with a new command where (CONT = 0, CONTC = 0).
There is actualy no need for CONTC = 1, becasue you don't change any parameters of the continous transfer specified in the first command, you just start it and terminate it.
Regards,
Daniel