Mini210S 開発キット詳細URL
第XIX章 点線を描画
第一節 S5PV210 LCD コントローラ
LCDが文字、画像を正常に表示するには、 LCDドライバの他に、LCDコントローラも必要です。LCDコントローラの機能は コントローラの主要機能は、システムメモリバッファ内のLCD画像データを外部LCDドライバに送信され、必要な制御信号を生成します。例えば VSYNC、HSYSNC、VCLK。S5PV210 内部に LCDコントローラが集積します、構造図は:
コントローラはVSFR、VDMA、VPRCS、VTIMEとビデオ•クロック•ジェネレータなどのいくつかのモジュールで構成されます:
1)VSFR は121組のプログラマブルレジスタグループ、1セットのgamma LUT レジスタ組(64個レジスタ)、1セットの i80 コマンドレジスタ組(12個レジスタ)と5つの 256 * 32パレットメモリのセットで構成されます。主要機能はLCDコントローラのコンフィギュレーションです。
2)VDMAは、LCD専用のDMA転送チャネルで、CPUの介入なしに、自動的にシステムバスから取得したビデオ•データをVPRCSに転送します。
3)VPRCSは 受信したデータを特定のフォーマット(例16bpp/24bpp)に変換し、データ•インタフェースを通じて外部LCDに送信します;
4)VTIMEモジュールはプログラマブル•ロジック•コンポーネントとLCDドライバ•インタフェース•タイミング制御機能、VTIMEモジュールはVSYNC、HSYNC、VCLK信号を生成します;
S5PV210 LCDコントローラ主要特性:
1)3つのインタフェースをサポート:RGB/i80/YUV;
2)DMAプログラマブルをサポート
3)5つの 256 * 32ビットカラーパレット
4)最大16MBの仮想画面
5)透明オーバーレイ(overlay)をサポート
6)多仕様/解像度のLCDをサポート
第二節 プログラム説明
完全なコードは、ディレクトリ19.lcdご参照ください。そしてMini210Sの標準配置は4.3ichLCD、タイプはH43-Hsd043I9W1。
1. main.c
手順は3つあります、中に ステップ2、3はLCD相関で:
ステップ 1 シリアルポート初期化;
ステップ 2 LCD初期化;
ステップ 3 メニューをプリントアウト、選択は:画面をクリア、クロス描き、水平線描き、垂直線描き
2. lcd.c
(一) 関数 lcd_init():
S5PV210 lcd コントローラコンフィギュレーションは、下記図ご参照ください:
上記のシーケンスを参照して、 lcd.c 中関数 lcd_init()は lcdコントローラを初期化します、手順は9つあります:
ステップ 1 関連ピンをコンフィグし、LCDに使用します、コード:
GPF0CON = 0x22222222;
GPF1CON = 0x22222222;
GPF2CON = 0x22222222;
GPF3CON = 0x22222222;
関連ピンは GPIO ピンの GPF0/1/2/3:
゛XvVD0゛を検索して、ピン構造図が下記の通りです:
ステップ 2 バックライトをオンにする、コード:
//バックライトをオンにする
GPD0CON |= (1<<4);
GPD0DAT |= (1<<1);
原理図:
ステップ 3 DISPLAY_CONTROLコンフィグ、データ出力パスを設定して、チップマニュアルに従い設定します。
ステップ 4 VIDCONxコンフィグ、インタフェースタイプ、クロック、極性、LCDコントローラ等;
1) VIDCON0:
• ENVID_F=1、 フレームの終了後LCDコントローラをオンにする;
• ENVID=1、 LCDコントローラをオンにする;
• CLKSEL_F=1、 クロックソースを HCLK_DSYS=166MHzに設定;
• CLKDIR=1、 必要分周を選択;
• CLKVAL_F=14、周波数係数15、すなわち VCLK = 166M/(14+1) = 11M;
• RGSPSEL=0、 RGBパラレル;
• VIDOUT=0、 RGBインタフェースを使用;
未設定の bit はデフォルト値を使用します。
2) VIDCON1:
VIDCON1次の2つのbitを設定します:
• IHSYNC=1、極性反転
• IVSYNC=1、極性反転
極性反転の理由は下記の通りです:
H43-Hsd043I9W1.pdf(p13) タイミング図:VSYNC と HSYNCは低パルスです
S5PV210 マニュアル(p1207) タイミング図:VSYNC と HSYNC高パルスなので、極性反転する必要があります。
ステップ 5 VIDTCONxコンフィグ、タイミングと長さと幅を設定します;
レジスタを設定する前に、LCD のタイミングセットを説明します、下記図ご参照ください:
---続く