PSOC4 BLE i2s only triggers DMA once

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
AmAl_2515116
Level 1
Level 1

Hello -

I am trying to interface an I2S microphone device to my PSOC4 BLE module using the pioneer kit.  I have taken look through the documentation and think I am setting it up correctly, but the DMA interrupt is only triggering once.  I have tested another project that is using an SPI block to fill the DMA and that is working correctly - the DMA is set up similarly in this I2S project, so I am pretty sure that it is set up correctly.

If I set up the DMA source address to something other than the I2S pointer (such as setting the source pointer to the same as the destination pointer, ie the DMA would copy the destination pointer to itself) then the DMA interrupt fires continuously as I would expect.  This leads me to believe that there is some kind of memory access violation that is shutting down the DMA or I2S block.  I have tried all of the pointers in my I2S module (I2S_RX_CH0_F0_PTR, I2S_RX_CH0_D0_PTR, etc) and none of them appear to work.

The I2S microphone is sending data back to the PSOC (a screenshot of my scope is in the attached zip).  I am wondering if someone can give me some advice in how to get this working or on next debugging steps.

Thank you,

Amir

0 Likes
1 Reply
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hello,

Could you please change the DMA configuration "Source and Destination transfer width" to "Byte to Byte" and see if this issue gets resolved?

DMA_Configuration.png

Thanks and Regards,

Sudheesh

0 Likes