ZHCSP98B February 2022 – March 2023 TAS2780
PRODUCTION DATA
TAS2780 提供靈活的串行音頻端口。該端口可配置為支持多種格式,包括立體聲 I2S、左對齊和 TDM。通過 SDIN 引腳提供單音頻播放。SDOUT 引腳用于傳輸樣本流,包括揚聲器電壓和電流檢測、PVDD 電壓、內核溫度和通道增益。
TDM 串行音頻端口支持多達 16 個采樣率為 44.1/48kHz 的 32 位時隙或 8 個采樣率為 88.2/96kHz 的 32 位時隙。有效的 SBCLK 與 FSYNC 之比為 16、24、32、48、64、96、128、192、256 和 512。器件可自動檢測時隙數,無需編程。
默認情況下,TAS2780 會自動檢測 PCM 播放采樣率。這可以通過將 AUTO_RATE 寄存器位設為高電平來禁用此功能,以及手動配置該器件。
當 AUTO_RATE 寄存器位為高電平時(禁用 TDM 采樣率自動檢測),SAMP_RATE[2:0] 和 SAMP_RATIO[3:0] 寄存器位用于配置 PCM 音頻采樣率。TAS2780 采用強大的時鐘故障檢測引擎,如果 FSYNC 與配置的采樣率不匹配(如果 AUTO_RATE= 1)或 SBCLK 與 FSYNC 之比不受支持,該引擎將自動降低播放路徑的音量(最大限度地減少可聞失真)。一旦檢測到時鐘在頻率和比率上均有效,器件會自動將播放路徑的音量緩慢上升回配置的音量并恢復播放。
使用自動速率檢測時,在 TDM 總線上檢測到的采樣率和 SBCLK 與 FSYNC 之比會報告給只讀寄存器位 FS_RATE[2:0] 和 FS_RATIO[3:0]。
TAS2780 支持 12MHz SBCLK 運行。系統將針對 125 或 250 的比率進行檢測或應進行手動配置。在此特定比率中,最后 32 位時隙不應用于通過 TDM (SDOUT) 或 ICC(節 8.4.2.10.1)傳輸數據,因為數據將被截斷。
下面的圖 8-1 和圖 8-2 說明了配置播放端口所需的接收器幀參數。幀以 FSYNC 從高到低或從低到高的轉換開始(由 FRAME_START 寄存器位設置)。FSYNC 和 SDIN 由 SBCLK 使用上升沿或下降沿(由 RX_EDGE 寄存器位設置)進行采樣。RX_OFFSET[4:0] 寄存器位定義從 FSYNC 轉換到時隙 0 開始的 SBCLK 周期數。這通常設置為值 0(對于左對齊)和 1(對于 I2S 格式)。
圖 8-1 左對齊的 TDM RX 時隙
圖 8-2 TDM RX 時隙RX_SLEN[1:0] 寄存器位將 RX 時隙的長度設置為 16、24 或 32(默認)位。時隙內音頻樣本字的長度由 RX_WLEN[1:0] 寄存器位配置為 16、20、24(默認)或 32 位。默認情況下,RX 端口將使時隙內的音頻樣本左對齊,但這可以通過 RX_JUSTIFY 寄存器位更改為右對齊。TAS2780 支持單聲道和立體聲下混音播放 ([L+R]/2)。默認情況下,器件將從等于 I2C 基地址偏移量(由 ADDR 引腳設置)的時隙播放單聲道。 RX_SCFG[1:0] 寄存器位可用于將播放源覆蓋到左時隙、右時隙或由 RX_SLOT_L[3:0] 和 RX_SLOT_R[3:0] 寄存器位設置的立體聲下混頻。
如果時隙選擇將接收部分或全部置于幀邊界之外,則接收器將返回一個空樣本,相當于一個數字靜音樣本。
TDM 端口可以在 SDOUT 引腳上傳輸多個樣本流,包括揚聲器電壓感測、揚聲器電流感測、中斷和狀態、PVDD 電壓、內核溫度和通道增益。下面的圖 8-3 說明時隙與幀開始是對齊的,以及給定樣本流如何映射到時隙。
圖 8-3 TDM 端口 TX 圖SBCLK 的上升沿或下降沿均可用于在 SDOUT 引腳上傳輸數據。這可以通過設置 TX_EDGE 寄存器位來配置。TX_OFFSET[2:0] 寄存器位定義從幀開始到時隙 0 開始的 SBCLK 周期數。TDM 和 ICC TX 可以發送邏輯 0 或高阻態,具體取決于 TX_FILL 寄存器位的設置。當所有驅動總線的器件都是高阻態時,可選的總線保持器將弱保持 SDOUT 和 ICC 引腳的狀態。SDOUT 上只需要一個總線保持器,因此可以通過 TX_KEEPEN 寄存器位禁用此功能。使用 TX_KEEPLN 寄存器位可以將總線保持器配置為僅將總線保持 1 1LSB 或始終保持。此外,可以使用 TX_KEEPCY 寄存器位將保持器 LSB 驅動一個完整周期或半個周期。
TX_FILL 寄存器位用于 I2S 總線上只有一個放大器的單聲道系統。當 TX_FILL 寄存器位設置為低電平時,放大器未使用的所有時隙都將用零填充。
當多個器件位于同一 I2S 總線上時,頁 0x01 的 SDOUT_HIZ 寄存器會非常有用。每個器件都不知道總線上其他器件的時隙配置。需要在系統級別對 SDOUT_HIZ 寄存器進行適當的編程,以確保正確完成設置并且不會在內部和外部產生任何爭用。
每個樣本流由一個或兩個 8 位時隙組成。揚聲器電壓感測和揚聲器電流感測樣本流是 16 位精度的,因此它們將始終使用兩個 TX 時隙。PVDD 和 VBAT1S 電壓流為 10 位精度,可以在 16 位字中進行左對齊傳輸(使用兩個時隙),也可以截斷為 8 位(前 8 個 MSB)并在單個時隙中傳輸。這是通過設置 PVDD_SLEN 和 VBAT1S_SLEN 寄存器位來配置的。內核溫度和增益均為 8 位精度,并在單個時隙中傳輸。
每個樣本流的時隙寄存器定義了 MSB 傳輸開始的位置。默認情況下,VSNS_SLOT[5:0] 寄存器位設置為 2(十進制),上面的 8 個 MSB 將在時隙 2 中傳輸,下面的 8 個 LSB 將在時隙 3 中傳輸。此樣本流可以使用 VSNS_TX 寄存器位單獨啟用或禁用。ISNS_SLOT[5:0] 寄存器位默認設置為 0(十進制),并且可以使用 ISNS_TX 寄存器位啟用或禁用樣本流。流的啟用/禁用功能對于管理有限的 TDM 帶寬會很有用,因為可能沒有必要為總線上的所有器件傳輸所有流。
確保主動傳輸的樣本流的時隙分配不產生沖突很重要。這將避免在沖突的位時隙中產生不可預測的傳輸結果(即未定義優先級)。
默認情況下,電流和電壓值以完整的 16 位測量值傳輸。IVMON_LEN[1:0] 寄存器位可用于在一個時隙中僅傳輸 8 個 MSB 位或跨多個時隙傳輸 12 個 MSB 位值。當主機處理器只能處理 24 位 I2S/TDM 數據時,使用特殊的 12 位模式。該器件應配置為將電壓感測時隙和電流感測時隙關閉 1 個時隙,并將消耗 3 個連續的 8 位時隙。在這種模式下,器件將發送前 12 個 MSB 位,然后發送由前一個時隙指定的接下來的 12 個 MSB 位。
如果時隙選擇將傳輸置于幀邊界之外,則發送器將在幀邊界截斷傳輸。
VBAT1S、PVDD 和溫度測量使用 VBAT1S_SLOT[5:0]、PVDD_SLOT[5:0] 和 TEMP_SLOT[5:0] 寄存器位進行設置。若要啟用每個樣本流,寄存器位 VBAT1S_TX、PVDD_TX 和 TEMP_TX 必須設為高電平。時隙長度由 VBAT1S_SLEN 和 PVDD_SLEN 寄存器位進行選擇。
對于 TDM 最終處理的音頻時隙,使能和長度設置使用 AUDIO_SLOT[5:0]、AUDIO_TX 和 AUDIO_SLEN 寄存器位。
有關時隙狀態的信息可以在 STATUS_SLOT[5:0] 寄存器位中找到。將 STATUS_TX 寄存器位設置為高電平會啟用狀態發送。
通過設置 GAIN_SLOT[5:0] 寄存器位,TX 限制器增益衰減的時隙配置可設置為 0(默認)至 63。 它用于 ICC(節 8.4.2.10),可以通過 TDM 總線或 ICC 總線。若要使用此功能,需要將寄存器位 GAIN_TX 設置為高電平。