2020年12月31日 星期四

用 ASM1442K 製作 HDMI 強波器


這是為了補救前篇 連接 Q Seven 模組 WT-21 的 HDMI 輸出問題而做的外掛, 是擦屁股(?)用的東西
不過很遺憾的是雖然它能動, 但並無法把我的屁股擦乾淨, 只能留個紀錄, 或許其他地方能用...

這計畫是當我想練習幹南橋時, 在不要的主機板上看到的東西

在 HDMI 接口旁有個方形的晶片, 我沒有看過 x86 設計, 出來工作後一直都是跟 arm 打交道
arm 的 SoC 世界幾乎都是晶片直出 HDMI, 因此 HDMI 附近的零件大多是幾個小東西
像是共模電感和 ESD 防護元件, 其中 ESD 元件常常被偷掉XD
因此這個方形的東西緊貼在 HDMI 接口旁就引起我的興趣, 幹南橋後順手把它幹下來
然後查了一下......哇靠!是修波形的準位轉換器耶!
這種晶片就是用來解決長走線在用的, 說不定可以拯救我那線長問題?
看了一下 datasheet, 好像也不難, 於是就做張板子來接看看

電路圖:WT-21-A_fixed.pdf

某廠主機板線路片段:GA-Z170X-UD3_R10_p40.pdf

我的板子剛做出來時是不會動的, 因為 datasheet 只有概略接法, 詳細電容值沒寫
我亂上了一些料發現不行, 於是又上網撈資料, 就撿到了這大廠線路, 照著上才會動
所以如果要做應參考大廠線路, 不過這應該和產生信號的設備放同一張板上
這種做成小卡外掛不太符合這晶片的規格, 因為輸入端收 3.3V 信號
如果像我做這種外掛就要先把 5V 轉 3.3, 麻煩!

接著測試, 接上 Jetson Nano, 4K 輸出:

滿天星, 真漂亮XD 整個畫面都是雜點, 偶爾還會閃, 不穩
這是主板拆下的 ASM1442K, 這顆正常是可以 4K 的, 我後來用別台有裝這顆的機器輸出 4K
電視是可以正常顯示沒問題的, 這應該就是我的 layout 問題了
這 IC 另有舊版 ASM1442, 規格就只有 1080p

把輸出切到 1080p:

就正常了, 表示我的 layout 可以承受 1G 的速度, 再上去就不行了
1080p 60fps 的 HDMI 資料量直接乘大概可以算出每通道 995Mbps 的資料量
若是 4K 60fps 的資料量每通道就直逼 4Gbps, 非常快的速度, 這要穩要設計的很好
ASM1442K 的規格上寫 HDMI 1.4, 每通道最多 3.4Gbps, 所以 4K 60fps 正常是上不去的
網上有些手段可以撐上去, 像是砍顏色解析度等邪門歪道XD 不過這要輸出卡和電視都有支援才行
就算不用 60fps, 4K 30fps 24bit 的資料量仍然接近每通道 2G, 設計起來還是要有技巧
而且也和晶片有關, 由於我沒有量測設備, 只能用賭的XD
因為那個 1GHz 的示波器稍微查了一下......

39 萬啊臥槽, 除非我的工作非常頻繁需要用才有可能買, 不然, 還是用賭的吧XD

這東西產出後有天在光華閒晃, 看到這個:

..............
怎麼有種既視感XD 把它買回家拆開看:

這個現成品用的晶片是 PI3HDX511F, 也是個準位轉換器, 和 ASM1442 一樣具備輸入端放大
也是 HDMI 1.4, 每通道 3.4Gbps
靠杯啊, 這不是一樣的東西麼, 尺寸還差不多, 搞了老半天原來有現成的
左邊我的板上如同前篇用樹脂加銅箔, 果然...沒用XD

背面:

結果這玩具接上 Jetson Nano 的 4K 輸出完全不顯示, 比我的還爛XD
雖然我的滿天星也是半斤八兩XD 但至少我的有東西出來, 可見在殼上印 4K 並不會幫助產生 4K (廢話XD)
PC Home 有賣這東西:HDMI 信號放大器/中繼器/最大共可延伸 40 公尺
說明頁面上有張圖:

雖然殼上印 4K 但說明裡明確寫只能 1080p, 表示有驗過, 知道外殼那是幌子XD

