Hello. I'm using 4 ADAU7118 (TDM to PCM converters) with a 25-mic array. They are fed by the same BCLK and FS clocks, and use TDM-8. Channel enabling is handled using the ENABLES register, with bits 3:0. I can get any individual microphone working, if and only if most of the other channels (across all 4 ADAUs?!) are disabled. So, if I'm using ADAU A, and want channels 0 and 1 to work, I can enable bit 0 on ADAU A's ENABLES reg, and they work. I can do this for any other mic pair.
Enabling 2 channel bits (4 channels) also works. Problem: Enabling more than 2 or 3 causes wonky results on some or all channels. Example: Enabling channels 0-1 and 2-3 on ADAU A works. If I also enable channels 4-5, or any channels on a different ADAU, some or all of the data becomes 0 or -1. Note that the enable status of the clock lines (Bits 5:4) doesn't trigger this; just channels.
I'm currently using 32-bit slots, with a 12.288Mhz BCLK, and 48kHz one-bclk-wide FS. Of note, this has occurred with both slot size 24, and 32. I've tried different drive settings both on the ADAU7118, and the MCU driving the FS and BCLK lines, with no effect. Using 3.3v IOVDD, and 1.8v DVDD.
Any ideas to troubleshoot? The fact that the ADAU channels are interfering with each other across different devices is very odd! (Although they do share the same power, ground, FS, and BCLK lines). Thank you
Added voltage used.
[edited by: The Alchemist at 3:55 AM (GMT -5) on 29 Jan 2022]