Hello everyone,
I'm trying to transfer data over SPI protocol using DMA. I see examples of SPI_SLAVE and SPI_MASTER but they don't use DMA. I was wondering if someone has done this before?
Kind regards,
Hamid.
Solved! Go to Solution.
Unfortunately, the DMA for 43907 is not really exposed so that applications on top can use that. That's why you can't see it in SPI_SLAVE or SPI_MASTER implementation amongst which 43907 only supports master mode. Please check this blog post SPI in CYW43907 if you are facing any difficulties in SPI implementation.
Which platform are you using?
CYW943907EVAL1F
Unfortunately, the DMA for 43907 is not really exposed so that applications on top can use that. That's why you can't see it in SPI_SLAVE or SPI_MASTER implementation amongst which 43907 only supports master mode. Please check this blog post SPI in CYW43907 if you are facing any difficulties in SPI implementation.
I tested SPI using that example. When you increase the tx buffer size > 4, in inter-byte time delay increases and byte order gets messed up…this issue was also reported here:
https://community.cypress.com/message/142610#142610
I want to transmit larger packets of data without inter-byte delay, so how do I overcome this issue?
I can try include DMA in the SPI_MODE, but this doesn’t seem to fix the problem:
#define SPI_MODE ( SPI_CLOCK_RISING_EDGE | SPI_CLOCK_IDLE_LOW | SPI_MSB_FIRST | SPI_USE_DMA )
How do I correctly use the DMA?
Unfortunately, you can't really use SPI over DMA; it's not exposed on the surface in WICED. You have to use the GSIO driver present in WICED.
Please share the changes that you have made to send larger packets of data.
I tried to increase the tx buffer size to 5 and it appears to receive the data in orrect sequence.
hi PriyaM:
please check the code, can you share the SPI over DMA demo code?? tks;