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.

TAC5212: Daisy chain

Part Number: TAC5212

Tool/software:

I would like to use the daisy chain feature of the TAC5212 to connect four devices together such that I can access the ADCs and DACs of all of the devices over one I2S bus with 4 signals - BCLK, FSYNC, DIN, and DOUT.  In the datasheet there is reference to a "Multiple TAC5x1x Devices With a Shared TDM" document but it does not seem to have been published yet.  Please advise on how the devices should be interconnected to enable this.  Thanks!

  • Hi Timothy,

    Apologies for the delay. Since the TAx5xxx device isn't fully released, there are supporting documents still in progress.

    The registers are different but the functionality/concept is the same for our PCM6xx0-Q1 devices. You can use this document as a reference: 

    Multiple PCm6xx0 Devices With Shared TDM and I2C Bus

    I have also validated daisy chaining of the DAC signal chain for 2 TAC5212 EVM's. The setup below:

    I was using the Audio Precision x555 for digital audio transmission listed as AP1.

    Visual of slot assignment:

    Script for each each EVM:

    EVM1 Playback script:

    w a0 00 00

    w a0 01 01

    w a0 02 09

    w a0 28 26  # Set data on slot 6

    w a0 29 27  # Set data on slot 7

    w a0 76 0c

    w a0 78 40

    EVM2 Playback script:

    w a0 00 00

    w a0 01 01

    w a0 02 09

    w a0 0a d2  # Set GPIO1 as Daisy Output

    w a0 18 48  # Disable SASI, PASI daisy chain enable on GPIO1

    w a0 19 08  # set Daisy direction - DAISY DIN

    w a0 28 22  # Ch1 Slot 2

    w a0 29 23  # Ch2 Slot 3

    w a0 76 0c

    w a0 78 40

  • Thank you, that is helpful!  Looks like there are two methods for connecting multiple TAx5xxx codecs --- the daisy chain method you describe and the parallel/Hi-Z method where the DOUT pins are connected in parallel and each device drives its DOUT only during its time slot.  I've tested this second method with four TAC5212s.  Setup, CircuitPython code, and test data can be found here.