1)Is it possible for you to probe the MOSI line and check the actual data the Master is sending?
2)Have you set the the clock rate properly at the Master's end.
In example project the next TD is set as "CY_DMA_DISABLE_TD", this means the TD will be disabled after 10 bytes transfer. Can you check if the SPI master is continuously sending data? In that case you will need to use the TD as Loop.
I haven't set the clock rate at the Masters end. If the Slave has a 2MHZ clock (and the bit rate is 1/2 the input clock frequency) does this mean I need to set the Master's clock to 1MHz? Thanks for pointing out the CY_DMA_DISABLE_TD flag. I have an interrupt when the buffer is full and have been 'disabling' the DMA buffer and then re-enabling it after reading the data. So it has only been working because I have re-enabled the buffer no doubt.Will check the MOSI line, pretty sure it's working, checked the lines much earlier on.
I have checked the MOSI line and data is being sent. If I change the clock rate it changes the hex data being displayed but it is not the data I expect. If I use the PSoC SPIM module and connect it to the slave it works (the data received is what I expect) so it must be something to do with the arduino (uno) master. I just don't understand..I've spent days on this. Thanks for your help.
I can send a single byte to the slave without issue but the problem is sending multiple bytes. I think it an issue with the RX buffer from the example on the slave (psoc)side. If I want to send two floats should the SPI slave buffer be 8 (8bit words)? I have an interrupt for the DMA which triggers when the buffer is full. When the flag is cleared I am calling SPIS_ClearRxBuffer() before the channel is enabled. Is this the right way to clear both the DMA buffer and the SPIS buffer?