That code that you posted doesn't exist in the IMXRT SDK example for lpspi.

It only has:

Which doesn't set PCS or frame size...
Here is the full example code:
/*
* Copyright 2017 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "fsl_lpspi_cmsis.h"
#include "board.h"
#include "fsl_common.h"
#include "pin_mux.h"
#if ((defined FSL_FEATURE_SOC_INTMUX_COUNT) && (FSL_FEATURE_SOC_INTMUX_COUNT))
#include "fsl_intmux.h"
#endif
/*******************************************************************************
* Definitions
******************************************************************************/
/* Master related */
#define DRIVER_MASTER_SPI Driver_SPI3
#define EXAMPLE_LPSPI_MASTER_IRQN (LPSPI3_IRQn)
#define EXAMPLE_LPSPI_DEALY_COUNT 0xfffffU
#define EXAMPLE_LPSPI_MASTER_DMA_MUX_BASEADDR DMAMUX
#define EXAMPLE_LPSPI_MASTER_DMA_BASEADDR DMA0
/* Select USB1 PLL PFD0 (720 MHz) as lpspi clock source */
#define EXAMPLE_LPSPI_CLOCK_SOURCE_SELECT (1U)
/* Clock divider for master lpspi clock source */
#define EXAMPLE_LPSPI_CLOCK_SOURCE_DIVIDER (7U)
#define EXAMPLE_LPSPI_CLOCK_FREQ (CLOCK_GetFreq(kCLOCK_Usb1PllPfd0Clk) / (EXAMPLE_LPSPI_CLOCK_SOURCE_DIVIDER + 1U))
#define TRANSFER_SIZE 64U /* Transfer dataSize */
#define TRANSFER_BAUDRATE 500000U /* Transfer baudrate - 500k */
/*******************************************************************************
* Prototypes
******************************************************************************/
/* LPSPI user SignalEvent */
void LPSPI_MasterSignalEvent_t(uint32_t event);
/*******************************************************************************
* Variables
******************************************************************************/
AT_NONCACHEABLE_SECTION_INIT(uint8_t masterRxData[TRANSFER_SIZE]) = {0};
AT_NONCACHEABLE_SECTION_INIT(uint8_t masterTxData[TRANSFER_SIZE]) = {0};
volatile bool isTransferCompleted = false;
volatile bool isMasterOnTransmit = false;
volatile bool isMasterOnReceive = false;
/*******************************************************************************
* Code
******************************************************************************/
uint32_t LPSPI3_GetFreq(void)
{
return EXAMPLE_LPSPI_CLOCK_FREQ;
}
void LPSPI_MasterSignalEvent_t(uint32_t event)
{
if (true == isMasterOnReceive)
{
PRINTF("This is LPSPI_MasterSignalEvent_t\r\n");
PRINTF("Master receive data from slave has completed!\r\n");
isMasterOnReceive = false;
}
if (true == isMasterOnTransmit)
{
PRINTF("This is LPSPI_MasterSignalEvent_t\r\n");
PRINTF("Master transmit data to slave has completed!\r\n");
isMasterOnTransmit = false;
}
isTransferCompleted = true;
}
/*!
* @brief Main function
*/
int main(void)
{
BOARD_ConfigMPU();
BOARD_InitPins();
BOARD_BootClockRUN();
BOARD_InitDebugConsole();
/*Set clock source for LPSPI*/
CLOCK_SetMux(kCLOCK_LpspiMux, EXAMPLE_LPSPI_CLOCK_SOURCE_SELECT);
CLOCK_SetDiv(kCLOCK_LpspiDiv, EXAMPLE_LPSPI_CLOCK_SOURCE_DIVIDER);
PRINTF("LPSPI CMSIS driver board to board edma example.\r\n");
PRINTF("This example use one board as master and another as slave.\r\n");
PRINTF("Master and slave uses EDMA way. Slave should start first. \r\n");
PRINTF("Please make sure you make the correct line connection. Basically, the connection is: \r\n");
PRINTF("LPSPI_master -- LPSPI_slave \r\n");
PRINTF(" CLK -- CLK \r\n");
PRINTF(" PCS -- PCS \r\n");
PRINTF(" SOUT -- SIN \r\n");
PRINTF(" SIN -- SOUT \r\n");
PRINTF(" GND -- GND \r\n");
/* DMA Mux init and EDMA init */
edma_config_t edmaConfig = {0};
EDMA_GetDefaultConfig(&edmaConfig);
EDMA_Init(EXAMPLE_LPSPI_MASTER_DMA_BASEADDR, &edmaConfig);
#if (defined(FSL_FEATURE_SOC_DMAMUX_COUNT) && FSL_FEATURE_SOC_DMAMUX_COUNT)
DMAMUX_Init(EXAMPLE_LPSPI_MASTER_DMA_MUX_BASEADDR);
#endif
uint32_t errorCount;
uint32_t loopCount = 1U;
uint32_t i;
/*LPSPI master init*/
DRIVER_MASTER_SPI.Initialize(LPSPI_MasterSignalEvent_t);
DRIVER_MASTER_SPI.PowerControl(ARM_POWER_FULL);
DRIVER_MASTER_SPI.Control(ARM_SPI_MODE_MASTER, TRANSFER_BAUDRATE);
while (1)
{
/* Set up the transfer data */
for (i = 0U; i < TRANSFER_SIZE; i++)
{
masterTxData[i] = (i + loopCount) % 256U;
masterRxData[i] = 0U;
}
/* Print out transmit buffer */
PRINTF("\r\n Master transmit:\r\n");
for (i = 0; i < TRANSFER_SIZE; i++)
{
/* Print 16 numbers in a line */
if ((i & 0x0FU) == 0U)
{
PRINTF("\r\n");
}
PRINTF(" %02X", masterTxData[i]);
}
PRINTF("\r\n");
isTransferCompleted = false;
isMasterOnTransmit = true;
/* Start master transfer, send data to slave */
DRIVER_MASTER_SPI.Send(masterTxData, TRANSFER_SIZE);
/* Wait until transfer completed */
while (!isTransferCompleted)
{
}
/* Delay to wait slave is ready */
for (i = 0U; i < EXAMPLE_LPSPI_DEALY_COUNT; i++)
{
__NOP();
}
isTransferCompleted = false;
isMasterOnReceive = true;
/* Start master transfer, receive data from slave */
DRIVER_MASTER_SPI.Receive(masterRxData, TRANSFER_SIZE);
/* Wait until transfer completed */
while (!isTransferCompleted)
{
}
errorCount = 0;
for (i = 0; i < TRANSFER_SIZE; i++)
{
if (masterTxData[i] != masterRxData[i])
{
errorCount++;
}
}
if (errorCount == 0)
{
PRINTF(" \r\nLPSPI transfer all data matched! \r\n");
/* Print out receive buffer */
PRINTF("\r\n Master received:\r\n");
for (i = 0; i < TRANSFER_SIZE; i++)
{
/* Print 16 numbers in a line */
if ((i & 0x0FU) == 0U)
{
PRINTF("\r\n");
}
PRINTF(" %02X", masterRxData[i]);
}
PRINTF("\r\n");
}
else
{
PRINTF(" \r\nError occured in LPSPI transfer ! \r\n");
}
/* Wait for input any key */
PRINTF("\r\n Input any char to run again\r\n");
GETCHAR();
/* Increase loop count to change transmit buffer */
loopCount++;
}
}