2012年3月7日 星期三

OMAP3530 連接 LCD

本文在 2012/03/07 08:21 發表於 Yahoo!奇摩部落格
因Yahoo!奇摩部落格將於2013年12月26日終止服務故遷移至此

今天很高興的來跟各位介紹本公司...不, 本實驗室新產品XD
年初時預定 Q1 要做出 LCD 接板終於產出了
第一批樣板出廠且完成組裝
在這裡介紹一下開發歷程

看完自家產品和別家產品比較設計後
發現要接這種矩陣 LCD 其實還蠻簡單的
只要硬體有 LCD 控制器
接著依照信號進行對接即可
和前篇 控制繪圖型 LCD 大同小異
只是每個像素從 1 bit 暴增到 24-bit
傳輸還是一樣, 一筆顏色資料送上去就拉一個 clock 通知
一行完成後再一次 clock, 一頁完成後也是
然後多一個液晶翻轉信號, 讓液晶反轉方向以防止長時間顯示同一顏色導致像素失效
10 吋以下的 LCD 多是這樣操控, 又稱 TTL 面板
隨著顯示像素增加, 像素時脈就會越來越高, 就容易帶來干擾問題
於是 10 吋以上多會改走 LVDS, 類似 USB 的差分信號
這種信號每通道 2 線, RGB 各一通道, 採高速序列傳輸
新的 SoC 多會支援這種, 線比較少, 畫的螢幕又可以很大
當然, 電路板製作時需要注意的高頻設計就會比較麻煩
不過這都是以後的事了, 先把現在的目標做好

接著, 我開始動手製作
如同前篇 在 devkit8000 上安裝 android froyo (rowboat) 所言
該實驗板 LCD 接口有太多我不要的東西
實驗板本身網路部分驅動程式要改才能用在 rowboat android
由於接了 LCD, DVI 就不需要了
有這麼多用不到的東西實在擋路
所以我弄來了另一樣東西 : Mini8100



和 Devkit8000 是同一家公司做的, 採用 OMAP3530 的 CPU
並裝有 Ram+Flash 雙晶片和電源管理晶片組
明知道他們家東西有問題還用的我真是口嫌體正直XD
沒辦法, 要便宜又要一般接頭只有這選擇
背面是這樣的

1.27mm 排針, 這個網路還可以找到合用的母座
大部分模組廠都用特殊的連接器讓我非常蛋疼
可是要做產品就要特殊連接器才能縮小體積
所以這種一般接腳的選擇並不多

接著開始畫線路
玩法很簡單, 把所有 DSS 接腳都拉出來
由於我買的 LCD 是 3.3V, 而 OPAM3530 輸出是 1.8V
所以需要接個準位轉換 IC
我採用和 Devkit8000 上一樣的料 : NXP 74ALVC164245
這是顆準位轉換 IC, 可以雙向, 可以進入高阻抗狀態供 bus 連接使用
有多家廠商製作相同型號的產品, 可是電壓範圍不太相同
有的是最少 3.3V, 而 NXP 的可以到 1.5V, 所以選這家的
這要找專門進電料的賣家代尋, 當然, 一些服務費是必需的
除非一次 1000 顆不然很難直接找晶片廠買

OMAP3530 有 24-bit 顏色輸出, 加上 4 線的 clock 控制信號
所以總共需要 28 個輸出通道
74ALVC164245 是 16-bit 的準位轉換器, 因此要兩個才能轉 28 線
多四個可以應用到其他地方, 應用時必須同樣是輸出
74ALVC164245 雖然是個雙向轉換器, 但是方向必須由 T/R1, T/R2 設定
這兩信號各決定 8-bit 的信號方向
所以若要輸出, 就至少 8-bit 是輸出
不可以 8-bit 中 4-bit 進, 4-bit 出
所以雖然我們可以借用多餘的腳位作轉換其他信號, 但就只能固定方向
以 Devkit8000 來說, 它就挪用其中一線當 UART 輸出, 所以我也跟著抄 ! XD
片段線路圖 :

注意 ! 這圖還缺限流電阻, 等等會說明
DSS_CLK 就是像素 clock
DSS_HSYNC, DSS_VSYNC, 聽名稱就知道是每行和每頁的 clock 信號
DSS_ACBIAS 則是翻轉信號
通通接上轉換器轉 3.3V 輸出
我的螢幕是 18-bit 色彩, RGB 各 6-bit, 並非完整 24-bit
所以我只接 8-bit 中較高的 6-bit 到 LCD
於是做出第一版電路

恩, 方向左右顛倒了
檢查線路後發現原來 LCD 有給 bit 決定左右方向
我一直看不懂 datasheet 說明, 原來會錯意了XD


用手工洗的 PCB 加上一狗票跳線, 想不到這樣居然能動XD
SD 卡直接這樣拉出來居然也能讀
電壓源 5V, 一開始偷料只用一顆轉 3.3V 的整流器
結果整流器發出高熱, 嚇到我了XD
另外, 這版接線從 OMAP3530 到準位轉換器中間沒有接任何東西
結果準位轉換器也發出高熱
後來查一下 beagleboard 的線路發現它在每個 DSS 輸出都有串個 10 歐姆電阻
所以...拿香跟著拜, 抄 ! XD
做出第二版


