章為原作者折騰搗鼓之后創(chuàng)作,有一定參考價(jià)值,歡迎交流學(xué)習(xí)。全文共2193字,配圖共25張,預(yù)計(jì)閱讀需要5-10分鐘!
在北京大柳樹鬼市買的七寸DVD導(dǎo)航車機(jī),20元。買回來接電源開機(jī),發(fā)現(xiàn)卡在logo不動(dòng),奧迪Q5的。估計(jì)是第三方機(jī)器
找遍網(wǎng)絡(luò)沒找到這款機(jī)器的資料,當(dāng)時(shí)買的時(shí)候以為是安卓系統(tǒng),有視頻等輸入,結(jié)果發(fā)現(xiàn)竟然是wince系統(tǒng),視頻輸入是lvds數(shù)字式的。
心想,翻車了唄!拆開看了一下, 還是比較復(fù)雜,主控紅色核心板,其他ic一大堆。
內(nèi)部情況
大致梳理了一下機(jī)器的ic和結(jié)構(gòu)。驚喜的發(fā)現(xiàn),TFT屏幕驅(qū)動(dòng)芯片tw8816支持模擬信號(hào)輸入。模擬信號(hào)支持復(fù)合視頻,色差,RGB,可惜沒有引出。
查了一下芯片的pdf,應(yīng)該做適當(dāng)?shù)脑O(shè)置,就可以改成av輸入信號(hào)了
大致分析了一下電路結(jié)構(gòu)。該機(jī)分兩塊電路板,下面一塊是soc核心板和tft驅(qū)動(dòng)(B板),上面一塊是各種電源,音頻,單片機(jī),接口(A板)等等。
lvds串行數(shù)字信號(hào)從A板輸入,然后接到B板通過max9218,將lvds轉(zhuǎn)成并行dtv數(shù)據(jù),然后接入到tw8816的dtv數(shù)字電視并行接口中。tw8816再處理成tft lcd的驅(qū)動(dòng)信號(hào)。
A板
B板
其中核心板的wince系統(tǒng)直接可以驅(qū)動(dòng)lcd,tw8816的lcd驅(qū)動(dòng)和核心板的lcd驅(qū)動(dòng)通過兩片fst16233進(jìn)行切換。也就是用戶選擇是顯示lvds的視頻還是wince的視頻。
為了讓屏幕顯示tw8816的內(nèi)容,直接短接fst16233信號(hào)切換引腳到地,強(qiáng)制選擇從tw8816的信號(hào)作為lcd驅(qū)動(dòng)
接下來結(jié)合芯片資料,摸索著焊接了i2c接口線和av復(fù)合視頻輸入線,并在視頻輸入上串上了75歐姆阻抗電阻和耦合電容,接上了蓮花頭,找了臺(tái)紅白機(jī)作為視頻信號(hào)源
引出的單片機(jī)和蓮花頭:
由于tw8816中有大量關(guān)于tft lcd屏幕參數(shù)的設(shè)定,然而我并不想詳細(xì)了解。既然機(jī)器能開啟并顯示奧迪logo,就說明tw8816中的各種設(shè)置是OK的。要做的就是讀出來就行了
TW8816大概有幾百個(gè)寄存器,分成256兩頁:
通過跑線路,tw8816的i2c總線來自于A板上的一顆STM8單片機(jī),它對(duì)tw8816進(jìn)行了寄存器的設(shè)置工作
用接口神器“Bus Pirate”接在tw8816的i2c接口上,然后進(jìn)入i2c的嗅探模式。上電的一瞬間,所有i2c上的寫入寄存器的操作全部拿下
bus pirate界面:
嗅探到的i2c通訊內(nèi)容:
用“Bus Pirate”嘗試了一下操作I2C向tw8816的寄存器寫入內(nèi)容,讀取內(nèi)容都沒問題。于是開始參照手冊(cè)設(shè)置一些寄存器的內(nèi)容,以便能支持模擬信號(hào)輸入
通過不懈的努力,最終需要對(duì)輸入選擇,輸入信號(hào)格式,各種縮放,邊距等寄存器的設(shè)置。最終讓接入的av信號(hào),正常的顯示在了屏幕正中
這個(gè)時(shí)候,A板的唯一的用途就是上面的stm8單片機(jī)向B板的tw8816做寄存器設(shè)置,以及一些12v轉(zhuǎn)5v。如果去掉A板,用一片單片機(jī)取代,然后直接在B板輸入5V應(yīng)該就可以做到的
為了驗(yàn)證這個(gè)想法,需要自己先用脫離A板的單片機(jī),手動(dòng)設(shè)置幾百個(gè)寄存器的值。看看是否可行
手動(dòng)設(shè)置的工作量太大,這個(gè)時(shí)候也不可能直接就上單片機(jī)編程。于是就用神器“Bus Pirate”的python庫(kù)來實(shí)現(xiàn)
下圖是python環(huán)境jupyter-nb的界面:
大概就是用電腦操作“Bus Pirate”,寫入所有寄存器的值。python很方便易用,是俺的主要編程工具之一。幾下就完成了驗(yàn)證工作。驗(yàn)證的結(jié)果就是,脫離了A板單片機(jī),直接通過“Bus Pirate”的i2c向tw8816設(shè)置寄存器后,畫面可以正確顯示。
但過程中有一些插曲,去掉A板后發(fā)現(xiàn)背光不亮,結(jié)果發(fā)現(xiàn)是還有屏幕12V的背光供電控制,直接接地即可亮屏。另外就是設(shè)置完所有寄存器后還是白屏,折騰一天發(fā)現(xiàn)是VGH VGL電壓沒出來進(jìn)屏幕。這個(gè)也是受控于A板的,直接找到這部分電壓驅(qū)動(dòng),飛線強(qiáng)行啟動(dòng)。
脫離A板和B板的排線:
脫離A板后,拆下B板上的核心板和藍(lán)牙模塊用不上了:
下一步就是單片機(jī)編程了。程序功能簡(jiǎn)單,就是寫一堆數(shù)據(jù)到i2c就行了
隨便找了一片8腳的pic單片機(jī)pic12f675,網(wǎng)上找了一個(gè)gpio模擬i2c的程序
把從“Bus Pirate”嗅探到的數(shù)據(jù),改成C語言的格式,編程二維數(shù)組。tw8816的寄存器幾百個(gè), 分成兩個(gè)page。寫到變量page00和page01中。其中二維數(shù)組第一個(gè)元素表示寄存器號(hào),第二個(gè)是值。比如const char page00[][2]={ {0x00,0x22},{0x01,0x83},
表示0號(hào)寄存器內(nèi)容0x22,1號(hào)寄存器內(nèi)容0x83
為了讓程序美觀(主要是顯擺俺的C語言功底),用指向二維數(shù)組的指針的數(shù)組const char (*page_buff[])[2]={page01,page00};來進(jìn)行兩頁數(shù)據(jù)循環(huán)寫入。這樣寫可以方便的進(jìn)行page和額外數(shù)據(jù)組的添加。
程序主要部分(因?yàn)槎S數(shù)組指針數(shù)組的數(shù)據(jù)定義很好,所以程序簡(jiǎn)潔美觀):
一陣調(diào)試,燒寫,測(cè)試,改程序的漫長(zhǎng)過程之后。這片pic單片機(jī)開機(jī)上電就對(duì)tw8816進(jìn)行設(shè)置。一陣操作猛如虎,畫面完美呈現(xiàn)!
所有電路和軟件方面的驗(yàn)證工作都OK了,下一步就是裝回和改外殼等常規(guī)操作了,估計(jì)一兩天后再進(jìn)行!本文完!
謝謝觀看!
瀏覽更多精彩內(nèi)容請(qǐng)登錄數(shù)碼之家網(wǎng)站
技術(shù)交流請(qǐng)聯(lián)系原作者
作者:orsonzou
本文來源:數(shù)碼之家
GA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801實(shí)物尺寸圖
VGA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801簡(jiǎn)介
VGA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801將電腦輸出的VGA信號(hào)轉(zhuǎn)換為電視可以接收的AV信號(hào),支持電腦/電視同步顯示,支持轉(zhuǎn)換的分辨率從最低800*600p,到最高1920*1200p點(diǎn)對(duì)點(diǎn)技術(shù),圖像清晰,適合從電腦上播放到電視上,使您可以輕松體驗(yàn)影院效果
VGA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801功能
01.1個(gè)VGA信號(hào)輸入端口
02.1個(gè)VGA信號(hào)輸出端口,1個(gè)AV輸出端口,1個(gè)S-Video輸出端口
03.VGA輸入輸出支持多種分辨率:800*600p@60/75Hz,1024*768@60Hz,1280*l024@60Hz,1440*900@60Hz,1680*1050@60Hz,S1920*1080@60HZ,1920*l200@60Hz (最佳分辨率:1024x768@60Hz)
04.支持電腦、S-Video、Video同步輸出、實(shí)時(shí)顯示
05.支持全球電視視頻標(biāo)準(zhǔn)NTSC(臺(tái)灣,美國(guó)),NTSC-EIAJ(日本),PAL(歐洲,中國(guó)),PAL-M(巴西),PAL-N(烏拉圭,巴拉圭)等
VGA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801接口說明
VGA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801接口說明
VGA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801連接示意圖
VGA轉(zhuǎn)S-Video/AV轉(zhuǎn)換器1801連接使用示意圖
腦的顯示器是可以當(dāng)做電視使用的,僅需要注意兩個(gè)方面的問題:
一個(gè)是顯示器亮度對(duì)比電視較差,僅適合近距離觀看;
一個(gè)是顯示器或機(jī)頂盒是否具有聲音輸出,否則沒有聲音輸出。
一起來看看,具體如何將電腦顯示器當(dāng)做電視使用的吧!
實(shí)現(xiàn)的具體思路
無論是通過網(wǎng)絡(luò)機(jī)頂盒還是運(yùn)營(yíng)商的IPTV機(jī)頂盒來觀看電視,均是通過設(shè)備的HDMI接口同電視進(jìn)行連接;并且通過HDMI線纜同時(shí)傳輸圖像與聲音信號(hào),顯示器端同樣具有該接口,可以利用HDMI接口和線纜將機(jī)頂盒與顯示器連接,從而觀看電視。
具體實(shí)現(xiàn)過程
1.確定機(jī)頂盒端的連接端口
機(jī)頂盒端的HDMI接口,類似如下圖中的扁平接口;
可以通過該接口進(jìn)行傳輸信號(hào),HDMI接口已經(jīng)成為了機(jī)頂盒的標(biāo)配接口。
2.確定顯示器的連接端口
顯示器作為專業(yè)的顯示設(shè)備,一般支持的接口類型較多,可選用HDMI接口連接;
至于老式顯示器,僅支持VGA接口,具體的實(shí)現(xiàn)方式后面將會(huì)談到。
3.線纜連接
購(gòu)買適合長(zhǎng)度的HDMI線纜,將機(jī)頂盒與顯示器連接即可;
若顯示器無法正常識(shí)別信號(hào)源,可以在顯示器設(shè)置中選擇輸入源端口即可。
4.其他問題
老式顯示器,僅支持VGA端口,通過購(gòu)買HDMI轉(zhuǎn)VGA端口轉(zhuǎn)接線即可;
老式機(jī)頂盒,僅支持AV線纜,也可以通過AV線纜轉(zhuǎn)VGA同顯示器進(jìn)行連接。
至于顯示器的聲音輸出,有兩種解決方案:一種是通過顯示器自帶的喇叭進(jìn)行播放;一種是通過機(jī)頂盒端添加音響,實(shí)現(xiàn)聲音的播放。