深入了解數字音頻接口TDM在軟硬件配置中的問題
在上篇《ADI音頻在PCBA里的通用傳輸格式》里,我們介紹了通用音頻在 PCBA 中的傳輸格式,其中涉及到多種格式,本文將挑選一個最常用的數字傳輸格式進行相關分析,以幫助大家了解如何合理地在軟硬件上進行設計。
在 PCB 板內的音頻設計時,很多時候都是以模擬信號作為前后輸入輸出,但是板內更多是以數字信號為主,例如我們可以看到各種 aux、同軸、蓮花口等信號輸入。只要音頻需要進行處理,一般都是需要轉成數字信號來進行的,比如當我們在用 FPGA、DSP、單片機等系統(tǒng)時。大多數情況下,簡單 2 通道的實現在軟硬件上還是比較簡單,但是上升到 TDM8 以上,很多客戶就會面臨穩(wěn)定性的問題。接下來將分兩個板塊——軟件和硬件,為大家說明如何有效規(guī)避這些風險。
TDM 在軟件配置上的注意項
上文有說到 TDM 協(xié)議一般是三根線 (MCLK 除外),有的編解碼會有四根線,主時鐘線束一般是恒定輸入的,另外三根是 BCLK、SYNC、以及 SDATA (DATA 一般會有 DTX、DRX,或者自己靈活配置為 DTX 或 DRX)。那發(fā)射端和接收端要如何配置才能匹配起來呢?下面將進行一一介紹:
? 確定傳輸多少通道的音頻
我們需要根據傳輸多少通道的音頻來選擇 TDM 接口,一般是 TDM2/4/8/12/16/32 這幾種,具體需要根據實際情況來選擇。然后確定采樣率、位深,以此得到確切的位時鐘數據。例如 TDM16,采用 48khz 的采樣率以及 32bit 的位深,那么其確定的 BCLK 頻率就是 16 * 48khz * 32bit = 24.576Mhz。在驅動中一般需要配置具體 TDM 類型、位深和采樣率,這里的配置,發(fā)射端和接收端需要保持一致。
? 確定 SYNC 的類型和極性
對于幀同步信號,它的頻率一般就是采樣頻率,比如 TDM16 的格式,在幀同步信號的一個周期內,可以傳輸 16 個通道的數據。同時,它有脈沖模式和 50/50 占空比模式。脈沖模式是以第一個位時鐘增加一個脈沖開始,到該周期結束。50/50 占空比模式,是高低電平分別占用一半的通道,具體請查看 datasheet 的示例圖。它還有一個極性,即上升沿觸發(fā)還是下降沿觸發(fā)。這一部分發(fā)射端和接收端也需要保持一致。
? 確定 BCLK 的極性
在第一點我們已經確定了 BCLK 的時鐘大概是多少,接下來還需要進行下一步的極性配置。這個極性配置其實是對應于 SDATA 位來說的,而且需要區(qū)分驅動沿和采樣沿,一般情況下,發(fā)射端的驅動沿配置要和采樣沿相反,有的格式要相同,具體要核對數據手冊上對于該內容的描述。
其實就算配置的不對,也會有聲音輸出?;旧嫌薪涷灥墓こ處煻寄軌蚵牫鰜?,或者通過對數據數組中的數據進行分析,不對應的邊沿,采集下來的數據無非就是溢出,或者少了一位。當發(fā)現 1khz 的正弦波進去,采出的數據具備這種波形特點,但是高位沒數據,或者低位沒數據,聽起來原聲小,噪聲大,實際上就是這個原因造成的。另外,這個配置發(fā)射端和接收端可能相反,也可能相同,因此需要進行比對。
? 確定 SDATA 位的格式
這里說的格式和數據傳輸中 MSB 以及 LSB 息息相關,這一點是針對于 SYNC 來的。在 SYNC 的周期開始時,我們可以選擇 delay 1 或者左對齊右對齊等格式。這里是要嚴格對齊的,不然數據肯定是采集不正確的,該配置發(fā)射端和接收端需要保持一致。
以上基本就是 TDM 在軟件配置中的一些注意點,當然可能有一些芯片在這些配置的基礎上增加了某些其他功能,這需要具體查看對應的 datasheet。比如 ADAU1452 添加了 flexTDM 功能,AD2428 的 TDM 增加了 delay 1 SYNC 以及 offset 等等,這樣做的目的基本上都是為了提升該芯片 IP 的兼容性。有一些做得差的廠商,可能他們的 IP 都無法支持 TDM32,只能支持到 TDM8,但總體來說,以上的配置指導說明能夠涵蓋這些基礎配置。
TDM 在硬件設計上的注意項
很多人會說 TDM 不就是幾根線連起來就可以了嗎?然后 IIS 跑起來也沒出過問題啊?大部分客戶可能很少設計過 TDM8 以上的信號,同時極端情況出現的比較少,這是因為消費電子的音頻受擾環(huán)境少,但在汽車電子中,外界環(huán)境比較復雜,時常出現一些不穩(wěn)定的現象,下文將集中描述一些問題,同時給大家提供一些解決思路。
為什么要在發(fā)射端和接收端加電阻?
如下圖 (圖1) 所示,我們常常在 IC1 和 IC2 中間加個電阻,很多工程師其實都不清楚為什么要加它,它到底加多大?以下為大家進行詳細說明:
圖1 信號線連接示意圖
通常我們看到音頻芯片連接線上一般都是用 0、22、33Ω 的電阻進行連接,其實主要的目的還是為了阻抗匹配,這涉及到我們大部分的高頻電子電路的應用。簡單來講就是信號源內阻、特征阻抗、還有負載阻抗,最好的狀態(tài)就是實現三者的大小相等,傳輸過來的信號相位完全相同,當然這頗有難度。如果匹配不好不連續(xù)時,或在信號頻率過高時,我們會發(fā)現信號能量丟失很多,同時反射嚴重,波形毛刺凌亂。其原理可以類比光進行發(fā)射時,在發(fā)生折射的同時還發(fā)生反射,所以我們至少要盡量朝著這個方向去靠近。
在芯片的 TDM IP 接口設計時,實際上發(fā)射端的阻抗一般都是偏低的,大概在 17-40Ω 左右,PCB 的單端走線一般是 50Ω,而接收端的阻抗通常又比較大,這就是一個典型的不連續(xù)不匹配的系統(tǒng),所以我們通常需要加一個 22Ω 的電阻,加到靠近的發(fā)射端,這樣基本能在整體上保持阻抗的連續(xù)問題。不匹配典型的波形就是過沖和振鈴,如下圖 (圖2) 所示,而這種問題的風險就是容易導致接收端誤解碼。
圖2 發(fā)射端與接收端不匹配典型波形圖
還一種情況是吸收干擾脈沖,有時候我們走線拉得很長,然后在走線的周邊又經常出現一些高速跳變的信號,尤其是平行并排走的,那么這個時候信號線非常容易受到干擾,會有一些毛刺和窄脈沖,這樣我們的接收端就很不好判定了,因此容易產生問題。對于這一類問題,一般通過非平行走線減少耦合,同時接收端增加大電阻吸收窄帶脈沖的能量即可。
總的來說,信號線上的電阻主要是為了匹配阻抗,降低噪聲,而限流和保護作用基本上涉及比較少,因為功率總體上比較小。
在發(fā)射端和接收端到底要不要加旁路或者去耦電容?
接下來通過一個真實的案例加以說明。某客戶已經把功放的所有產品需求設計好了,并且進入量產了,但是將產品裝到車上后,在低溫或者一些比較極限的情況下,突發(fā)無聲等情況。經過許久排查,發(fā)現核心問題還是產生在 TDM 的旁路電容上。
為什么要加該電容?在汽車電子的產品中,我們都要過車規(guī)認證,這時候會產生讓非常多工程師頭疼的問題:當 EMI 和 EMC 等級要求過高而無法通過時,工程師就會考慮加一些電容了。一方面因為是旁路或者去耦接地能夠吃掉相當一部分的能量,使得輻射減少。另一方面還能夠降低噪聲,提高電磁兼容性。
另外,在實際應用中還得注意諧振頻率的問題,尤其是和信號頻率接近的諧振頻率。產生諧振后,最容易出現在我們信號的閾值附件波形抖動,尤其在一些極端條件下,電容器的溫漂屬性,配合自身的 ESR,以及電路中的電阻構成 RC 濾波電路。如果出現了這個問題,基本是由于 TDM 信號判定不了或者錯位導致的。所以在這個電容器上,不需要經過嚴苛認證的一般不必加,需要過認證的要適量加大容量或者減小容量,尤其是上升沿下降沿出現回勾,而且這個頻率一般是很難計算的,它和發(fā)射接收、走線以及電容本身的 ESR 都有關系。
總之,在添加電容、電阻的時候也需要用心,因為如果這些條件沒添加好,都會影響波形質量。電阻加得大,波形變成三角波,電容加得大,波形爬坡變成一條弧線,上升下降沿的時間都大大增加了,從而進一步影響波形質量。
綜上所述,只要對以上介紹的兩點內容和硬件的 layout 設計稍作注意,一般都可以設計出比較穩(wěn)定的產品。有一些客戶出問題少,是因為大部分的 IIS 帶寬足夠低,很少出現這種情況,同時容錯率比較高,芯片廠商設計的 IP 足夠覆蓋。這側面也反應出,在設計中,如果使用 TDM8 足夠,就不需要使用 TDM16 或者 32,因為會增加一些不必要的風險。
總結
根據上面的介紹,相信大家對 TDM 的協(xié)議和設計方式已經了解,這個格式差不多算是通用音頻的基石,用的非常多,希望能對大家的設計有所幫助。同時大家在選擇上可以盡可能選擇支持 TDM16、32 的這種芯片,因為一般這種芯片的 IP 設計的帶寬都要比那些只支持不到 TDM8 的芯片要好,尤其體現在一些高算力的 SOC 或者 DSP 上。
評論