一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 7837|回复: 1

NEC测试程序

[复制链接]
发表于 2009-2-27 21:14 | 显示全部楼层 |阅读模式
好一段时间没有过来了!因为太多的时间去开发和调试上面真是没办法。
+ `: g$ C( Q+ {/ b* C现在我发些屏的驱动程序给大家这个是NEC的VGA屏是模拟屏所以只能显示RGB三色只是测屏用的呵呵
3 x+ P5 F( h0 r8 t' I9 V) t6 c! B4 b2 f, M

1 g# I+ }6 F' a1 E3 g' Q/ L" L- T
module NL6448AC30_09( gclk,
( D  ]* W9 {( Z- i/ I$ U                   tft_clk,* C! [6 Y' H. k$ r) S
                   hsync,: G/ G3 v/ ~; {3 Y. p
                   vsync,/ e5 R& q2 `4 R+ ]2 V4 }4 G
                   DE,2 v' d/ K4 Y% x' R* Q: H
                   R,
9 m+ K9 F0 E6 E6 N                   G,
# V$ ^% v1 x* H8 n; C                   B   );4 L% d3 k  \6 V

% y& m/ C9 ~- r5 Cinput   gclk;2 y0 X- [& H6 p( t2 r' o
output  tft_clk;4 J$ e+ P/ p+ M5 _( |$ t
output  [1:0]R,G,B;) r  t0 c- s$ ?+ L
reg     [1:0]R,G,B;/ f2 N5 \) A, s: F3 m2 @1 Z
output  hsync,vsync,DE;) ?9 O( v! e. q9 E* }
reg     hsync,vsync,DE;
! `6 K9 D. L5 W* m% }! Xreg    [9:0]clk_count,hsync_count;
; K% s# c- i; C- p7 n2 Greg    div_count;2 _& P! B* l: Z+ Y4 x( {

0 s3 V- X$ o$ X7 K  yassign tft_clk = div_count;4 X2 m3 L, n0 K- s) p
//分频程序对50MHZ产生25MHZ分频供LCD时钟所用
0 r7 O" I4 S2 y, E0 o. _///////////////////////////////////////////////////////////////////////////////////////////////////////7 G( F) r0 h  E1 w! D9 a
always @(posedge gclk)               //gclk全局时钟50MHZ                                             //9 U5 d! m" R1 M3 v$ ~
begin                                                                                               //2 |! H7 X0 u1 K0 Z. v# A) W- S0 p
   div_count <= div_count + 1'b1;    //将50MHZ 2分频后得到25MHZ供LCD时钟所用                         //5 J* U: a9 ~& {8 n: D
///////////////////////////////////////////////////////////////////////////////////////////////////////                                                                                   0 F9 R$ B7 w. E7 l& E5 H$ R1 |
                                                                                                                      6 V% ?2 _$ I1 f; F" s8 {
   if(hsync_count < 2)vsync <= 1'b0; //产生场频时钟“在行时钟开始的头2位行时钟线为低电平其它为高电平”                          F. \* c# q; S4 g. M5 L
   else vsync <= 1'b1;                                               / \% k  y9 v" ~. h$ I% [2 ?: `
                           0 _& M: T! a8 \, ?/ b  T
end                                                         2 z+ n1 T2 [8 ?' r3 I. [8 A
                                                   
) P& l/ K& D% Walways @(posedge div_count)  //TFT LCD 用时钟线                                                                                  //+ D) T/ {8 T9 k1 E8 I0 ~
begin                                                                                                                           //0 Z7 _( i/ Y1 M* a4 ^0 |2 c3 X
                                                                                                                                 //5 F  w9 O0 T. U( Y
   if(clk_count < 799)clk_count <= clk_count + 1'b1;   //时钟计数器用来产列时钟产生条件                                          //
9 ~% {- g5 I/ A. C2 l5 d: B   else clk_count <= 10'b0000000000;                                                                                             //+ @4 B7 o. B2 Y$ J
                                                                                                                                 //
1 F; e9 K' P/ W+ {. I1 C3 _: zend   
5 G( R) L) _% W/ d
+ I7 y/ x! x4 Y4 @  Yalways @(posedge tft_clk)# z9 {  A1 C  r" Q
begin) @6 i9 ]& B1 `' w  r4 p' d( ^; M! b
   if(clk_count > 142 && clk_count < 783)DE <= 1'b1;  // && hsync_count > 32 && hsync_count < 513                                //
- [1 T* h) Y! ?: t   else DE <= 1'b0;                                                                                                              //; H5 ?- L0 f; Z1 M) n4 W
                                                                                                                                 //& F! d, n1 E/ k) d! `5 ~6 d
                                                                                                                                 //