一樣是超根性的跳線連接
這次準位轉換器發熱的問題就消失了, 可能是那堆 10 歐姆限流生效
雖然有人說那電阻是用來消除訊號線過長產生的訊號反射現象
可是看上圖, 電阻所在位置離子板並不遠, 別家實驗板還有靠更近的, 一樣要上那電阻
所以至今原因依然不明...^^b
雙線性電源穩壓的溫度也正常多了
接著我又多做了些電路驗證其他項目
像是接感測器, 接觸控板控制器
外掛了兩片板子
務求所有功能都正確

結果這東西運作一些時間後越來越怪XD
不太穩定, 不過接線接到這樣再用手洗板絕對會抓狂
所以又放絕招了XD


找廠商做 !
本來說不想做的, 又是口嫌體直XD
板號本來想取 WC 系列, 叫做便所一號XD
不過這感覺並沒有意義只是想惡搞, 好歹也是錢堆出來的
所以改用 WT 系列 WuKC Technology Inc
我就是一人系統廠 ! XD
這次同時夾帶其他已驗證線路, 希望出來都能動
組裝起來比較一下

左上為本次的板子
右上為第二版
左下為學長(?), 是我第一次做 PCB 時的失敗品
右下為 Mini8100
前次的東西在此 : 2010 年 10 月 4 日
沒有一次成功的, 能一次就成我就天才了XD
吸取了前次教訓做了許多調整, 準則如下 :

1. 不要挑戰板廠極限
板廠說產能線寬 6 mil, 就不要真的全給他拉 6 mil 的線
前次就很多斷線, 這次就沒有
鑽孔孔徑最小 10 mil, 也不要就真的鑽一堆 10 mil 的孔, 一樣會 fail

2. 設定板型時, 板子四角要畫斜角 (類似導角)
90 度的邊角機器切出來就是正正的 90 度, 會割手的

3. 信號線背面要有接地銅箔擋著
沒這樣做很容易受干擾, 信號會不穩

4. 雙面貼料注意發熱問題
不要兩面貼料時兩面同位置都有高熱元件, 像是線性穩壓
這樣熱都散不去, 很容易故障
IC 背面是接地銅箔也比較穩定

5. 差分信號要緊貼, 背面接地
類似 USB 的差動信號都要如此做
兩條線要非常靠近, 盡量不要過穿孔翻面接
然後一條彎另一條就要跟著彎, 彎時不得有尖銳角
佈線距離越短越好

細節蠻多的, 有想到再補

背面

忘了留穩壓電容的位置, 只好這樣接XD
背面多是接地, 為了抗干擾
接著 demo !

全部的樣子 :

和 Devkit8000 類似的配置
USB-OTG 接 hub 後接滑鼠
RS232 改外接, 由於這張的 flash 是好的, 可以存設定
所以不用接 console 也能開機



撥影片


一開始有顏色問題


懷疑是輸出端的電阻所以做了條雙頭龍(誤)


結果 : 無效

做了張測試影像常用的 color bar 圖丟進去

奇妙的現象發生
區塊的顏色很正常, 沒有問題
但是小量變化的顏色間的交接點有問題

接著參考 chou7819 兄提供的方案一一測試
LCD Timing : 正確 47Hz / 51Hz / 59Hz / 70Hz / 89Hz 都測試, 問題仍存在
LCD 接線 : 一一量測, 用 framebuffer 填值後量訊號, 看看是否有接線短路現象
依序用 0x1 0x2 0x4 0x8 0x10 ... 0x8000 去填滿螢幕, 都正常
因為 rowboat 的 OMAP3530 驅動有將高位元複製到低位元延伸 24-bit 的行為
有些顏色會同時兩腳有訊號, 這不是短路, 可搜尋 DISPC_GFX_ATTRIBUTES 這個暫存器
有一個 bit 在設定這個
正抓不著頭緒時, 拿示波器探針亂插(?)無意間發現當探針插在 DSS_CLK 的輸出時狀況會改善
於是就在 DSS_CLK 接準位轉換器後的輸出端串上一顆 200 歐姆電阻


放大看 !!

把接點用刀片切斷, 然後接上一顆 0603 的 200 歐姆電阻
這顆我焊了好久 !

接著再打開 color bar 圖


恢復妥善, 終於圓滿(?)了
那顆電阻阻值必須在 100 歐姆以上
20, 50 歐姆都還是會有問題, 但狀況會變輕
各顏色的速度是跟 CLK 同步的, 為什麼就這根 CLK 最特別, 真奇怪...

最後, 比較 :

面積較小, 功能當然更少 ! XD


2012 Q1 完工

還沒有長時間測試
如果都沒問題以後實驗都用這張 !
話說我的專長其實是軟體, 硬體只是興趣XD
這東西應該過不了安規或是 EMI 的驗證吧
但是啥都能拉線出來, 做實驗比較方便

目前問題 : 會熱當機XD
因為超了頻, 又沒調整 framework, 應該要動態關閉用不到的設備
這就是維護 BSP 的工作了, 這需要時間調整
暫時用加散熱片解決XD


搬家後記 :

這台機器最後做成了平板的樣子


打開來裡面的樣子


可以打鳥XD

觸控板接上, 移植驅動, 校正, 後來還上了感測器
通通都能動, 可是還是會熱當機, 慘啊...
本來想風光的發篇 "自製平板電腦" 的文章, 一定威到爆XD
不過這個測不過, 這台就不太有用啦
加上記憶體不足無法升 4.0, 只好收起來庫存


我花了相當多的錢和時間搞這台, 學到不少經驗, 雖然最後沒成功但還算是划算的投資
不過接下來若要做一樣的東西我會更謹慎的評估 (所以到目前為止都還沒動XD)

沒有留言:

張貼留言

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