日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WINCE基于CH7024实现TV OUT (VGA)功能

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WINCE基于CH7024实现TV OUT (VGA)功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

********************************LoongEmbedded********************************

作者:LoongEmbedded(kandi)

時間:2011.01.03

類別:WINCE驅動開發

********************************LoongEmbedded********************************

?

系統:WINCE6.0+S3C2443

?

實現原理

CPU(在此為S3C2443)輸出的RGB數字信號通過CH7024轉換成PAL制式的模擬信號輸出到電視。

?

1.?????? 硬件設計

?

圖0

?

?

2.?????? CH7024

2.1?? CH7024引腳的描述

D[0:23]

圖形控制器(這里是LCD控制器)通過這24個輸入引腳把RGB數字信號輸入到CH7024中。

?

H

水平(也即行)同步信號輸入/輸出端,當SYO控制位(0x0E[1])0,這個引腳作為輸入數據的水平同步信號輸入端;當SYO控制位(0x0E[1])1,這個引腳作為輸入數據的水平同步信號輸出端

?

V

垂直(也即幀)同步信號輸入/輸出端,當SYO控制位(0x0E[1])0,這個引腳作為輸入數據的垂直同步信號輸入端;當SYO控制位(0x0E[1])1,這個引腳作為輸入數據的垂直同步信號輸出端。

?

DE

數據使能引腳,當這個引腳為高電平的時候,輸入的圖像數據是激活的(active);,當這個引腳為低電平的時候,輸入的圖像數據是空白的(blanking),這個引腳是有CPUGPC4引腳來控制的,那么應該怎么配置呢?先看CPUGPC4引腳的描述

?

1

?

2

?

SPD

串行端口(serial port)數據輸入/輸出引腳,這個引腳作為雙流向的(bi-directional)串行端口,在此作為輸入功能,和CPUIICSDA連接,我們就算是通過IIC總線接口來讀寫CH7024的寄存器的。

?

SPC

串行端口時鐘輸入引腳,這個引腳作為串行端口的時鐘輸入引腳。在此作為輸入功能,和CPUIICSCL連接。

?

RESET

復位輸入引腳,這個引腳被內部拉高,如果輸入低電平,CH7024就保持在上電的復位狀態(power-on reset condition);如果輸入高電平,那么就可以通過IIC總線接口來寫CH7024的復位寄存器0x03h[1]來復位所有的控制寄存器,見CH7024中對復位寄存器的描述

?

3

?

CVBS

混合視頻(composite video)輸出引腳,在S-video Y引腳沒有使用時,這是個主要的混合視頻輸出腳,但如果S-video Y引腳使用時這個引腳就關閉輸出了。

?

Y

亮度輸出(luma output)引腳,在主要的CVBS輸出引腳沒有使用的時候,這是個S-video亮度輸出引腳。

?

C/CVBS

色度(chroma)/CVBS輸出

S-video使用的時候,這個引腳輸出S-video色度,當如果雙重的CVBS輸出有需要,這個輸出引腳就用來作為除首要的CVBS輸出(也即上面的CVBS引腳)之外的次要的CVBS輸出。

?

P-Out

像素時鐘輸出引腳,這個引腳可以提供時鐘信號給圖像控制器(比如LCD控制器),這可以作為基準頻率(reference frequency),當然了這個引腳也可以直接輸出時鐘給CH7024自身,這樣情況下CH7024就工作在主模式。

?

XI/FIN

晶振輸入/外部基準輸入引腳。

?

XO

晶振輸出引腳

?

XCLK

外部時鐘輸入引腳,這個時鐘輸入信號時作為H、VDED[23:0]這些信號的輸入基準。

?

2.2?? CH7027作為IIC從設備的地址

#define AVO_WRITE???????? (0xEC + 0) //CH7024寄存器內容的IIC從設備的地址

#define AVO_READ ??????? (0xEC + 1)//讀取CH7024寄存器內容的IIC從設備的地址

因為我們的系統中CPU是通過IIC接口來camera驅動的TVP5150AAVOUT驅動CH7024相互的,所以需要分配好它們作為從設備的地址,CH7024datasheet好像是找不到它作為IIC從設備如何確定從地址,這里是我自己定的,只要不沖突就可以了,應該如此理解。

?

3.?????? AVOUT驅動模型

因為CPU是通過IIC接口來操作CH7024的,所以我借鑒了camera驅動的模型來建立AVOUT驅動的模型,下面我們來看AVO_Init函數中的主要內容:

?

4

下面來看看AVO_Initialize的函數體:

?

5