- _' ]3 N/ T9 u& @" K* F7 L   if(clk_count > 94 && clk_count < 799)hsync <= 1'b1;  //产生行时钟线“一个行的低电平包含有96个时钟脉冲”                         //2 ]! H; _/ ?; H( n2 j
   else hsync <= 1'b0;                                                                                                           //
. o% n# }( q8 X" m' o" j+ ?7 Z: |) ~                                                                                                                                 //5 L/ K8 R& g& l# N  }% u+ u
end                                                                                                                             //
6 l4 J% Z6 b6 t+ c1 C! \0 p                                                                                                                                 //
: H& R& p' j; |$ v0 I; B                                                                                                                                 //
/ s3 I2 [$ L! Q3 E* X- [6 M* x, balways @(posedge hsync)                                                                                                          //4 Q; M# {4 u  f# `' l5 N& }
begin                                                                                                                           //
, _3 H& ^& X& _( `' Z  if(hsync_count < 524)hsync_count <= hsync_count + 1'b1;  //对行进行计数用来产生场时钟制造条件                                  //
9 S; Z4 R4 e/ ?9 O  W( f- S8 i  else hsync_count <= 10'b0000000000;                      //一个场含有525个行时钟,当行计数器不大于525的时候加1 否则清零         //  ?) Q; V4 V$ s
                                                                                                                                 //
0 ]1 j/ }* h0 m, L% }: Rend                                                                                                                             //' c" \2 ~) w! ^9 Q
                                                                                                                                 //
; M1 k9 [2 v( L+ K) [/ T6 n+ g$ Z. K                                                                                                                                 //5 j+ `/ T8 m; F+ n8 v* O5 a
            
$ y$ n' J3 a1 h& L/ h- B% p) D9 j7 B* x* y9 V& H4 w: p/ S9 a) R2 Q! V9 }
[email=always@(posedge]always@(posedge[/email] tft_clk)
- s, E! P2 _/ O- h" Y1 L  Y& j3 x. T. h// black control & n" l  t9 |0 S' a& d0 `! ]
if((clk_count > 142) && (clk_count < 251))
  s0 u4 [. b, O" s# ]+ w   begin   N$ F0 T1 u/ q  e3 |
     R[1:0] <=0; # j7 `1 H. R  D# W5 M8 F* K
     G[1:0] <=0;
3 ]2 c1 V* O6 q6 X     B[1:0] <=0; : P- O. Q( w7 t2 r: X, ~/ Y
   end 0 b5 p4 e0 ~( f4 R9 L4 g
else " D/ o  g# O! O6 H
  begin
% |7 ?2 |  n( c! Z. Z: z    if((clk_count > 252) && (clk_count < 358))
6 v) p8 W3 E1 b      begin
) Y/ G0 d% G$ v/ T3 |        R[1:0] <=3; 9 o' g" K3 q' x9 {" {( O& h
        G[1:0] <=0; & g1 V" H- B# G: S- y5 \5 F
        B[1:0] <=0;
: H. M% @# L  I      end
1 Y$ ~0 A7 A, }0 d/ V    else
$ V+ D; h' g' {0 e      if((clk_count < 359) && (clk_count < 465)) ) j* `% _8 v6 M) T
        begin
- }  Q9 S+ w8 R" H8 V          R[1:0] <=0; + f2 A. Y$ H: ]' e  u
          G[1:0] <=3;
) [5 P' e% o9 J! S6 W          B[1:0] <=0; - F3 f9 E4 C% ^
        end
2 B2 q( g, F. u8 A7 h; M) G      else
: i: o5 ], C$ _  ?' M  v        if((clk_count < 466) && (clk_count < 572) ) * z/ p; o+ t- v4 @
          begin
! o  e  L! _4 `, I2 M# F& D; F            R[1:0] <=0; ( P' _# A/ D$ y! H
            G[1:0] <=0;
) w/ _( f5 t, d' S; e) l' D            B[1:0] <=3; 8 {3 j, x3 }% W! ^: D
          end
; V( A- K. F# c) w& r% W      else
7 Q% j$ K" D+ i  Q5 ?- A* c) e3 a        begin 4 R) ]' J! W! W) N
          R[1:0] <=3; , R$ a7 L; }. I, z  \2 e* r
          G[1:0] <=3; 8 Y0 B  H+ q  A; x
          B[1:0] <=3; ; K) s' n/ {9 w
        end
4 v5 I, ~$ j& F6 n; x  F. jend
0 A7 f+ Q8 M+ g9 Y' Z# x9 n% m* i& }  q0 o2 {* }' ?0 s$ `
endmodule
6 B  I& [2 n' U/ m
2 X/ s- B3 U/ J2 t[ 本帖最后由 kenson 于 2009-2-27 21:15 编辑 ]
 楼主| 发表于 2009-2-27 21:20 | 显示全部楼层
有关这个屏的资料如下:
; \; `4 U" U, d  K0 P' E! b# j2 f9 O+ V+ f
CN1:映像, 同期信号 入力
# q; N* e1 N* r0 v" 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接地
  {' F& m- O+ R( v2 e; f
CN2:制御信号, 電源 入力
" a1 y! o7 w  v% M
ピン番号
信号名機能&#12539;規格&#12539;動作
1
GND接地
2
CLKドットクロック, TTL, 800 clock 1ライン(1Hsync)毎
3
GND接地
4
DEデータイネーブル(表示データ有効&#12539;表示位置制御), TTL, 正論理 / e) V, c0 r9 M& \: ?1 g$ m
Hi = RGBデータ有効, Lo = RGBデータ無効, open時 5V
6 Y' F. P1 X; G& T4 iMODE = HiでDE有効, MODE = Lo時はDE無効(Hi/Lo いずれでも良い)
5
?不明, (15KHz時のフィールド入力か?)( S' U" Z9 e" _* Q  n- T
* PC-9821Np/Nfではopen, open時 = Lo, Hi にしても変化無しのようだ。
6
GND接地
7
MODE表示タイミングモード選択, TTL. h- N" B8 ~8 W/ K! c6 k
Hi = DE モード(DE制御有効)# }( t7 `8 V* J& z
Lo(open) = 固定モード(DE制御無効, 規定の固定タイミング使用)8 G- f/ z- n* p! |0 w9 a6 p+ ^
* PC-9821Np/NfのHsync24/31KHzはDEモードで使用されている。
8
SCAN水平走査選択, TTL
/ x0 G0 E9 w* ]1 p+ d3 gHi = ダブルスキャン(Hsync 15KHz用)
, N+ r3 w( j2 |- Y* s# X$ tLo(open) = シングルスキャン(Hsync 24/31KHz用)
$ U! A3 I$ {2 T* Hsync 15KHz時Loで垂直が半分に潰れたワイド表示を上下に2個表示。
9
MASK上下マスクキング(上下非表示, 垂直表示開始位置制御), TTL
" r( J) g+ ^0 Q* p; P$ o, lHi = 上下40ラインマスク(Hsync 24KHz用)
6 @: \0 M; Q* v0 O" y! E0 fLo(open) = マスク無し(Hsync 15/31KHz用)  U% a7 L7 I5 T6 c" W! M1 M
* Hsync 15KHz時Hiで非表示(ホワイトアウト)。
10
?不明
* a8 X( R% h" ]1 Q5 a3 F* Hsync 15KHz時Hi/Loいずれでも正常表示。2 T' \9 x" D; l
* Hsync 24/31KHz時Hiで正常表示, Loで非表示(ホワイトアウト)。
11
GND接地
12
Vcc電源, +5V DC
13
GND接地
CN3:バックライト制御, 電源 入力& X% P# [  ]1 i$ B4 k0 n
ピン番号
信号名機能&#12539;規格&#12539;動作
1
Vddバックライト電源, +12V DC
2
Vddバックライト電源, +12V DC
3
GND接地
4
GND接地
5
BRTCバックライト制御, TTL  b0 \; ?' P: `) l" F3 `. h5 x
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-8-20 12:10 , Processed in 0.032780 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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