一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 8171|回复: 1

NEC测试程序

[复制链接]
发表于 2009-2-27 21:14 | 显示全部楼层 |阅读模式
好一段时间没有过来了!因为太多的时间去开发和调试上面真是没办法。; _) K6 Y$ M$ g6 |: c- O4 x
现在我发些屏的驱动程序给大家这个是NEC的VGA屏是模拟屏所以只能显示RGB三色只是测屏用的呵呵, Q/ j3 P2 U  T4 P6 ]

$ _& A7 Z5 \' [* c
* E+ H6 O1 \2 Y" }% i) h( m
2 z- q  j. a, g4 vmodule NL6448AC30_09( gclk,
1 e- i2 J  M( }. ^" g+ z                   tft_clk,
2 [& J7 n& b' J8 l" H                   hsync,- x9 q+ [) h. x
                   vsync,
7 U9 n% x& B1 ~5 ]  J+ `! C                   DE,# f: d: N+ J1 ~
                   R,
  [) n9 n" T' k# p  _                   G,
! e  L6 p1 l3 v0 o) T7 H0 Z4 p                   B   );5 \- F& y8 n$ g( O

2 J* v% m( l) l8 v# L9 Xinput   gclk;
# @8 a  Y7 n4 J0 Boutput  tft_clk;0 s9 ]" l4 C# a0 h# n* Q
output  [1:0]R,G,B;2 e9 _9 X* p8 z3 J7 _
reg     [1:0]R,G,B;
; C  l  T' s) ~/ Joutput  hsync,vsync,DE;
! _: B' t: j# d" \, I% wreg     hsync,vsync,DE;# R  B" }( Z" S
reg    [9:0]clk_count,hsync_count;
$ E9 a& x3 m  W* e9 p( Kreg    div_count;$ E: M1 d2 Y* Q5 C! n

$ ?" o* M  J1 s8 i9 Gassign tft_clk = div_count;
5 U' B2 [3 s) Z4 O9 M//分频程序对50MHZ产生25MHZ分频供LCD时钟所用! H' ?! [  M. \0 A( @5 I6 P- ~5 ^
///////////////////////////////////////////////////////////////////////////////////////////////////////
+ \; f* M- W' y. oalways @(posedge gclk)               //gclk全局时钟50MHZ                                             /// _7 h  ~+ }3 j
begin                                                                                               //
8 H( b" q# m3 E. I- ]& x  w+ d4 X1 {   div_count <= div_count + 1'b1;    //将50MHZ 2分频后得到25MHZ供LCD时钟所用                         //
5 ?* I; w4 L1 n+ f+ j4 v$ _5 Z///////////////////////////////////////////////////////////////////////////////////////////////////////                                                                                   
! J- Y# p0 _( m) L0 j4 n- ~3 t                                                                                                                      % U+ `( d% G6 Y
   if(hsync_count < 2)vsync <= 1'b0; //产生场频时钟“在行时钟开始的头2位行时钟线为低电平其它为高电平”                        . _. X' J0 ?$ d. }% I- @9 x/ X
   else vsync <= 1'b1;                                               8 F0 E8 [9 k4 z- _) D
                           
. a/ A& }7 n% R. xend                                                         
( @" X) d3 e; v6 e: w' y' m                                                    $ n- z# j+ p- ]' ^, T/ B+ g
always @(posedge div_count)  //TFT LCD 用时钟线                                                                                  //
5 n2 e# S1 t% ^7 U6 r% ubegin                                                                                                                           //- h. z. g& `% l4 k1 y+ Y
                                                                                                                                 //
( X) k3 O0 j" O' g/ B   if(clk_count < 799)clk_count <= clk_count + 1'b1;   //时钟计数器用来产列时钟产生条件                                          //6 f4 j$ r& a1 P% J
   else clk_count <= 10'b0000000000;                                                                                             //* G' x1 {# L6 w' Y! Z7 z% _. N/ @
                                                                                                                                 //0 }. Z9 W* r9 n0 W6 k
end   
0 V1 ~5 K' Z9 B: Y6 {' P' K% g  o4 @7 Q  ?
always @(posedge tft_clk)* }8 Q! {2 J2 F, R; }9 x; @# g
begin: l( x, R- A( Y7 e
   if(clk_count > 142 && clk_count < 783)DE <= 1'b1;  // && hsync_count > 32 && hsync_count < 513                                //
+ b1 G9 u' ^% ~+ g5 p! z! v   else DE <= 1'b0;                                                                                                              //  N8 s- K5 {; D" B! m8 Z7 [3 [
                                                                                                                                 //
1 {+ u: U% F: P                                                                                                                                 //: h* g3 _! O. {$ X  u  u% n' w
   if(clk_count > 94 && clk_count < 799)hsync <= 1'b1;  //产生行时钟线“一个行的低电平包含有96个时钟脉冲”                         //
+ I& A; Q- k- z2 M4 _% [   else hsync <= 1'b0;                                                                                                           //  _& [! C$ N$ x! h+ r& u' p
                                                                                                                                 //+ D/ U) {5 z' Q  U
end                                                                                                                             //2 I8 U2 g! H8 g7 v0 Z2 W7 X
                                                                                                                                 //
% D# R4 M( W$ T: \& s                                                                                                                                 //& A& f1 J# K3 v1 g$ z
always @(posedge hsync)                                                                                                          //
" U) L( m$ L+ J' @( Z- ^begin                                                                                                                           //& _3 g( p- Z! o7 h( q3 o
  if(hsync_count < 524)hsync_count <= hsync_count + 1'b1;  //对行进行计数用来产生场时钟制造条件                                  // 4 P$ G8 `7 @4 M7 b& |" `$ ]
  else hsync_count <= 10'b0000000000;                      //一个场含有525个行时钟,当行计数器不大于525的时候加1 否则清零         //
6 I8 ?1 b6 I) Y1 p$ r5 m# \2 @& D                                                                                                                                 //: @# U" o$ V( ~9 h# s: G
end                                                                                                                             //7 i: M: ~, h. G
                                                                                                                                 //0 D5 H- J7 _$ P( o7 @
                                                                                                                                 //4 Q  d6 Q& K( Q( Q
            
! a5 p; h& b, z& `4 t1 x
: t/ i+ h# `1 X" J& x. O[email=always@(posedge]always@(posedge[/email] tft_clk)
* J& ]) l3 @1 P) R+ M// black control ! r' \! X+ q, O3 P# C+ |. V
if((clk_count > 142) && (clk_count < 251)) + a: M  f. U+ k( T/ s6 [2 J
   begin 0 ^: v8 A0 W5 P" {3 x+ q
     R[1:0] <=0; : Z. r6 V3 o# g+ Q$ m, {4 K
     G[1:0] <=0;
  y2 C! F& }! ^6 Z- t4 w1 a     B[1:0] <=0; 9 ?' C2 `1 ?; ~' Z
   end 4 }, v4 d) d7 n# c3 Z- ~
