- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Labels:
-
SPI
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Which platform are you using?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
CYW943907EVAL1F
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi PriyaM:
please check the code, can you share the SPI over DMA demo code?? tks;