This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Need help with nRF52 I2S EasyDMA - RXD Buffer Pointer

Hi,

I'm trying to setup NRF52 with a microphone (ICS-43432) using I2S and easyDMA. I'm new to embedded software development, and would very much appreciate your help and patience.

My plan is to use just one (left) channel for receiving the data from the microphone and transmit it over BLE using the S132 stack.

From the code snippet in the I2S section of the product specification, I gather that the RX data pointer for easyDMA needs to be configured as follows:

NRF_I2S->RXD.PTR = my_rx_buf;

NRF_I2S->RXTXD.MAXCNT = MY_BUF_SIZE;

Three questions:

  1. What should my_rx_buf look like? Does it have to be statically allocated? Does it have to be an ArrayList with a buffer like in the "SPIM with EasyDMA" section? A code snippet for my_rx_buf would be very helpful.

  2. What should be the buffer size if I've configured my code for a sample rate of 25 ks/s (MCKFREQ=3.2 MHz and Ratio=128)?

  3. Is I2S fully functional in PCA10040 (nRF52 kit received from the nRF52 global tour)?

Thank you again for your excellent guidance & help!

Regards, Shashi Austin TX

P.S.: You're may be finishing up the samples for I2S in the nRF52 SDK. Is there a way to get the preview-version of those examples?