ZHCAB57C January 2020 – January 2024 TLV320ADC3120 , TLV320ADC3140 , TLV320ADC5120 , TLV320ADC5140 , TLV320ADC6120 , TLV320ADC6140
在共享 TDM 總線配置中,多個 TLV320ADCx140/PCMx140-Q1 器件的 ASI 總線連接在一起,形成一個共享總線,如圖 3-2 所示。
圖 3-2 TLV320ADCx140/PCMx140-Q1 共享 TDM 連接圖為了避免多個器件在同一時隙中傳輸輸出數據,TLV320ADCx140/PCMx140-Q1 支持使用以下寄存器將器件的輸入通道映射到可編程時隙:
這樣就可以將任何通道以任何順序映射到任何時隙。此外,TLV320ADCx140/PCMx140-Q1 還支持輔助 SDOUT 輸出 (SDOUT2),這通過 GPO_CFG0 寄存器(位字段 GPIO1_CFG 值為 0x03)進行配置,如圖 3-14 所示。這樣一個或多個器件便可通過兩個引腳輸出時隙:主要輸出 (SDOUT) 和輔助輸出 (SDOUT2)。ASI_CHx 寄存器位字段 CHx_OUTPUT 將時隙映射到主要輸出 (SDOUT) 或輔助輸出 (SDOUT2)。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 | CH1_OUTPUT | CH1_SLOT[5:0] | |||||
| R-0h | R/W-0h | R/W-0h | |||||
| 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|
| 7 | 保留 | R | 0h | 保留 |
| 6 | CH1_OUTPUT | R/W | 0h | 通道 1 輸出線路 0d = 通道 1 輸出在 ASI 主要輸出引腳 (SDOUT) 上 1d = 通道 1 輸出在 ASI 輔助輸出引腳(GPIO1 或 GPOx)上 |
| 5-0 | CH1_SLOT[5:0] | R/W | 0h | 通道 1 時隙分配 0d = TDM 是時隙 0 或 I2S,LJ 是左側時隙 0 1d = TDM 是時隙 1 或 I2S,LJ 是左側時隙 1 2d 至 30d = 分配的時隙視配置而定 31d = TDM 是時隙 31 或 I2S,LJ 是左側時隙 31 32d = TDM 是時隙 32 或 I2S,LJ 是右側時隙 0 33d = TDM 是時隙 33 或 I2S,LJ 是右側時隙 1 34d 至 62d = 分配的時隙視配置而定 63d = TDM 是時隙 63 或 I2S,LJ 是右側時隙 31 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 | CH2_OUTPUT | CH2_SLOT[5:0] | |||||
| R-0h | R/W-0h | R/W-1h | |||||
| 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|
| 7 | 保留 | R | 0h | 保留 |
| 6 | CH2_OUTPUT | R/W | 0h | 通道 2 輸出線路 0d = 通道 2 輸出在 ASI 主要輸出引腳 (SDOUT) 上 1d = 通道 2 輸出在 ASI 輔助輸出引腳(GPIO1 或 GPOx)上 |
| 5-0 | CH2_SLOT[5:0] | R/W | 1h | 通道 2 時隙分配 0d = TDM 是時隙 0 或 I2S,LJ 是左側時隙 0 1d = TDM 是時隙 1 或 I2S,LJ 是左側時隙 1 2d 至 30d = 分配的時隙視配置而定 31d = TDM 是時隙 31 或 I2S,LJ 是左側時隙 31 32d = TDM 是時隙 32 或 I2S,LJ 是右側時隙 0 33d = TDM 是時隙 33 或 I2S,LJ 是右側時隙 1 34d 至 62d = 分配的時隙視配置而定 63d = TDM 是時隙 63 或 I2S,LJ 是右側時隙 31 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 | CH3_OUTPUT | CH3_SLOT[5:0] | |||||
| R-0h | R/W-0h | R/W-2h | |||||
| 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|
| 7 | 保留 | R | 0h | 保留 |
| 6 | CH3_OUTPUT | R/W | 0h | 通道 3 輸出線路 0d = 通道 3 輸出在 ASI 主要輸出引腳 (SDOUT) 上 1d = 通道 3 輸出在 ASI 輔助輸出引腳(GPIO1 或 GPOx)上 |
| 5-0 | CH3_SLOT[5:0] | R/W | 2h | 通道 3 時隙分配 0d = TDM 是時隙 0 或 I2S,LJ 是左側時隙 0 1d = TDM 是時隙 1 或 I2S,LJ 是左側時隙 1 2d 至 30d = 分配的時隙視配置而定 31d = TDM 是時隙 31 或 I2S,LJ 是左側時隙 31 32d = TDM 是時隙 32 或 I2S,LJ 是右側時隙 0 33d = TDM 是時隙 33 或 I2S,LJ 是右側時隙 1 34d 至 62d = 分配的時隙視配置而定 63d = TDM 是時隙 63 或 I2S,LJ 是右側時隙 31 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 保留 | CH4_OUTPUT | CH4_SLOT[5:0] | |||||
| R-0h | R/W-0h | R/W-3h | |||||
| 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|
| 7 | 保留 | R | 0h | 保留 |
| 6 | CH4_OUTPUT | R/W | 0h | 通道 4 輸出線路 0d = 通道 4 輸出在 ASI 主要輸出引腳 (SDOUT) 上 1d = 通道 4 輸出在 ASI 輔助輸出引腳(GPIO1 或 GPOx)上 |
| 5-0 | CH4_SLOT[5:0] | R/W | 3h | 通道 4 時隙分配 0d = TDM 是時隙 0 或 I2S,LJ 是左側時隙 0 1d = TDM 是時隙 1 或 I2S,LJ 是左側時隙 1 2d 至 30d = 分配的時隙視配置而定 31d = TDM 是時隙 31 或 I2S,LJ 是左側時隙 31 32d = TDM 是時隙 32 或 I2S,LJ 是右側時隙 0 33d = TDM 是時隙 33 或 I2S,LJ 是右側時隙 1 34d 至 62d = 分配的時隙視配置而定 63d = TDM 是時隙 63 或 I2S,LJ 是右側時隙 31 |
以圖 3-2 為例,以下 I2C 腳本將 U1-U4 的輸入通道分別配置到 TLV320ADCx140/PCMx140-Q1 的 0-15 時隙中。注意,時隙并未按順序分配給每個器件的輸入通道,以顯示為 TDM 時隙分配通道的靈活性:
w 98 0B 04 # Set U1 Ch1 mapped to slot 4 of SDOUT
w 98 0C 06 # Set U1 Ch2 mapped to slot 6 of SDOUT
w 98 0D 01 # Set U1 Ch3 mapped to slot 1 of SDOUT
w 98 0E 00 # Set U1 Ch4 mapped to slot 0 of SDOUT
w 9A 0B 03 # Set U2 Ch1 mapped to slot 3 of SDOUT
w 9A 0C 05 # Set U2 Ch2 mapped to slot 5 of SDOUT
w 9A 0D 02 # Set U2 Ch3 mapped to slot 2 of SDOUT
w 9A 0E 07 # Set U2 Ch4 mapped to slot 7 of SDOUT
w 9C 0B 08 # Set U3 Ch1 mapped to slot 8 of SDOUT
w 9C 0C 09 # Set U3 Ch2 mapped to slot 9 of SDOUT
w 9C 0D 0A # Set U3 Ch3 mapped to slot 10 of SDOUT
w 9C 0E 0C # Set U3 Ch4 mapped to slot 12 of SDOUT
w 9E 0B 0F # Set U4 Ch1 mapped to slot 15 of SDOUT
w 9E 0C 0D # Set U4 Ch1 mapped to slot 13 of SDOUT
w 9E 0D 0E # Set U4 Ch1 mapped to slot 14 of SDOUT
w 9E 0E 0B # Set U4 Ch1 mapped to slot 11 of SDOUT這種配置要求所有器件將其輸出置于高阻抗模式,以便另一器件可以驅動總線。TLV320ADCx140/PCMx140-Q1 支持通過 ASI_CFG0 寄存器位字段 TX_FILL,在未使用的位時鐘周期內將輸出線路驅動為低電平或置于高阻抗狀態,如圖 3-7 所示。設置 TX_FILL 會將主要輸出線路 (SDOUT) 和輔助輸出線路 (SDOUT2) 置于高阻抗。注意,復位值會將 SDOUT 和 SDOUT2 配置為在未使用的位時鐘周期期間驅動為低電平。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ASI_FORMAT[1:0] | ASI_WLEN[1:0] | FSYNC_POL | BCLK_POL | TX_EDGE | TX_FILL | ||
| R/W-0h | R/W-3h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||
| 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|
| 7-6 | ASI_FORMAT[1:0] | R/W | 0h | ASI 協議格式 0d = TDM 模式 1d = I2S 模式 2d = LJ(左對齊)模式 3d = 保留 |
| 5-4 | ASI_WLEN[1:0] | R/W | 3h | ASI 字長或時隙長度 0d = 16 位 1d = 20 位 2d = 24 位 3d = 32 位 |
| 3 | FSYNC_POL | R/W | 0h | ASI FSYNC 極性 0d = 極性默認符合標準協議 1d = 與標準協議的極性相反 |
| 2 | BCLK_POL | R/W | 0h | ASI BCLK 極性 0d = 極性默認符合標準協議 1d = 與標準協議的極性相反 |
| 1 | TX_EDGE | R/W | 0h | ASI 數據輸出(在主要和輔助數據引腳上)發送邊沿 0d = 邊沿默認符合位 2 (BCLK_POL) 中的協議配置設置 1d = 與默認邊沿設置的下一個邊沿反相(半個周期延遲) |
| 0 | TX_FILL | R/W | 0h | 任何未使用周期的 ASI 數據輸出(在主要和輔助數據引腳上) 0d = 針對未使用周期始終發送 0 1d = 針對未使用周期始終使用高阻態 |
TLV320ADCx140/PCMx140-Q1 還支持通過 ASI_OUT_CH_EN 寄存器對未使用的通道時隙進行三態設置,如圖 3-8 所示。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ASI_OUT_CH1_EN | ASI_OUT_CH2_EN | ASI_OUT_CH3_EN | ASI_OUT_CH4_EN | ASI_OUT_CH5_EN | ASI_OUT_CH6_EN | ASI_OUT_CH7_EN | ASI_OUT_CH8_EN |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|
| 7 | ASI_OUT_CH1_EN | R/W | 0h | ASI 輸出通道 1 使能設置 0d = 通道 1 輸出時隙處于三態條件 1d = 通道 1 輸出時隙已啟用 |
| 6 | ASI_OUT_CH2_EN | R/W | 0h | ASI 輸出通道 2 使能設置 0d = 通道 2 輸出時隙處于三態條件 1d = 通道 2 輸出時隙已啟用 |
| 5 | ASI_OUT_CH3_EN | R/W | 0h | ASI 輸出通道 3 使能設置 0d = 通道 3 輸出時隙處于三態條件 1d = 通道 3 輸出時隙已啟用 |
| 4 | ASI_OUT_CH4_EN | R/W | 0h | ASI 輸出通道 4 使能設置 0d = 通道 4 輸出時隙處于三態條件 1d = 通道 4 輸出時隙已啟用 |
| 3 | ASI_OUT_CH5_EN | R/W | 0h | ASI 輸出通道 5 使能設置 0d = 通道 5 輸出時隙處于三態條件 1d = 通道 5 輸出時隙已啟用 |
| 2 | ASI_OUT_CH6_EN | R/W | 0h | ASI 輸出通道 6 使能設置 0d = 通道 6 輸出時隙處于三態條件 1d = 通道 6 輸出時隙已啟用 |
| 1 | ASI_OUT_CH7_EN | R/W | 0h | ASI 輸出通道 7 使能設置 0d = 通道 7 輸出時隙處于三態條件 1d = 通道 7 輸出時隙已啟用 |
| 0 | ASI_OUT_CH8_EN | R/W | 0h | ASI 輸出通道 8 使能設置 0d = 通道 8 輸出時隙處于三態條件 1d = 通道 8 輸出時隙已啟用 |
為了通過防止引腳懸空來更大限度地降低功耗,TLV320ADCx140/PCMx140-Q1 還支持在 SDOUT 和 SDOUT2 輸出上啟用總線保持器。寄存器 ASI_CFG1 通過 TX_KEEPER 位字段控制輸出線路上的總線保持器,如表 3-7 所示。該寄存器還控制 SDOUT 和 SDOUT2 強烈驅動總線上的最低有效位 (LSB) 的時間長度。這樣可以進行精細控制,確保兩個器件不會同時在同一總線上驅動不同的信號,從而避免總線爭用。例如,可以將 U2 的 LSB 設置為在位時鐘周期的前半部分進行傳輸,而 U3 的 MSB 則在沒有任何偏移的情況下進行驅動。此外,選擇 TX_KEEPER 值 0x2 或 0x3 可確保主機處理器正確鎖存 LSB 來增加系統的魯棒性,因為總線保持器繼續使用最后驅動的值來保持總線。注意,該寄存器還控制最高有效位 (MSB) 延遲的位時鐘數。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TX_LSB | TX_KEEPER[1:0] | TX_OFFSET[4:0] | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 位 | 字段 | 類型 | 復位 | 說明 |
|---|---|---|---|---|
| 7 | TX_LSB | R/W | 0h | 用于 LSB 傳輸的 ASI 數據輸出(在主要和輔助數據引腳上) 0d = 一個完整周期內發送 LSB 1d = 在前半個周期內發送 LSB,在后半個周期內發送高阻態 |
| 6-5 | TX_KEEPER[1:0] | R/W | 0h | ASI 數據輸出(在主要和輔助數據引腳上)總線保持器 0d = 始終禁用總線保持器 1d = 始終啟用總線保持器 2d = 總線保持器僅在 LSB 傳輸期間啟用一個周期 3d = 總線保持器僅在 LSB 傳輸期間啟用 1.5 個周期 |
| 4-0 | TX_OFFSET[4:0] | R/W | 0h | ASI 數據 MSB 時隙 0 偏移(在主要和輔助數據引腳上) 0d = ASI 數據 MSB 位置沒有偏移,并符合標準協議 1d = 一個 BCLK 周期相對于標準協議的 ASI 數據 MSB 位置(TDM 模式是時隙 0 或 I2S,LJ 模式是左側和右側時隙 0)偏移 2d = 兩個 BCLK 周期相對于標準協議的 ASI 數據 MSB 位置(TDM 模式是時隙 0 或 I2S,、LJ 模式是左側和右側時隙 0)的偏移 3d 至 30d = 根據配置分配的 ASI 數據 MSB 位置(TDM 模式是時隙 0 或 I2S,LJ 模式是左側和右側時隙 0)偏移 31d = 31 個 BCLK 周期相對于標準協議的 ASI 數據 MSB 位置(TDM 模式是時隙 0 或 I2S,LJ 模式是左側和右側時隙 0)偏移 |
為了支持比方程式 1 所允許的更多時隙數,可通過多條主機處理器 TDM 總線將連接的 TLV320ADCx140/PCMx140-Q1 器件拆分開來,如圖 3-10 所示。這種連接方法不僅使位時鐘 (BCLK) 速度減半,而且還減少了主機處理器數據線路 SDIN1 和 SDIN2 上的負載電容。
圖 3-10 TLV320ADCx140/PCMx140-Q1 共享拆分 TDM 連接圖另一種選擇是使用輔助輸出將單個器件的時隙映射到主要輸出和輔助輸出。例如,一個具有 12 個通道、32 位數據字且以 96KHz 采樣速率運行的系統,需要 36.864MHz 的位時鐘(三個器件 * 四個通道/器件 * 32 位字 * 96kHz),違反了 25MHz 的最大 BCLK 速度。12 個通道可以分開,其中 6 個通道分配給主要總線,另外 6 個通道分配給輔助總線,使 BCLK 保持在 25MHz 以下。每個器件有四個通道,一個器件有兩個通道分配給主要總線,兩個通道分配給輔助總線,如圖 3-11 所示。
圖 3-11 TLV320ADCx140/PCMx140-Q1 具有主要和輔助總線的共享拆分 TDM 連接圖以圖 3-11 為例,以下 I2C 腳本將 U1、U2 和 U3 配置為具有主要和輔助總線的共享 TDM。
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 04 # Set U2 Ch1 mapped to slot 4 of SDOUT
w 9A 0C 05 # Set U2 Ch2 mapped to slot 5 of SDOUT
w 9A 22 30 # Set U2 GPIO1 as SDOUT2
w 9A 0D 40 # Set U2 Ch3 mapped to slot 0 of SDOUT2
w 9A 0E 41 # Set U2 Ch4 mapped to slot 1 of SDOUT2
w 9C 22 30 # Set U3 GPIO1 as SDOUT2
w 9C 0B 42 # Set U3 Ch1 mapped to slot 2 of SDOUT2
w 9C 0C 43 # Set U3 Ch2 mapped to slot 3 of SDOUT2
w 9C 0D 44 # Set U3 Ch3 mapped to slot 4 of SDOUT2