接下來看CH7024_WriteAndReadBlock的函數體

?

6

CH7024_YCbCr8bit_TV數組的內容如下:

?

7

這個數組一維的值是CH7024的寄存器地址,二維的值是寄存器對應的內容。那么這個數組需要包含CH7024哪些寄存器和其對應的值是多少了,這不僅和CH7024工作在主或者從模式有關,還和很多選擇和設置有關,下面部分就來看看是如何得出這個二維數組的內容的

?

?

1.?????? 如何使用CH7024Setting Wizard.exe來獲取所需要初始化的寄存器的值

雙擊Setting Wizard.exe,選擇Run Wizard來進入參數選擇向導。

?

8

選擇Unusing Data Enable Signal

?

9

選擇Unusing Data Enable Signal的依據見CH7024datasheet中的下面的描述

?

10

選擇輸入數據的格式

?

11

12描述在MULTI=0時,對于不同的IDF的總線數據

?

12

13描述MULTI的使用

?

13

14描述告訴我們,只有在IDF=2,34時才用到HIGH控制位

?

14

15IDF=0模式的RGB數據描述

?

15

16IDF=0模式的RGB數據描述

?

16

選擇輸出

?

17

18關于SEL_R的描述

?

18

根據不同的選擇生成可能合適的HTIVTI

?

19

?

20關于XCH的描述

?

?

20

?

?

21

?

?

2.?????? 如何選擇HTIVTI,如何調試出正常顯示的圖像

?

22

22中選擇input之后,會在右邊的生成NHTIVTI,那么我們該選擇哪一組會更有利于我們進一步的調試呢(不是選好一組數據后生成寄存器的值之后就ok),比較好的一組是VTI大于272/0.85(320)的有比較接近的一組,那自然而然我們開始肯定會選擇圖22VTI=322這一組數據,雙擊322對應得這一行,彈出上面的對話框,選擇確定后點擊右下角的“Gen File”,然后會生成一組寄存器及其的值的文件在Setting Wizard.exe所在的目錄下,生成的文件名是RegSetting.ini,見下圖

?

23

我們從RegSetting.ini中獲得我們需要對CH7024哪些寄存器初始化,它們的值是多少,在RegSetting.ini中都有,這里面的值就是用來填充圖7CH7024_YCbCr8bit_TV數組的內容,這樣我們就可以在電視機上驗證我們對CH7024寄存器的初始化是否正確了。

?

VTI=322這組數據驗證后發現出來的圖像數據和在LCD上顯示的還有很大的差異,就我調試這時候存在的問題有下面幾點,下面就沒一點存在的問題怎么解決的總結一下:

注:下面提到的圖像都是指在電視機上顯示的圖像

圖像左移(也就是左偏)和上移(也就是上偏)

為什么會這樣呢?應該是由于同一組設置參數產生的圖像在不同電視上顯示的差異性造成,故須預留一部分黑邊兼容不同電視差異,這樣在不同電視上都可以全部顯示輸入數據,但是在有些電視上會出現黑邊沒有充滿電視屏幕,所以我們在圖22中選擇更大的VTI那一組,經過調試發現,在VTI=360這一組的圖像不會左移和上移了。

?

圖像向上快速移動

這種情況,我們可以微調VBPD的值,我有89后就可以定住圖像了,不會往上移動了,當然,微調VFPD也可以。

?

LCD上顯示的圖像在電視機上在水平方向大概只能顯示95%。

怎么解決這個問題呢?看下圖

?

24

從上圖第1Eh1Fh的描述可知,這兩個寄存器的值越大在水平方向上顯示的TV圖像就越大,所以根據我們的問題,我們就需要把這個對TVHA的值調小,這樣才能讓在LCD上顯示的圖像在電視機上可以100%顯示,所以我們就需要在CH7024_YCbCr8bit_TV數組中添加者兩個寄存器,那么它們的值是多少合適的,這就根據調試的效果來決定了。

?

圖像的顏色顯示等和LCD上顯示的顏色不一致

可以通過對寄存器0x050x060x070x080x09的調整來滿足。

?

調試總結:

要利用Setting Wizard.exe工具來生成我們需要的寄存器的值。

要認真搞清楚寄存器對應的作用,如何控制和跳轉。

熟悉CH7024的引腳的功能。

?

?RK27電視輸出功能詳解V1.0_百度文庫

http://wenku.baidu.com/view/e3fbc638376baf1ffc4fad32.html

?

?

?

?

總結

以上是生活随笔為你收集整理的WINCE基于CH7024实现TV OUT (VGA)功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。