我的板子裝 imx6dp 的 Q7 時 1080p 輸出不顯示, 接上 imx6d 的 Q7 則是正常顯示
之前是用 Q7 內韌體開機, 這次花了時間把新版 yocto 裝上去, 用 imx6d 以 HDMI 輸出開機:

如照片, 可以正常輸出, 表示線路是接對的, imx6dp 不顯示應該是 layout 問題

接著把買來的轉接器插上:

1080p OK, 沒有問題

然後換成我的轉接器:

完全沉默XD
都是 1080p, 結果卻不相同, 不知道問題出在哪
imx6d 都用不了, imx6dp 自然是救不了的
儘管 Jetson Nano 可以 4K 滿天星, 這東西對我的 WT-21 沒有幫助

imx6d 的 HDMI 可以輸出後很開心的測了一下, 結果心情馬上跌到谷底

yocto 3.0 在 imx6d (可能 6 全系列都這樣) HDMI 輸出時繪圖加速異常
要 LCD 輸出才正常, HDMI 輸出會看到如上圖這種畫面殘留的 bug, 這是 NXP 的 2.2.0 狀況
結果上 NXP 官網看了一下...

2020 最後一天放出 2.3.0 更新, 年末大放送, 今天剛出的, 軟體還是燙的
早上看到, 下午火速把它搬上去, 由於小版本改動 device tree 沒有變化, 直接套即可
馬上裝上去測, 結果這問題就修了, 於是 7420 從原本最難用的板子跳級成唯一全功能都能用的卡
因為它板上沒有 SD 卡槽, 若底板的 SD 槽不能用這貨就廢了, 所以 WT-20 時只能用 7421 測
現在 7420 網路正常, HDMI 和 LCD 都可輸出, 但由於板上沒有 USB hub
所以我的底板 3 個 USB 接口都是無法使用的, 而 7421 則是跑 Yocto 時 HDMI 和網路都無法用
要連網還要掛個 USB 網卡, 唉! 所以 7421 只能上 Android 配 LCD 螢幕

這是 imx6dp Android 9, imx6 系列最後一版 Android, 之後的 NXP release 都是給 imx8 系列
這版還沒測 HDMI, 但它的網路是通的, 表示線路接對, layout 也是可承受的
如上圖這樣停在桌面放個簡單動態桌布跑一整晚沒有當機, 目前這版比較有希望
它是 4.14.98 的 kernel, 比較舊, 該版 kernel 出來時 imx8 還沒出來, 是全力維護的版本, 功能比較完整
後面的版本就是 imx8 為主力了, imx6 還是會更新, 但可以預期會更新得很慢
像上面那個 HDMI 問題跨了 2 版才修
所以目前我的 7421 就是跑 Android, 7420 跑 Yocto, 硬碟堆了三版本 Yocto 交叉比對
總算可以全部砍掉了, 檔案超多砍了兩小時還沒砍完

今年的計畫就全部由 WT-21 包下了, 移植 Android 和 Linux 上去
到目前為止都只是能動而已, 細節都沒驗, EC 也還沒做, 移植這種複雜系統非常耗時
曾有人說 Linux 核心有一半的程式都在處理網路, 所以只要網路出問題
我就只能兩手一攤, 投降, 我把 phy 和 mac 驅動都幹了一下, 結果沒找到問題
phy 是通的, dump 所有命令改到和 4.14 的一模一樣還是不會動
mac 有些設定, 和 4.14 比也都一樣, 只能懷疑塞進去的資料被扔了
因為可以設定 IP, ping 時燈會閃, 但就是收不到, 可能和上層有關
可是如果上層有問題為何插個 USB 網卡還是可以用? 搞不懂!
退回 4.14 核心上去網路就通了, 但我不想退版本, 因為舊版換成影像部份有問題
影像和網路相比影像比較貴, 新版顯示輸出只要填 device tree 就會動
不用到驅動裡大幹一場, 還要上下層都改, 所以影像優先, 網路就放棄了

這 WT-21 雖然做出來了, 許多功能會動, 但是對計畫目標沒有任何幫助
或許這玩具以後可以用到別的計畫, 但主計畫是不行了
把它補好只是當作練習, 同時讓這光買板子總價加起來就要兩萬五的玩具能產生些價值
今年真是歹年冬, 聽說明年會更糟, 不過政府已經幫我們處理好了
即將幫我們引進一批好便宜的萊豬, 我們應該不用擔心會餓肚子

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。