SBAA383C January 2020 – January 2024 TLV320ADC3120 , TLV320ADC3140 , TLV320ADC5120 , TLV320ADC5140 , TLV320ADC6120 , TLV320ADC6140
To simplify board routing and TDM bus timing requirements, or to avoid high SDOUT line load capacitance, TLV320ADCx140/PCMx140-Q1 devices offer a daisy-chain mode that routes data output (SDOUT) of one device as input to the GPI1 pin (GPIO1) of another device. Each device internally combines the data into the appropriate slot in the TDM bus and passes it to the next device.
Setting the ASI_DAISY bit field of the ASI_CFG2 Register shown in Table 3-8 configures the devices for daisy chain configuration.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ASI_DAISY | Reserved | ASI_ERR | ASI_ERR_ RCOV |
Reserved | |||
R/W-0h | R-0h | R/W-0h | R/W-0h | R-0h |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
7 | ASI_DAISY | R/W | 0h | ASI daisy-chain connection 0d = All devices are connected in the common ASI bus 1d = All devices are daisy-chained for the ASI bus |
6 | Reserved | R | 0h | Reserved |
5 | ASI_ERR | R/W | 0h | ASI bus error detection 0d = Enable bus error detection 1d = Disable bus error detection |
4 | ASI_ERR_RCOV | R/W | 0h | ASI bus error auto resume 0d = Enable auto resume after bus error recovery 1d = Disable auto resume after bus error recovery and remains powered down until the host configures the device |
3-0 | Reserved | R | 0h | Reserved |
For all the devices that take the SDOUT as input from another device into the GPIO1 pin, the bit filed GPIO1_CFG of the GPIO_CFG0 register must be set to ASI Input for daisy chain (SDIN), as shown in Table 3-9.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
GPIO1_CFG[3:0] | Reserved | GPIO1_DRV[2:0] | |||||
R/W-2h | R-0h | R/W-2h |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
7-4 | GPIO1_CFG[3:0] | R/W | 2h | GPIO1 configuration 0d = GPIO1 is disabled 1d = GPIO1 is configured as a general-purpose output (GPO) 2d = GPIO1 is configured as a device interrupt output (IRQ) 3d = GPIO1 is configured as a secondary ASI output (SDOUT2) 4d = GPIO1 is configured as a PDM clock output (PDMCLK) 5d to 7d = Reserved 8d = GPIO1 is configured as an input to control when MICBIAS turns on or off (MICBIAS_EN) 9d = GPIO1 is configured as a general-purpose input (GPI) 10d = GPIO1 is configured as a master clock input (MCLK) 11d = GPIO1 is configured as an ASI input for daisy-chain (SDIN) 12d = GPIO1 is configured as a PDM data input for channel 1 and channel 2 (PDMDIN1) 13d = GPIO1 is configured as a PDM data input for channel 3 and channel 4 (PDMDIN2) 14d = GPIO1 is configured as a PDM data input for channel 5 and channel 6 (PDMDIN3) 15d = GPIO1 is configured as a PDM data input for channel 7 and channel 8 (PDMDIN4) |
3 | Reserved | R | 0h | Reserved |
2-0 | GPIO1_DRV[2:0] | R/W | 2h | GPIO1 output drive configuration (not used when GPIO1 is configured as SDOUT2) 0d = Hi-Z output 1d = Drive active low and active high 2d = Drive active low and weak high 3d = Drive active low and Hi-Z 4d = Drive weak low and active high 5d = Drive Hi-Z and active high 6d to 7d = Reserved |
For the example of Figure 3-12, the following I2C script configures U1, U2, and U3 for daisy chain, taking input from the next device in the SDOUT through GPIO1 of the chain. Note that channels of each device are mapped to slots 0-3. However, the SDOUT of U1 has slots 0-3 with the U1 channels, slots 4-7 with the U2 channels, slots 8-11 with the U3 channels, and slots 12-15 with the U4 channels. Note that the last device in the daisy chain does not need to be configured for daisy chain mode since it is not taking input on GPIO1 from another device.
w 98 0B 00 # Set U1 Ch1 mapped to slot 0 of SDOUT
w 98 0C 01 # Set U1 Ch2 mapped to slot 1 of SDOUT
w 98 0D 02 # Set U1 Ch3 mapped to slot 2 of SDOUT
w 98 0E 03 # Set U1 Ch4 mapped to slot 3 of SDOUT
w 9A 0B 00 # Set U2 Ch1 mapped to slot 0 of SDOUT
w 9A 0C 01 # Set U2 Ch2 mapped to slot 1 of SDOUT
w 9A 0D 02 # Set U2 Ch3 mapped to slot 2 of SDOUT
w 9A 0E 03 # Set U2 Ch4 mapped to slot 3 of SDOUT
w 9C 0B 00 # Set U3 Ch1 mapped to slot 0 of SDOUT
w 9C 0C 01 # Set U3 Ch2 mapped to slot 1 of SDOUT
w 9C 0D 02 # Set U3 Ch3 mapped to slot 2 of SDOUT
w 9C 0E 03 # Set U3 Ch4 mapped to slot 3 of SDOUT
w 9E 0B 00 # Set U4 Ch1 mapped to slot 0 of SDOUT
w 9E 0C 01 # Set U4 Ch1 mapped to slot 1 of SDOUT
w 9E 0D 02 # Set U4 Ch1 mapped to slot 2 of SDOUT
w 9E 0E 03 # Set U4 Ch1 mapped to slot 3 of SDOUT
w 98 09 80 # Set U1's ASI to daisy chain
w 98 21 B0 # Set U1's GPIO1 input as ASI input for daisy chain
w 9A 09 80 # Set U2's ASI to daisy chain
w 9A 21 B0 # Set U2's GPIO1 input as ASI input for daisy chain
w 9C 09 80 # Set U3's ASI to daisy chain
w 9C 21 B0 # Set U3's GPIO1 input as ASI input for daisy chain