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

I2S clock speed using NRF52832 and SGTL5000

Hello. I'm designing a board with NRF52832 connected to SGTL5000 via I2S. I'm planning to use the driver found in the Nordic Playground here...

https://github.com/NordicPlayground/nRF52-teensy-sgtl5000-audio

The documentation mentions the following about the MCLK clock...

The nRF52832 is set up to run I2S at 4MHz during normal I2S operation (the maximum of nRF52832), while the datasheet for the SGTL5000 specifies 8MHz as the minimum frequency (at least as far as I could tell). When configuring the SGTL5000, the I2S MCLK speed on the nRF52832 is raised to above the nRF52832 defined maximum. This has been tested and works for this demo purpose, but for an actual product you might want to stay within the specified limits of the audio device that you are going to use.

I have used the I2S module on NRF52832 before and have run it at much higher speeds. The supported NRF5 sdk driver provides up to 16Mhz (see NRF_I2S_MCK_32MDIV2 ). I just want to confirm that I will be able to drive SGTL5000 at higher than 4Mhz MCLK speeds. Thanks!

  • You are right, from the I2S timing specification in the PS the MCK frequency(fMCK) is set to max 4000 kHz. You can set the MCKFREQ to a higher value than this by using a divisor that is 6, 5, 4, 3, or 2. But you will then be outside the specification (it's not been tested as part of HW verification). For instance the clock duty cycle specified at min 45% and max 55% only applies to MCK frequency up to the specified 4000 kHz limit.

    Best regards,
    Kenneth

Related