一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 8428|回复: 1

NEC测试程序

[复制链接]
发表于 2009-2-27 21:14 | 显示全部楼层 |阅读模式
好一段时间没有过来了!因为太多的时间去开发和调试上面真是没办法。5 a  a- ?% p" w5 I' H9 I5 M8 Y  \
现在我发些屏的驱动程序给大家这个是NEC的VGA屏是模拟屏所以只能显示RGB三色只是测屏用的呵呵
2 z, l, l' ?9 r3 `' v% v# c8 Z3 m3 m" S( z  W& k5 o

6 ], ]/ M# W# n
5 N6 L! {' ]8 O! r/ g+ Imodule NL6448AC30_09( gclk,! f- Q4 {/ v" M! E. P) r
                   tft_clk,3 P% {. |6 i: q/ b
                   hsync,
0 L- I$ @! k% k$ Y$ ]6 ]                   vsync,
. H  f5 {. I% a1 c9 W& S                   DE,
8 a' Y6 g+ F5 `- ]                   R,% C# O) v. ^- ~6 Z5 C  v6 J- P9 `
                   G,
. n+ U6 i! k* N! [                   B   );
% M3 \3 Z- W% b3 O* b3 Z, R, }  O! m9 S" Z, p/ y) S3 d
input   gclk;
* [: W' t  F1 g& Joutput  tft_clk;
* I9 f+ k+ l" q5 [5 Zoutput  [1:0]R,G,B;$ U5 s: o& ?) y
reg     [1:0]R,G,B;
1 v' M3 r) X1 C. Y: k- coutput  hsync,vsync,DE;
% t$ n( m- H3 v  Greg     hsync,vsync,DE;! V3 c: S- D- ]- D. r: ~
reg    [9:0]clk_count,hsync_count;$ {, i: v' q5 |1 \1 i$ Z
reg    div_count;
1 ^/ V( Z, s4 C" B4 u) M
8 ?/ o& m( o# i/ T2 ]1 c3 sassign tft_clk = div_count;6 Y7 ?4 }3 R' y) Z. V9 N6 S
//分频程序对50MHZ产生25MHZ分频供LCD时钟所用: \6 x, A8 z0 e+ X
///////////////////////////////////////////////////////////////////////////////////////////////////////
, Z8 @! T  f9 y+ D5 Ralways @(posedge gclk)               //gclk全局时钟50MHZ                                             //' s8 G" W& \9 P
begin                                                                                               //, F. }' z0 p- F, o" T3 y4 t
   div_count <= div_count + 1'b1;    //将50MHZ 2分频后得到25MHZ供LCD时钟所用                         //
6 o% `0 ^7 {& }+ Y///////////////////////////////////////////////////////////////////////////////////////////////////////                                                                                   
8 d% B% C3 [  d& v3 w) y                                                                                                                     
/ U) o: l0 E  @$ n- L$ I- A   if(hsync_count < 2)vsync <= 1'b0; //产生场频时钟“在行时钟开始的头2位行时钟线为低电平其它为高电平”                        
$ Y! X! B; A5 Z# _   else vsync <= 1'b1;                                               , V, T) {  R: l( v) D$ |- {- s
                           
4 M5 _, I! Q% s* rend                                                         
6 q# `; {( a( c0 a' V                                                   
9 y6 U" @- p5 w( i( J' U2 kalways @(posedge div_count)  //TFT LCD 用时钟线                                                                                  //: x$ P9 O% m4 N+ Y/ G" p0 P& w4 H7 w
begin                                                                                                                           //4 r- _3 u: @/ q+ D( B
                                                                                                                                 //
+ u8 U: H9 l2 Y( x   if(clk_count < 799)clk_count <= clk_count + 1'b1;   //时钟计数器用来产列时钟产生条件                                          //
9 Z* n" e6 ^: A+ ~1 y, U   else clk_count <= 10'b0000000000;                                                                                             //( s& |  w( p) M8 g( r& h$ D; \/ k
                                                                                                                                 //
( d6 Q0 W+ J6 X0 Zend   $ z7 ^+ w: q9 ~
" C  n$ z. _# g% ], R! N) v
always @(posedge tft_clk)
+ S+ i1 D2 s- A* n# {* Fbegin* Y8 T7 p, a4 e. E7 o/ [6 f( h
   if(clk_count > 142 && clk_count < 783)DE <= 1'b1;  // && hsync_count > 32 && hsync_count < 513                                //
5 p, a+ q1 j/ y6 o: h9 j5 g3 R   else DE <= 1'b0;                                                                                                              //
1 r2 j% b1 z3 F7 t3 |  H, S                                                                                                                                 //
1 Z/ @; @0 l0 x: F. Z2 d% [                                                                                                                                 //& T. r! W0 V8 k
   if(clk_count > 94 && clk_count < 799)hsync <= 1'b1;  //产生行时钟线“一个行的低电平包含有96个时钟脉冲”                         //) l' x) r8 n+ w* i- ^* I
   else hsync <= 1'b0;                                                                                                           //' l$ y) s- w$ ?* \4 p4 c; v
                                                                                                                                 //
* ^, o; y2 g, t$ r( {/ Aend                                                                                                                             //
0 D! e$ n# W& W7 q                                                                                                                                 //  Y7 r' {' V) l: m
                                                                                                                                 //8 l& }/ I2 u) M( t- g' r
always @(posedge hsync)                                                                                                          //0 Y4 H8 H  |" ]! u5 g; {
begin                                                                                                                           //! o; Z6 ?- T; U' h
  if(hsync_count < 524)hsync_count <= hsync_count + 1'b1;  //对行进行计数用来产生场时钟制造条件                                  // 6 A# o7 ~; H: k& \6 d) X. v+ g
  else hsync_count <= 10'b0000000000;                      //一个场含有525个行时钟,当行计数器不大于525的时候加1 否则清零         //3 g4 w4 Z: p- D7 O) b6 y' {- _3 x
                                                                                                                                 //; T7 m7 t9 ~+ X6 l3 W# S5 j
end                                                                                                                             //2 g- r9 `; B2 e
                                                                                                                                 //3 |! h* q, f8 H
                                                                                                                                 //- Z+ U% U+ `# n1 A& t2 ?" F6 P; j
            $ [! m& I* a% K0 b! V# C# N3 h0 N
1 S; Z2 A" f, E$ c/ Y1 }
[email=always@(posedge]always@(posedge[/email] tft_clk) 3 Q: D  h$ ^7 i, T6 ?
// black control
, T8 W" U& N$ [+ \1 r, hif((clk_count > 142) && (clk_count < 251)) , X! }- c" Q- ?
   begin + I1 L- [0 t0 d" P& _$ F9 l7 f$ H
     R[1:0] <=0;
% d2 j: |2 e$ D3 a" Z     G[1:0] <=0; ; M" a$ n% l5 [" _$ F5 ]+ f
     B[1:0] <=0;
3 s9 @! {+ h& {* L$ x* b# ]   end , N& M) Z# a9 g8 }
else
, V; \4 E/ g6 _" H# `6 P0 |% n  begin ; O. `4 R+ O# G4 [
    if((clk_count > 252) && (clk_count < 358))
6 A3 V9 b' O, X% h$ ]7 |" z! I      begin 7 X& G" a! @- b! w; c1 x! @  r
        R[1:0] <=3;   t/ s( S+ @* X
        G[1:0] <=0; 7 T8 C3 A( T. S9 V8 Q) f
        B[1:0] <=0;
; n( _- s2 g( N/ j5 x* r9 p$ y      end 4 ?- S, P; N, |) L" |4 v
    else% i! `( u4 w  Q! x9 j, d
      if((clk_count < 359) && (clk_count < 465)) & \" z! [% J3 S
        begin
1 h. G! A$ P. S: D" s          R[1:0] <=0;
* w! B* T  ?7 Y* o9 g6 u! f0 t6 i          G[1:0] <=3; 5 B: t  c# B! H9 t, f4 y' v
          B[1:0] <=0;
6 g% D; r' A" W. U2 X! H, |9 H        end
, k# U" B7 u! ]      else 6 V+ P& I& Q# ]- G  ]' Z4 s
        if((clk_count < 466) && (clk_count < 572) ) & S9 s9 r# |; h4 c  l5 b2 W
          begin
1 ~' v' Q5 i3 ^+ {( T3 [            R[1:0] <=0; 8 ^% n8 {6 H+ J5 w# |
            G[1:0] <=0;
8 b/ O- A2 j2 a& `1 q: b1 r            B[1:0] <=3; 6 ~: Z4 v: \9 F# i" R$ }2 P) x
          end # k% h* }; h8 P& l
      else   X+ `# |3 m8 |; \
        begin
; q& p# w* o! t' t' _          R[1:0] <=3; : s1 R& P5 n0 F/ _1 b) s& p
          G[1:0] <=3; 4 s: [' B7 M' h/ p3 T3 E
          B[1:0] <=3;
5 H8 e5 O# s& g+ ]/ N        end ) w0 u) `+ U6 J7 T! ]( o
end
2 w3 u3 S' R4 L& e6 U) D1 O& Y7 t; W; I1 ~  [9 N+ `0 H1 q
endmodule
. m" s0 H5 M3 x+ E& B# X; E  l
[ 本帖最后由 kenson 于 2009-2-27 21:15 编辑 ]
 楼主| 发表于 2009-2-27 21:20 | 显示全部楼层
有关这个屏的资料如下:3 J: h( t5 ^  I: o$ I. k

% l; |( f! S# bCN1:映像, 同期信号 入力7 M. o- g. t! N
ピン番号
信号名機能&#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接地

6 U1 E( A$ k' S4 n* t$ F" s3 rCN2:制御信号, 電源 入力3 j) @- s2 i4 L9 g  x6 x/ p
ピン番号
信号名機能&#12539;規格&#12539;動作
1
GND接地
2
CLKドットクロック, TTL, 800 clock 1ライン(1Hsync)毎
3
GND接地
4
DEデータイネーブル(表示データ有効&#12539;表示位置制御), TTL, 正論理 + Y$ ~9 k, m& ]; c* s2 M  C
Hi = RGBデータ有効, Lo = RGBデータ無効, open時 5V
. e6 Z3 n0 t/ }  a) F$ x4 Z/ CMODE = HiでDE有効, MODE = Lo時はDE無効(Hi/Lo いずれでも良い)
5
?不明, (15KHz時のフィールド入力か?)
( x% R' h* E: |- x) Y* PC-9821Np/Nfではopen, open時 = Lo, Hi にしても変化無しのようだ。
6
GND接地
7
MODE表示タイミングモード選択, TTL* j0 P1 j3 ^- b
Hi = DE モード(DE制御有効)
/ e9 ~* K* o: g" _9 W! ~% O7 mLo(open) = 固定モード(DE制御無効, 規定の固定タイミング使用)( ?/ W* s* O5 p7 p
* PC-9821Np/NfのHsync24/31KHzはDEモードで使用されている。
8
SCAN水平走査選択, TTL
3 S( E( ^7 F1 r$ O" T* `/ n! s, vHi = ダブルスキャン(Hsync 15KHz用)
2 ^- y8 [- ~1 S4 b( _Lo(open) = シングルスキャン(Hsync 24/31KHz用)& f# w. ~4 |! {0 i! \3 a6 R
* Hsync 15KHz時Loで垂直が半分に潰れたワイド表示を上下に2個表示。
9
MASK上下マスクキング(上下非表示, 垂直表示開始位置制御), TTL7 T) {7 o# i" e4 b
Hi = 上下40ラインマスク(Hsync 24KHz用)' g% C7 K+ `7 L* g1 O9 p
Lo(open) = マスク無し(Hsync 15/31KHz用)3 {; c/ [2 Z8 X' x
* Hsync 15KHz時Hiで非表示(ホワイトアウト)。
10
?不明5 m2 K  ?8 w" w
* Hsync 15KHz時Hi/Loいずれでも正常表示。, E# b: l  P2 G4 R, H: n
* Hsync 24/31KHz時Hiで正常表示, Loで非表示(ホワイトアウト)。
11
GND接地
12
Vcc電源, +5V DC
13
GND接地
CN3:バックライト制御, 電源 入力; C6 m5 @3 e8 p! y' U
ピン番号
信号名機能&#12539;規格&#12539;動作
1
Vddバックライト電源, +12V DC
2
Vddバックライト電源, +12V DC
3
GND接地
4
GND接地
5
BRTCバックライト制御, TTL
/ [' t' |1 Z1 O; S0 _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, 2026-4-19 16:29 , Processed in 0.031899 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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