This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADC5140EVM-PDK: TDM over USB only shows 2 channels instead of 4

Part Number: ADC5140EVM-PDK
Other Parts Discussed in Thread: TLV320ADC5140

Tool/software:

Dear all,

I am in the process of trying to configure the TLV320ADC5140 on the ADC5140EVM-PDK.

I want to sample 4 channels @ 192kHz with 16-bit word length (4 analog MEMS microphones).

In the windows driver, I choose "8 channel, 16 bit, 192000 Hz".

When I press read in the Clock Monitor, the BCLK/FSYNC ratio is automatically configured to 64 which should allow for 4 channels of 16 bit word length.

I am using Reaper (DAW) to analyze the input from each channel and I can only see output on 2 channels which is mic 1 and 3.

Furthermore, I've tried to debug the signals BCLK, FSYNC and SDOUT where I've marked each distinct audio stream (red, blue, green, yellow):


I've checked that these are in fact the audio streams for channel 1,2,3 and 4 by disabling them individually and seeing that the audio stream disappears for that slot.

The blue and yellow audio stream (mic 2 and 4 mapped to slot 1 and 3) gets ignored completely and I can only see the audio from mic 1 and 3 which are mapped to slot 0 and 2.

Furthermore, the FSYNC signal is described as being a pulse, but here it has a 50% duty cycle which is a discrepancy according to the TDM format described in this video by TI: https://www.ti.com/video/6311104210112

I've noticed that the 50% duty cycle for FSYNC only appears at frequencies above 48kHz for some reason and as a pulse @ 48 kHz and below

which is also where FSYNC/BCLK ratio changes from 256 (<= 48kHz) to 64 (> 48kHz).

I have tried to do the same setup (4 channels @ 48 kHz, 16 bit word) where FSYNC/BCLK ratio is 256 and I can get 4 distinct audio streams to appear in my DAW but only if I map the channels 1,2,3 and 4 to slot 0,2,4,6.

The only way so far that I've succeeded with a somewhat logical result is 4 channels @ 48 kHz, 32 bit word mapping channels 1,2,3 and 4 to slot 0,1,2,3 which appears as 4 audio streams in my DAW as expected .

There seems to be some kind of correlation between choosing a 16 bit word length and the resulting audio stream somehow "skipping" each 2nd slot and I am not able to choose 32 bit word for 4 channels @ 192 kHz which I imagine would fix my problem.

I've been trying to fix this issue for a couple of days now and I can't seem to figure out if I'm missing something or if I'm encountering some kind of hardware limitation?

I've included my ADC register config here: ADC_REGISTERS.csv

Thanks in advance

Best regards

Jannich

  • Hi Jannich,

    Are you able to configure the waveform type for FSYNC, and if so, can you change this to a pulse? An example would be Figure 23 of the datasheet. The image provided matches a subframe format for traditional I2S signal (L/R) data which is only for 2 channels. 

    Our ADC will latch data output on the rising or falling edge of FSYNC with each of the subsequent channels following until the next pulse. This is why i suspect your only receiving half the record channels

  • Hi Daveon

    I am currently unable to manipulate the FSYNC directly as I am using the USB bridge and not an external ASI. As described earlier, the FSYNC signal becomes a 1-bit pulse when the format is below or exactly 48 kHz (See below)

    But when I increase the sample rate to above 48 kHz, the FSYNC signal acts as an I2S format.

    Below is an image where I increased the sample rate to 192 kHz

    I don't understand this behaviour and would like to know if the USB bridge has some kind of hardware limitation or if there's something I'm missing.

    Regards

    Jannich

  • Hi Jannich,

    This looks like a limitation of the clock source. But we can still troubleshoot. From a validation perspective, I would recommend an external waveform generator to record at 192k.

    However, When driving clocks from USB can you double check the TI USB Control panel? Icon should be present in bottom right hand corner for Windows. The sample rate the Audio device is receiving will be verified here as well

    Can you also change the clocks from 8 channels to 4 channels on usb device.

    The 'skipping' during recording is due to a ASI clock format misalignment. TDM mode is very flexible so its allocating audio in the slots it can based on the FSYNC architecture.

  • Hi Daveon

    I have looked at the "Texas Instruments USB Audio Device Control Panel"to confirm the sample rate and it says 192 kHz as expected

    I do not see the option to change from 8 channels to 4 channels

    My primary purpose for this test is to confirm that the TLV320ADC5140 can in fact support sampling of 4 channels @ 192 kHz, 32 bit word length. Will I need an external ASI to confirm this or is there a work around to test it with the USB bridge?

    Regards

    Jannich

  • Hi Jannich,

    This should be workable via USB, let me do some bench testing and get back to you by the end of the week.

  • Hi Jannich, 

    I've replicated the issue you're seeing with the ADC5140EVM. This is a limitation of the AC-MB and XMOS processor rather than a device limitation. The XMOS is limited to only operating at 32bit word length despite changing the bit depth in windows/PPC3 to 16bit. So, when you're operating at 4cH, 48kHz, 16bit the data you're actually seeing is slots 1,3,5, and 7 of an 8-channel, 16bit data line. 

    Another limitation is the max BCLK output of 12.228MHz. In order to support 4ch @ 192kHz, 32bit word length, the AC-MB would have to supply a 24.576MHz BCLK.

    In summary you are limited to recording with a BCLK<12.228MHz and 32-bit word length via USB. Providing external clocks to the AC-MB is the optimal route for recording at 192k

    Regards,

  • Hi Douglas

    Thanks for taking the time to test my issue and providing an explanation as to why I was encountering that issue.

    I will try using an external ASI for further testing.

    Best regards

    Jannich