else
0 ?  \2 @( ~& P9 I5 [+ f. C: V# I  begin + w8 Q% T4 d: N( F( y
    if((clk_count > 252) && (clk_count < 358))
3 k& _! p/ n3 ?; m      begin
$ S! I# o9 q; ], f3 x8 D        R[1:0] <=3;
' [" M% j3 b( t        G[1:0] <=0; 9 M, C# T3 B" v- L) \, v8 f* h$ [
        B[1:0] <=0; % x  g/ ?9 _: @4 w1 A, c
      end & Q/ |" Z/ L6 S2 s8 q9 d6 F$ y
    else$ i# B" \! M4 D, P
      if((clk_count < 359) && (clk_count < 465))   h8 _: T: A3 z, `
        begin
: B5 K5 V/ X: u( ]# L& A# k% K* b          R[1:0] <=0;
" i3 `( z* z! T* h          G[1:0] <=3; 5 M9 N4 u) ]5 a  i; z0 P2 L
          B[1:0] <=0; " A4 \7 {* R1 I) J- Z% w, r
        end - b* G8 B% _3 w9 J6 @* ~9 F5 H; `
      else
0 E+ C2 O1 C- n  r( ]! l        if((clk_count < 466) && (clk_count < 572) )   c" i+ L4 w1 p; i
          begin : ]! W" _! ~7 U
            R[1:0] <=0;
3 p: v* w3 \4 X2 y7 J            G[1:0] <=0; & [5 D. }% |: i8 \) Y+ M  ], o9 A
            B[1:0] <=3;
6 k. }0 ^5 k& E  R          end : c, Q7 ]  L. L3 F5 Y) \
      else
7 b2 X- N* H2 w4 a8 {        begin
& B7 _( C4 [2 O          R[1:0] <=3;
( k4 x; J$ z; h6 i: j          G[1:0] <=3;
5 H5 C2 L4 R, D; N& v          B[1:0] <=3; 4 B9 G  B' E2 s. `7 o" \7 r5 R5 l
        end 3 ?, ^1 F1 p2 \3 C
end
3 Z1 e1 D6 F- }2 [' T7 M
- {% \- E2 h+ E  s3 G; Bendmodule3 @, a" s, C1 W/ S; _
- l% `4 P! E' D1 e) h3 |  Y) c
[ 本帖最后由 kenson 于 2009-2-27 21:15 编辑 ]
 楼主| 发表于 2009-2-27 21:20 | 显示全部楼层
有关这个屏的资料如下:5 v5 l+ a  r) ?4 j
0 u' e9 X: Y* }2 E% D8 [
CN1:映像, 同期信号 入力& n, {) x! v/ S2 m$ Q1 \$ m
ピン番号
信号名機能&#12539;規格&#12539;動作
1
RED赤 映像信号, 入力インピーダンス 75オーム, 0.7Vp-p
2
GND接地
3
GREEN緑 映像信号, 入力インピーダンス 75オーム, 0.7Vp-p
4
GND接地
5
BLUE青 映像信号, 入力インピーダンス 75オーム, 0.7Vp-p
6
GND接地
7
Hsync水平同期信号, TTL, 負論理(負パルス)
8
GND接地
9
Vsync垂直同期信号, TTL, 負論理(負パルス)
10
GND接地

# ]0 A0 }0 ?5 ]8 n2 hCN2:制御信号, 電源 入力
$ r0 l9 ~' y0 c) c" E$ |- O
ピン番号
信号名機能&#12539;規格&#12539;動作
1
GND接地
2
CLKドットクロック, TTL, 800 clock 1ライン(1Hsync)毎
3
GND接地
4
DEデータイネーブル(表示データ有効&#12539;表示位置制御), TTL, 正論理 ! Z; _% m! p/ B1 [! V3 Y
Hi = RGBデータ有効, Lo = RGBデータ無効, open時 5V
+ q( Z" r1 m9 i$ k  W% ^  C1 yMODE = HiでDE有効, MODE = Lo時はDE無効(Hi/Lo いずれでも良い)
5
?不明, (15KHz時のフィールド入力か?). X3 n* w2 F  Y6 P: {" K
* PC-9821Np/Nfではopen, open時 = Lo, Hi にしても変化無しのようだ。
6
GND接地
7
MODE表示タイミングモード選択, TTL
  C  A; N/ Z. \Hi = DE モード(DE制御有効)# K% i$ ?( M6 O  E' C2 W% ~
Lo(open) = 固定モード(DE制御無効, 規定の固定タイミング使用): {( a1 ]. o8 {, j1 }+ M" y% _  [
* PC-9821Np/NfのHsync24/31KHzはDEモードで使用されている。
8
SCAN水平走査選択, TTL0 ]( G1 T, o, t/ d- Y
Hi = ダブルスキャン(Hsync 15KHz用)$ N5 U+ o; N+ @* T: e
Lo(open) = シングルスキャン(Hsync 24/31KHz用)
& L% z. o# q- r6 Q! N; t* Hsync 15KHz時Loで垂直が半分に潰れたワイド表示を上下に2個表示。
9
MASK上下マスクキング(上下非表示, 垂直表示開始位置制御), TTL7 ~' a3 e6 w" F! W' F7 w
Hi = 上下40ラインマスク(Hsync 24KHz用)6 E6 h, t+ b' ~
Lo(open) = マスク無し(Hsync 15/31KHz用). S0 x, I" F' ?
* Hsync 15KHz時Hiで非表示(ホワイトアウト)。
10
?不明% f6 C, ^: s% ?5 O. E) y. J" z
* Hsync 15KHz時Hi/Loいずれでも正常表示。; }; |. ?/ u, C4 n/ g
* Hsync 24/31KHz時Hiで正常表示, Loで非表示(ホワイトアウト)。
11
GND接地
12
Vcc電源, +5V DC
13
GND接地
CN3:バックライト制御, 電源 入力
9 B5 K! Z$ Q+ `9 [0 d; g7 H
ピン番号
信号名機能&#12539;規格&#12539;動作
1
Vddバックライト電源, +12V DC
2
Vddバックライト電源, +12V DC
3
GND接地
4
GND接地
5
BRTCバックライト制御, TTL" f" i7 |( t  l( ?+ i, B/ s
Hi(open) = バックライト点灯, Lo = バックライト消灯
6
GND接地
7
GND接地
8
Vddバックライト電源, +12V DC
9
Vddバックライト電源, +12V DC
10
GND接地
11
GND接地
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-12-13 20:51 , Processed in 0.034071 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表