一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 8019|回复: 1

NEC测试程序

[复制链接]
发表于 2009-2-27 21:14 | 显示全部楼层 |阅读模式
好一段时间没有过来了!因为太多的时间去开发和调试上面真是没办法。% @, L  E0 }5 Y7 ~) |
现在我发些屏的驱动程序给大家这个是NEC的VGA屏是模拟屏所以只能显示RGB三色只是测屏用的呵呵
. t+ L* v! ~- f, ^/ y' m
5 u; }1 Z* [3 c+ T- N
+ A! U. j0 T6 d
  h- L! g( s" N" Pmodule NL6448AC30_09( gclk,
; M' T7 {/ z3 T- W$ a3 j% T( O                   tft_clk,
5 r( o3 V0 W1 j) c) e4 b) o$ j& Q                   hsync,
7 A; n8 W& }& }4 f+ _0 V0 ^( U                   vsync,# y7 c) R+ L7 g  W
                   DE,  F# T: x# V3 b; O' w) n
                   R,
5 a1 f; Q- r7 K8 r                   G,( ~8 d$ E) o4 s$ v
                   B   );; w9 S0 p, M2 l7 B- u) Z
  Q3 y2 C" ^  Q- P/ d( A5 s
input   gclk;
" Y% B' M0 E5 U7 m9 T! Coutput  tft_clk;/ U- F% F$ v- _9 G3 V; e/ v! p
output  [1:0]R,G,B;
- p* k9 I6 N# |& ?+ _+ J2 }reg     [1:0]R,G,B;) b4 I) e. J, k* x
output  hsync,vsync,DE;
' b2 h- w7 z; F: H0 l2 }! Wreg     hsync,vsync,DE;
; v7 T# c* d, d$ zreg    [9:0]clk_count,hsync_count;
9 k1 D, [9 t8 y( B' }reg    div_count;! u# |3 ~- k% L2 K/ Z: ~! B( m
; s0 \: {' Y: _/ ^# i
assign tft_clk = div_count;
5 J1 i! U# M3 Z1 d, ^$ ^. B! q- n2 O//分频程序对50MHZ产生25MHZ分频供LCD时钟所用
/ k7 |: L2 [+ `; |4 a. \///////////////////////////////////////////////////////////////////////////////////////////////////////, L3 E0 H* s3 R! I9 T( P
always @(posedge gclk)               //gclk全局时钟50MHZ                                             //! q  I( U+ @, b' j
begin                                                                                               //# ]1 ~4 u. E  r: T1 P
   div_count <= div_count + 1'b1;    //将50MHZ 2分频后得到25MHZ供LCD时钟所用                         //
+ F. ?1 v% {' u5 b* ~///////////////////////////////////////////////////////////////////////////////////////////////////////                                                                                   " M1 \) y2 h8 ~+ Y9 X  ?8 U
                                                                                                                        u% ]8 o* B' l; {- s2 }
   if(hsync_count < 2)vsync <= 1'b0; //产生场频时钟“在行时钟开始的头2位行时钟线为低电平其它为高电平”                        
( U' k$ t# R' P  i4 E5 r   else vsync <= 1'b1;                                               
$ G: f" }/ a  V. j. E/ D% k                           
7 n* K0 |  S. E9 U# a  eend                                                         
$ I$ }% l5 c, e3 `                                                    8 y2 p5 k- y: e8 a6 E
always @(posedge div_count)  //TFT LCD 用时钟线                                                                                  //4 n  h7 K/ N$ L' `: J, s
begin                                                                                                                           //
# m' n5 |# h! c3 |( U* Z# t; }                                                                                                                                 //
! v9 ^' s- n: u   if(clk_count < 799)clk_count <= clk_count + 1'b1;   //时钟计数器用来产列时钟产生条件                                          //( @- Q8 e  Q( h" o. v3 v# S  I$ w" P
   else clk_count <= 10'b0000000000;                                                                                             //
( [2 B) T* ~; h" h) F                                                                                                                                 //
2 I8 j5 V6 b4 v5 k7 E( m% |end   
. v, D$ w9 r1 [# c1 f
* D: r/ p' e5 \: L  m1 \always @(posedge tft_clk)5 m. S. G3 |- P4 ^
begin
: x3 l% Z5 t& q. Q# Y- Q$ ?6 _   if(clk_count > 142 && clk_count < 783)DE <= 1'b1;  // && hsync_count > 32 && hsync_count < 513                                /// y5 E  e" ~$ n$ s
   else DE <= 1'b0;                                                                                                              //% ~! M/ A4 {  n6 x
                                                                                                                                 //+ p  l! C+ I( R- p8 }' j/ f9 p
                                                                                                                                 //
4 _' o9 U0 n$ s   if(clk_count > 94 && clk_count < 799)hsync <= 1'b1;  //产生行时钟线“一个行的低电平包含有96个时钟脉冲”                         //6 N* v1 y' ^4 E( E, {3 @1 n
   else hsync <= 1'b0;                                                                                                           //5 x( P7 W# v# k; |
                                                                                                                                 //
! E; R  c" s' s; ^end                                                                                                                             //: s  `! Q+ r4 ^) i$ h. R) ^
                                                                                                                                 //
0 j3 i( P1 A# `7 n0 Y3 b                                                                                                                                 //
4 R; Q0 c* H# N' K8 aalways @(posedge hsync)                                                                                                          //
" Q' |# M* ?0 [* c+ ?. t9 ebegin                                                                                                                           //
0 A( X4 H5 p1 d2 N+ \9 A. M  if(hsync_count < 524)hsync_count <= hsync_count + 1'b1;  //对行进行计数用来产生场时钟制造条件                                  // % J& ]  k. a5 _8 S
  else hsync_count <= 10'b0000000000;                      //一个场含有525个行时钟,当行计数器不大于525的时候加1 否则清零         //
; y. X% k# S" P% t0 D) }) U                                                                                                                                 //
3 W2 w. x/ k# A9 L7 }' k* Tend                                                                                                                             //
0 g- O2 H. `( J. |+ q% Q# l( i                                                                                                                                 /// }: N, ~9 X/ O2 q* _: g6 W
                                                                                                                                 //
4 V0 k% O+ G+ M) F6 C: q            
7 f. ?8 O8 J( D8 u( ^7 J! O, Y0 w& [- G. t
[email=always@(posedge]always@(posedge[/email] tft_clk) + E1 }% e+ v! o
// black control   e8 V. t3 I  ~8 U8 W
if((clk_count > 142) && (clk_count < 251))
* S' E# s4 H% |4 o! P   begin : `# r6 w6 F8 T+ j  {
     R[1:0] <=0; 0 }3 j5 A) O& ~/ }- ?
     G[1:0] <=0; ; G! n  ~2 D/ F8 J+ ^4 O
     B[1:0] <=0;
; A  A. _. d0 z' k   end
8 k: X4 k! a8 P3 L( Q0 I1 \else & J% |+ n  e5 B
  begin * ]  p5 C5 m9 ]  y
    if((clk_count > 252) && (clk_count < 358)) 9 |: B5 z) F- m
      begin ) i1 _2 @3 M. `( B" o9 |
        R[1:0] <=3; 5 [1 s  A+ ^9 f
        G[1:0] <=0; 5 u' H$ b, {3 @# x" j) {& U
        B[1:0] <=0;
' Q. g8 V3 `6 a2 {. K3 u8 T* _1 P      end
: q2 R. ?# a1 B3 W0 \, B    else
% G. R3 M, W" P- U. I3 q. T      if((clk_count < 359) && (clk_count < 465)) 8 C% F* P8 i1 T, p" }  P5 s
        begin
  b) Y# X. ]: e7 ~8 }  j, C4 C          R[1:0] <=0;
/ Z& E8 r* Q/ t( F( L# `          G[1:0] <=3; $ {4 n" j8 C8 }/ V
          B[1:0] <=0;
( x4 Y" d: H4 b2 V        end ; D$ ]* u8 i+ O- K
      else
+ Y# X' `! u+ K        if((clk_count < 466) && (clk_count < 572) ) * A( n2 J9 m! Q) U
          begin 0 P; ]3 j. p7 P
            R[1:0] <=0;
$ ~* A) S5 ?" L0 h            G[1:0] <=0;
8 S, e) Y# ~4 I  a# j* ?" F! G            B[1:0] <=3;
( ^9 V* u& T; ~' R2 m, @          end . A" f/ f4 d9 [% c  X. N% T
      else . k% v% d) N( g- u+ }5 j
        begin " Q) }  x+ F8 O! ]8 {
          R[1:0] <=3;
/ Z! q+ Y( @! ]          G[1:0] <=3; 9 N2 N4 r" Y3 O6 y
          B[1:0] <=3;
; T3 J* M4 f0 h, o2 c$ z& V        end - i" R8 \% x/ Z. u& N+ j" Y4 j( X
end + b" R3 W' l, \8 p, I0 R

0 Q* D8 [$ Y- W* kendmodule
0 U! d8 ?2 L7 O, D- y3 G* P3 b0 Q9 U% f3 r' z0 r
[ 本帖最后由 kenson 于 2009-2-27 21:15 编辑 ]
 楼主| 发表于 2009-2-27 21:20 | 显示全部楼层
有关这个屏的资料如下:& m7 x5 D3 M" V' _
# v7 Y% H* G, a6 M( m; q. s$ `
CN1:映像, 同期信号 入力) @4 z3 y4 |8 k4 Y9 c
ピン番号
信号名機能&#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接地
1 U  w7 V; B7 }  D$ n3 a+ n8 \# N5 @
CN2:制御信号, 電源 入力' I5 p+ T. [! f
ピン番号
信号名機能&#12539;規格&#12539;動作
1
GND接地
2
CLKドットクロック, TTL, 800 clock 1ライン(1Hsync)毎
3
GND接地
4
DEデータイネーブル(表示データ有効&#12539;表示位置制御), TTL, 正論理
9 ~  o) ^/ `( s% u! WHi = RGBデータ有効, Lo = RGBデータ無効, open時 5V 0 H. z' T, ?- y1 z/ ?" M
MODE = HiでDE有効, MODE = Lo時はDE無効(Hi/Lo いずれでも良い)
5
?不明, (15KHz時のフィールド入力か?)* L$ u5 `% ~- Q0 I1 M
* PC-9821Np/Nfではopen, open時 = Lo, Hi にしても変化無しのようだ。
6
GND接地
7
MODE表示タイミングモード選択, TTL4 T" J( _8 C& L! {
Hi = DE モード(DE制御有効)8 K. \9 |5 r0 h# B1 v
Lo(open) = 固定モード(DE制御無効, 規定の固定タイミング使用)5 Z/ K. H0 K3 t5 a- K1 {% I) s
* PC-9821Np/NfのHsync24/31KHzはDEモードで使用されている。
8
SCAN水平走査選択, TTL4 g- Z; e2 z- V, K7 {
Hi = ダブルスキャン(Hsync 15KHz用)
2 e7 i1 R& v* b% J0 n  RLo(open) = シングルスキャン(Hsync 24/31KHz用)
; p& X  n( x* Q. s6 l* Hsync 15KHz時Loで垂直が半分に潰れたワイド表示を上下に2個表示。
9
MASK上下マスクキング(上下非表示, 垂直表示開始位置制御), TTL
# _2 D% V- s, h% m; H! lHi = 上下40ラインマスク(Hsync 24KHz用)* z6 C, i* O# o# \+ G
Lo(open) = マスク無し(Hsync 15/31KHz用)" R' W6 b+ M- i4 W; D
* Hsync 15KHz時Hiで非表示(ホワイトアウト)。
10
?不明
$ b* q/ |$ \0 [' }. Z/ W! |$ \* Hsync 15KHz時Hi/Loいずれでも正常表示。8 z+ h- s, H+ l  p* }3 }) ^% ^
* Hsync 24/31KHz時Hiで正常表示, Loで非表示(ホワイトアウト)。
11
GND接地
12
Vcc電源, +5V DC
13
GND接地
CN3:バックライト制御, 電源 入力
( _: D- a+ U0 G( p! z" d6 n6 F* c
ピン番号
信号名機能&#12539;規格&#12539;動作
1
Vddバックライト電源, +12V DC
2
Vddバックライト電源, +12V DC
3
GND接地
4
GND接地
5
BRTCバックライト制御, TTL( V: I- m) v( a: a3 [! U
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-10-28 06:22 , Processed in 0.030472 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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