Noise when using I2C peripherals

I’m working on a project that involves various I2C peripherals as well as real-time audio processing. Whenever any I2C devices are communicating, I get a very noticeable high-pitched “whirring” noise in the audio. I hear the effects of my processing on the whirring, leading me to believe it’s at least partially present in the audio input. The noise is rhythmic at the frequency of my main processing loop (not the audio callback), furthering my guess that it’s something to do with the actual I2C messaging.

I’ve simplified my circuit down to just a mems mic breakout board and one I2C peripheral, nothing else connected to the daisy, and I still get this noise.

I’m powering my daisy externally with 5V, which is shared with the I2C peripherals. I’ve tried isolating the power supply for the peripherals from the daisy’s supply, but I can’t figure out a way to do this without putting their grounds at different potentials, which breaks the I2C communication.

I’ve added a 1000uF capacitor over Vin, which eliminates some steady-state noise but does not affect the whirring.
Has anyone else encountered similar problems? Any tips for reducing the noise?

I’m sorry for the delay in response, thank you so much for the wait.
What is this I2C device you’re using that’s resulting in the noise? And I can check with the team if they encountered anything similar.

Have you tried just with this one I2C device? I was wondering if the mems mic could be the culprit too.

Hey, no worries! Thanks for the response.

I ditched the mems mic board, now I’m testing with a line level direct input.
I’ve realized there are two distinct sources of noise from my I2C peripherals:

  1. The noise I mentioned in my original post, which is most audible with this VL53L0X v2 distance sensor. I hear a loud “click” or “beep” every time the sensor is polled for a new distance value. When polling every 10ms, this becomes a constant whine.

  2. A different, steady-state noise that I hear when using this Adafruit LED bargraph backpack kit. It’s only audible when at least one LED is lit, and it gets a bit louder when more LEDs are lit. I can make this noise a lot quieter by adding a 1000uF capacitor between Vin and GND, and a small resistor in line with Vin, making a simple lowpass filter. However, it’s still audible as a low-frequency hum that I’d really like to get rid of. If I use a resistor large enough to eliminate the noise, then there’s too much voltage drop across it for the LED graph to get the 5V it needs.

I can still hear both noises if I don’t run the audio callback at all, but they’re louder when I do. My circuit is only audio line input and output, a switch to toggle I2C usage on/off, and the one peripheral I’m testing (either the distance sensor or LED graph).

Would greatly appreciate any tips you could suggest to fix or further debug this issue. Thanks!