作者:實作派
前陣子我買了 HDMI 螢幕來當攝影機的監視器,只是當我把攝影機接上去時,HDMI 螢幕卻沒畫面!
這螢幕新買的耶,到底是怎麼回事呢?我們一起來看看。
為什麼會沒畫面?測試歸納問題
為了找出問題,我做了一些測試,歸納出有畫面與沒畫面的狀況如下圖,你可以看到紅色步驟與藍色步驟。
- 藍色步驟,螢幕與攝影機都先上電,最後再把 HDMI cable 接上去,這樣的次序沒畫面
- 紅色步驟,HDMI cable 與螢幕、攝影機都先接好,攝影機先上電,螢幕最後上電,這樣就有畫面;如果在有畫面的情況把 cable 重新插拔,則會回到藍色步驟,變成沒畫面
這真的太奇怪了,HDMI cable 插拔是很常見的動作,但現在卻會在插拔之後出現沒畫面的問題,我心想這應該是螢幕的問題吧。
原本我是打算直接把螢幕送修,但是在送修之前,我總覺得要先確認一下是否真的是螢幕的問題,所以我拿了樹莓派來試,結果樹莓派的 HDMI 接上去,Wow!完全沒有問題,無論 HDMI cable 怎麼插拔都沒問題,這樣要拿去送修是會有爭議的。
HDMI 螢幕的通訊小知識
既然送修可能會有爭議,所以我決定自己來找找到底是哪裡有問題。
動手之前,先來點行前教育,如下圖,左右兩邊分別代表攝影機和螢幕的 HDMI 插座。
HDMI cable 在插上去的瞬間,攝影機和螢幕會先做溝通,目的是用來確認待會兒要用哪種訊號格式傳送,確認後攝影機才會依照協議送影像訊號。
它們之間的通訊大概是這樣:
首先要確認 HDMI cable 是否有接好,攝影機會先透過 Pin 18 提供 +5V 給螢幕,如果線有接好,那麼螢幕內部會有一個 1k ohm 電阻把 5 V 傳到 Pin 19 的 HotPlug 腳位上,這樣攝影機就知道 Cable 已經接好了,但螢幕仍然保有 HotPlug 的控制權,必要的時候會將 HotPlug 拉為 0 V。
接著攝影機要開始詢問該送哪種影像格式,這是透過 Pin 15、16 的 DDC(Display Data Channel)來達成,這兩根腳位使用的通訊協定是 I2C,實際傳送的資料稱為 EDID。如果這個資料有問題,那當然就會直接影響攝影機的行為,我猜可能是這個步驟出了問題才讓螢幕沒畫面,所以我打算把這些訊號抓出來看看。
那該用什麼儀器來觀察這些訊號呢?答案是邏輯分析儀,因為它能擷取的資料很長,所謂很長大概是 7 sec 左右的時間,當然有人可能會想要用示波器,而一般示波器的紀錄長度 Record length 非常有限,不適合抓太長的時間,我這次大約需要擷取 7 sec 的訊號,這對示波器來說時間太長了。
我選邏輯分析儀的原因還包含因為我需要 I2C 通訊協定的分析功能,以方便判讀資料。雖然我可以憑肉眼解讀 I2C 的內容,但 EDID 的資料有 256 Bytes,全部看完波形的話眼睛會看到脫窗,因此需要藉助通訊協定分析軟體來幫忙,而只有邏輯分析儀有這種功能。
觀察 DDC 與 HotPlug
為了把 HDMI 的腳位跳接出來,我特地買了下圖這種 HDMI 測試板,方便我把訊號線跳接出來。
目前我想觀察 Pin 15、16、18、19 共四條線,但別忘了還需要加一條 GND 線才能做測試喔,這樣這四條訊號線才有參考電位 0 V 可以用。為了節省篇幅,後面我不會講邏輯分析儀的操作,只會直接 show 結果,接著我們來看一下時序圖,分別是正常與不正常的圖。
1. 樹莓派接螢幕
先來看一下樹莓派正常的時序圖,如下圖,下半部是擷取訊號的總區間,上半部是其中一段的 Zoom in 訊號,這兩部分訊號都有 5 列,次序都相同,從上到下都分別是 I2C 分析、SDA、SCL、+5V 以及 HotPlug。
你可以發現樹莓派接螢幕的時候,樹莓派只會問一次 EDID 的資料,之後螢幕就有畫面了,整個時序圖非常乾淨簡約。
2. 攝影機接螢幕,cable 重插拔
再來看攝影機的不正常時序圖,如下圖,這是把 HDMI cable 故意重新插拔後,得到的時序圖。
你看下半部的總區間出現了三次的 EDID 詢問,在第一次詢問後,HotPlug 就一直被週期性地拉 low 再拉 high,因此攝影機就認為 cable 被重新插拔,它就會再問一次 EDID,共問了三次,事實上這個動作會不斷地循環重複,而螢幕也一直沒有畫面。
由於攝影機的 +5 V 供電不會有變化,所以這 HotPlug 的跳動一定是螢幕拉的,剛才我有說螢幕仍保有 HotPlug 的控制權,那問題就變成:螢幕為何要把 HotPlug 拉 low?
3. 攝影機接螢幕,螢幕重上電
剛才有說,如果要讓螢幕有畫面,只要螢幕是最後一個上電就行,所以我們也來看看這種情況的時序圖,如下圖:
下方的橘色線就是 +5 V,由於 HDMI cable 一直都插著,所以 +5 V 都維持 high,而黃色軌跡的 HotPlug,由於螢幕有 Power off 然後再 On,所以 HotPlug 就被拉 low了一下,然後再 high,黃色圓圈就是它變成 high 的地方,之後攝影機就開始詢問 EDID 的資料,螢幕也確實回傳了資料,畫面也播出了,整個時序圖乾淨俐落。
4. 時序圖比較
如果我們把上面三種時序圖拿來比較,只有第二種會沒畫面,而且也只有第二種的 HotPlug 會亂跳,所以我可以合理懷疑 HotPlug 和沒畫面有直接的關係,當然也可以進一步推論,會不會是 EDID 的資料有問題導致 HotPlug 亂跳,所以我還去看了 EDID 的資料,如下圖:
攝影機詢問 EDID 資料的時候,會以 0x30、0x50 作為詢問的位址,這個位址是 DDC 定義的,之後螢幕就會回傳 EDID 的資料給攝影機,如上圖你可以看到 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 等資料,這些就是 EDID 的檔頭,它其實就是 I2C Read 得到的資料,最後攝影機就會以最高解析度來做傳送。
由於 EDID 全部有 256 個 Byte,基本上不太可能用肉眼比對,更不用講說想用示波器來解讀,所以我用邏輯分析儀的匯出功能,再用試算表來做比對,這樣比較方便快速。
三種時序圖的 EDID 經過比對後,結果資料完全一樣,所以我判斷 HotPlug 會跳來跳去,跟 EDID 的內容是無關的。
觀察CEC訊號
如果 DDC 的 EDID 資料不是問題,那我只好懷疑 CEC 了,它是 HDMI 上的第 13 腳,也是能傳資料的(家庭劇院的一鍵操作就是靠它)。
我們一樣用邏輯分析儀來看 CEC 訊號,但我內心其實並不認為它是個問題,只不過越不會被懷疑的東西,有時候偏偏就是它,所以我們還是來看一下。
1. 樹莓派沒有 CEC
首先來看正常的樹莓派 HDMI 訊號,抓了訊號之後才知道原來樹莓派沒有 CEC 訊號,下圖第一列的訊號就是 CEC 波形,從頭到尾都是 high 的狀態,所以完全沒有 CEC 訊號。
2. 攝影機有 CEC
再來看攝影機的 CEC 訊號,用邏輯分析儀抓訊號後,果然在下圖中可以看到第一列的 CEC 訊號有東西出來,上方第一列有橘色藍色的部分是解析過後的 CEC 資料內容,下方第一列深綠色的部分是訊號的總區間。你可以看到 CEC 訊號出現後沒多久,最後一列的黃色 HotPlug 馬上被拉 low,以因果論來說的話,CEC 似乎有可能會影響 HotPlug。
3. 切斷 CEC 的時序圖
要判斷 CEC 是否真的影響 HotPlug 的最好方法,就是把 CEC 切斷,然後再做一次實驗,於是我拿了另一個 HDMI 測試板,把上面的 CEC 銅箔用刀片切斷,如下圖。
眼尖的你可能會發現我怎麼會切在 Pin 7,CEC 不是應該要在 Pin 13 嗎?那是因為這塊測試板它印錯了,但不影響實際測試,所以網路上買東西還是要小心一點,我也是搞了好久才發現它印錯。
CEC 切斷後將測試板接上螢幕,再抓一次訊號如下圖,你可以看到 CEC 訊號真的不見了,第一列的 CEC 一直維持在 low,但是無奈 HotPlug 仍然一直在跳,螢幕也仍然沒有畫面,這表示 CEC 和沒畫面的問題是無關的。
觀察 TMDS
到目前為止都沒有發現沒畫面的原因,我其實有點挫折,HDMI 裡面的 DDC、CEC 以及 +5 V 剛才都找過了,都證實沒畫面和它們無關,只知道和 HotPlug 應該有關,但 HotPlug 是螢幕控制的,難道會和 HDMI 的主通道 TMDS 有關?
TMDS 它傳送的是影音訊號,共有四組線,三組資料線,一組時脈線,每組都是高速訊號,在 1920×1080 的解析度下,頻率可以高達 74.5 MHz。由於是高速訊號,它們採用的電子訊號格式是差分訊號 Differential signal,而不是低速訊號使用的單端訊號 Single end signal,如果要將 TMDS 這種高頻訊號接入邏輯分析儀,要考慮下列幾個點:
- 跳接高頻訊號可能會影響傳輸線的特徵阻抗,造成訊號衰減而誤動作
- 邏輯分析儀不接受差分訊號
好奇心驅使之下,即便我知道會有上述種種困難,我還是決定要把 TMDS 硬接上邏輯分析儀,原因是我並沒有要看 TMDS 的內容資料,我只是要看它何時出現,所以在頻率的部分,我會維持 1 MHz 的取樣率,用這個頻率對 74.5 MHz 的訊號做取樣,想當然爾這無法觀察到 TMDS 的內容,因為那可是隔了好幾個 Cycle 才會取樣一次,但如果 TMDS 有資料的話,分析儀一定會抓到 high 或 low,理論上 high/low 應該會大約一半一半,軟體上會看到密密麻麻的帶狀波形。
再來邏輯分析儀並不是設計給差分訊號使用的,關於這一點,我並沒有打算要將 Differential signa l轉換成 Single end signal 再接入邏輯分析儀,我打算直接把差分訊號的其中一條線接在邏輯分析儀上,也就是把它當成單端訊號來看待。
這台邏輯分析儀的訊號臨界值我設定為 1.65 V,也就是 3.3 V 的一半,由於 TMDS 是貼著 3.3 V 做擺盪,所以我必須把臨界值改為 3.05 V,如下圖,至於把訊號跳接出來後,會不會影響原來的訊號?一定會,只是影響多大而已,對我來說只要畫面能播出來就沒影響,所以就賭賭看囉,如果有畫面,而且邏輯分析儀也抓得到訊號,那就是三生有幸。
為了要觀察 TMDS 高速訊號,同時避免波形變形太多,我用雙絞線做連接,盡量讓訊號線和 GND 貼在一起,另外邏輯分析儀的臨界值設定也和低速訊號不同,要設定為 3.05 V,所以 TMDS 要接到另一組 Port,因為每組 Port 只能共用一種臨界值,我選 Port D 的 D4 與 GND 腳位。
我們接下來的實驗就只針對攝影機來做,這樣才能保證是相同的硬體,在不同操作程序之下,出現不同的波形。
1. 螢幕重新上電>>>正常的波形
先來看一下正常的波形,這要用螢幕最後上電的手法來得到,如此螢幕就會有畫面,抓到的波形如下,最下方的綠色波形就是 TMDS,果然如預期的有個帶狀的波形,它發生在 EDID 出現之後,HotPlug 也沒有跳來跳去,是一個很乾淨的波形。
2. HDMI cable重插拔>>>不正常的波形
接著來看不正常的波形,也就是故意重新插拔 HDMI cable,螢幕一樣是沒畫面,你可以看到最後一列的 TMDS 訊號,攝影機明顯就是一副欲言又止的樣子,TMDS 竟然會自己變成 low,而且是發生在 HotPlug 被拉 low 之前,這太奇怪了,彷彿 TMDS 有預知能力。
整體來看 TMDS 就是輸出不完全,它沒有一個長時間的帶狀訊號,所以螢幕當然就解不出畫面來。
根據之前的實驗,有畫面與沒畫面的差別在 HotPlug 最明顯,雖然這次 TMDS 異常的地方在 HotPlug 拉 low 之前,但是我認為 TMDS 應該有受到 HotPlug 的影響,為什麼呢?
因為邏輯分析儀僅依靠臨界點 Threshold 來判斷 0 與 1,它的波形只能是 high 或 low,它並不像示波器可以完整顯示各種電壓的波形,所以如果 HotPlug 的 5V 在波形上有任何凹陷的地方,但又沒有低於 Threshold,這時候在邏輯分析儀上是看不出任何異狀的,但這些凹陷的地方可能會被攝影機判為訊號,因而誤動作,所以如果在這個時間點上能有示波器輔助觀察,那是最好的,但偏偏我今天沒有示波器在手邊。
其實這台螢幕與攝影機,我有試過拿它們與其它裝置連接,都是沒問題的,獨獨它們兩台互接的時候會出問題,既然前述的各種技術手段都無法確認原因,那我只能說它們兩個八字不合,既然螢幕示新買的,那我就來看看能否從螢幕原廠這裡找到解法。
HDMI螢幕 解決方案
現在 3C 產品動不動就要我們更新軟體,我就來看看原廠網站是不是也有這款螢幕的韌體 Firmware,雖然我也從來沒看過螢幕有在更新 Firmware 的,但 Firmware 程式會直接影響到裝置的行為,所有的相容性問題幾乎都跟 Firmware 有關,所以我還是來找看看。
經過查詢果然沒有 Firmware可以下載,僅有的下載點是 Windows 系統的驅動程式,這跟我的問題無關,但我同時發現有《常見問題》這個頁籤,於是我就進去看看,發現有個敘述跟我很類似,主要就是講 HDMI 的輸入自動切換 Input Auto Switch 要設定為 ON,如下圖:
但我的螢幕在 Input Auto Switch 這個選項早就已經是 ON 了,那這樣我不如把它 OFF 來看看,所以我就這麼做了。
設定成 OFF 之後,我再次重新插拔 HDMI cable ,想看看是否有畫面,等啊等的還是沒畫面,唉!好失望,讓我把 MENU 點開來吧,就在我伸手觸碰 MENU 鍵的時候,畫面出現了!這是巧合還是真的需要按鍵。
於是我又試了一次,重新插拔後,這次不等畫面了,直接按螢幕的 MENU 鍵,畫面果然出現了,所以看來把 Input Auto Switch 設定為 OFF 真的有改變螢幕的行為,至少在 HDMI cable 重插拔後,我只要按一次 MENU 按鍵就可以讓畫面出現,對比之前需要按兩次電源鍵,一次 OFF 一次 ON,算是有點進步。
解決方案,從按兩次變成按一次,算是解決了我 50% 的問題,對我來說是可以接受的,因為目前我也沒有其他方案可以選了,就接受吧。
當然有些朋友建議我可以再進一步這樣做那樣做,其實當然都可以做,只不過再繼續做下去的話,就比較偏研究性質了,這屬於長期的 Debug 能力累積,願意這樣做的話其實很好,但我的需求屬於想要短期見效的,能用的解法我就先拿來用,分享給各位。
(本文經同意轉載自實作派電子實驗室、原文連結;責任編輯:賴佩萱)
- 【實作實驗室】無線滑鼠游標定格,電源開關更換 DIY - 2024/11/12
- 【實作實驗室】水的電阻是多少? 認識電阻率與表面電阻率 - 2024/11/10
- 【實作實驗室】塑膠會導電嗎? - 2024/10/17