Other Parts Discussed in Thread: C2000WARE
Hi,
I am using SPI-C instance of SPI and it works fine when not in FIFO mode. Data size is 8-bits. No interrupts, no DMA.
When configured to FIFO mode (I did four settings: SPIFFENA=1, TXFIFO=1, RXFIFORESET=1, SPIFFTX.SPIRST=1), I write 8 bytes to SPITXBUF register, one-by-one without any delay in code. (Should I add delay here?)
At the end, I see RSFFST value is set to 8. This tells me that I have received 8 bytes back. I believe, to read the buffer I should read SPIRXBUF 8 times? When I do that, I get the same data for all 8 bytes. I know this is not correct because I can see the correct data when not in FIFO mode. I also see correct data when in FIFO mode but data is send and written one byte at a time. But when 8 bytes are written together, I see same value read for all 8 bytes. I see that SPIFFRX.RXFFST value keeps decrementing as I read the values and it goes to zero in the end, but the values read are the same.
Any help is appreciated.
Also, I could never see TXFFST set to any value other than zero in the Registers window. This could be because the data is sent on the pin as soon as it is written to SPITXBUF register. Please let me know if this understanding is correct and I will not be able to see any other value at TXFFST in the registers window.
Thank you.

