DMA_TX_BYTES_PER_BURST is having a value 2u, thus have you tried changing the BUFFER_SIZE to 16
Yes, I did, but still it does not work.
Can you use the destination address pointer as SPIM_BSPIM_sR16_Dp_u0__16BIT_F0_REG instead of SPIM_TXDATA_PTR.
I'm trying to do the same but i can't get the SPI to transfer anything, i checked changing SPI_TXDATA_PTR with SPI_BSPIM_sR16_Dp_u0__16BIT_F0_REG and still nothing (SPI_TX_DATA_PTR is defined as SPI_BSPIM_sR16_Dp_u0__16BIT_F0_REG when configuring the SPI to transfer 16bits words anyway), attached is my test project, i got this working with 8bit words but still can't make it work with 16bit.
What I meant is to use SPIM_BSPIM_sR16_Dp_u0__16BIT_F0_REG as destination register instead of SPI_TXDATA_PTR. Yes, the SPI_TXDATA_PTR is not defined as SPIM_BSPIM_sR16_Dp_u0__16BIT_F0_REG for PSoC3/5LP. However you can use the register SPIM_BSPIM_sR16_Dp_u0__16BIT_F0_REG as the destination register as given in the following snippet.
/* From the memory to the SPIM */
CyDmaTdSetAddress(txTD, LO16((uint32)txBuffer), LO16((uint32) SPIM_BSPIM_sR16_Dp_u0__16BIT_F0_REG));
Please try this.