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

nRF52832: conflict when using SD card and I2S simultaneously

Hi,

As part of my project, I need to use the SD card drivers of the nRF5 SDK and the I2S driver. The issue I am having is the following:

If I use pin 31 as the SCK signal of the SD card, the I2S driver will not work. This means that it seems like initialisation proceeds as normal, but I cannot see anything on the oscilloscope. No NRF error code as well indicating any problem. The SD card still works initialises, mounts, reads and writes however.

As soon as I use any other pin (I have tried at least pins 29, 6 and 2) for the SCK signal of the SD card, everything works properly.

This is an issue only because we have produced our own boards, which means we will have to change the design unless we can stick with pin 31 for the SCK signal.

Am I missing something in the documentation where there is a conflict between the two peripherals?

Thanks.

P.S.: Softdevice 5.0.0 was used for the development and nRF5 SDK 14.2.0.

Parents
  • OK, this is now solved.

    I needed only the SDOUT pin from the I2S driver (set to pin 26), so I had set the LRCK, MCK and SDIN pins equal to NRF_DRV_I2S_PIN_NOT_USED (the SCK pin had still to be set, else the driver was not working).

    For some reason, this created interference with several pins, one of them was pin 31, where I could see the I2S clock. Is this a bug of the nRF5 SDK? As soon as I set all the above pins to something else than NRF_DRV_I2S_PIN_NOT_USED, the interference was gone.

Reply
  • OK, this is now solved.

    I needed only the SDOUT pin from the I2S driver (set to pin 26), so I had set the LRCK, MCK and SDIN pins equal to NRF_DRV_I2S_PIN_NOT_USED (the SCK pin had still to be set, else the driver was not working).

    For some reason, this created interference with several pins, one of them was pin 31, where I could see the I2S clock. Is this a bug of the nRF5 SDK? As soon as I set all the above pins to something else than NRF_DRV_I2S_PIN_NOT_USED, the interference was gone.

Children
No Data
Related