一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 8319|回复: 1

NEC测试程序

[复制链接]
发表于 2009-2-27 21:14 | 显示全部楼层 |阅读模式
好一段时间没有过来了!因为太多的时间去开发和调试上面真是没办法。  j5 G3 X* o% X
现在我发些屏的驱动程序给大家这个是NEC的VGA屏是模拟屏所以只能显示RGB三色只是测屏用的呵呵
/ h3 S4 k$ L2 G9 R! A
0 k; Z  |& e# X0 K$ e" D% j5 p
0 J3 I, u' H7 f0 s" z# p7 W
* G# ^! B5 |% N* V4 _8 ~module NL6448AC30_09( gclk,/ m! h# ]$ `, N5 v+ {% [' T
                   tft_clk,
2 f9 Z% J8 A. G8 V6 u" A                   hsync,# Z3 r7 L0 U3 U- t
                   vsync,) y2 c- X8 J- h9 k1 N, \
                   DE,
5 w0 u2 O! S+ t/ o- n+ e                   R,. j( m- W/ N, C$ s- ^
                   G,
' K, N4 Q1 M& _1 Q6 `                   B   );
9 H/ P& `  [. S( t/ p* [* p; \. ?0 @& e, a3 r: V: `) T
input   gclk;5 o! g2 o7 V, F+ `8 ^
output  tft_clk;
( A" D. K, F4 U, f4 p# Koutput  [1:0]R,G,B;+ U$ y) _3 ~& p' a, ~& Z
reg     [1:0]R,G,B;  M( R! ?7 j7 s: h- W* O4 f
output  hsync,vsync,DE;* [# H8 j: s  Q# a/ O) N& I& e
reg     hsync,vsync,DE;) `8 b( n7 w3 G+ R6 `) [
reg    [9:0]clk_count,hsync_count;  H1 I* P( g& g1 X
reg    div_count;
+ f* s; m# U' \0 }  i8 I& ]& y3 D! |# r, ~- ^  _9 P: N
assign tft_clk = div_count;
6 X' D8 }2 w6 h- O! C& g4 I/ j//分频程序对50MHZ产生25MHZ分频供LCD时钟所用
5 k1 e  a( l1 E" ~$ G: v. @* K///////////////////////////////////////////////////////////////////////////////////////////////////////1 ], o6 S4 c5 Q0 d
always @(posedge gclk)               //gclk全局时钟50MHZ                                             //
" h7 L' Z" R3 ~6 q% Vbegin                                                                                               //% i  {( O  R; h6 |4 k
   div_count <= div_count + 1'b1;    //将50MHZ 2分频后得到25MHZ供LCD时钟所用                         //  r1 ~$ y4 L9 B; f+ q0 k( R* n3 r
///////////////////////////////////////////////////////////////////////////////////////////////////////                                                                                   3 Z& R, a  S8 R1 j) G$ a- ~7 q
                                                                                                                     
% c9 y/ t4 u2 k" H   if(hsync_count < 2)vsync <= 1'b0; //产生场频时钟“在行时钟开始的头2位行时钟线为低电平其它为高电平”                        0 K2 y& P0 f2 D$ a3 G" e) ^- s/ X
   else vsync <= 1'b1;                                               
# `, ~/ R7 O! J* w8 t/ P                           1 }+ |3 V, N. \
end                                                           T0 p- S( i0 P7 u
                                                    , A2 v; X" w$ k5 Q) l
always @(posedge div_count)  //TFT LCD 用时钟线                                                                                  //
3 S+ P3 W4 [  s0 I4 N  v) E# tbegin                                                                                                                           //& h6 {6 S5 w9 @5 S
                                                                                                                                 //# j9 c/ l4 Q6 K  j& X: t' P
   if(clk_count < 799)clk_count <= clk_count + 1'b1;   //时钟计数器用来产列时钟产生条件                                          //' Z' W# y% {6 `2 j, g
   else clk_count <= 10'b0000000000;                                                                                             //6 A0 ?) o7 B. _/ u( w4 R
                                                                                                                                 //
$ A) ?( z1 O- W* p! `* H6 [end   9 X) v- b. F0 `) {' D  _* U

' K! Q' v7 K2 lalways @(posedge tft_clk)0 f- N7 ^6 O* c6 t
begin
: z0 ~) U$ y! E   if(clk_count > 142 && clk_count < 783)DE <= 1'b1;  // && hsync_count > 32 && hsync_count < 513                                //
4 O2 L1 a9 m1 ^" X9 ^2 d   else DE <= 1'b0;                                                                                                              //
$ {5 r7 F" o- D+ o                                                                                                                                 //
: n- d1 R7 k5 K! k3 i" t                                                                                                                                 //
# H1 d1 n3 c6 X5 d& u" q5 r   if(clk_count > 94 && clk_count < 799)hsync <= 1'b1;  //产生行时钟线“一个行的低电平包含有96个时钟脉冲”                         //
. S$ k+ y( d+ l5 j   else hsync <= 1'b0;                                                                                                           //4 l/ w) V' @9 l; E
                                                                                                                                 //% C1 d: B6 M7 f
end                                                                                                                             //( q) ]/ |8 R# h0 m6 }0 J$ }
                                                                                                                                 //3 q! |5 c3 U; V$ k+ Q$ H# u
                                                                                                                                 //6 \0 y: T  N# O; q- _; X. x2 Q
always @(posedge hsync)                                                                                                          //
7 U( B6 {9 O( lbegin                                                                                                                           //
6 t+ R, o& ~7 z7 f. x7 f. W5 _! d  if(hsync_count < 524)hsync_count <= hsync_count + 1'b1;  //对行进行计数用来产生场时钟制造条件                                  // ) v+ W* v, X$ [) k. I: ^; M
  else hsync_count <= 10'b0000000000;                      //一个场含有525个行时钟,当行计数器不大于525的时候加1 否则清零         //1 R3 i2 t8 Z& F' C
                                                                                                                                 //2 N/ ~8 L1 t( B# v
end                                                                                                                             //
+ d/ }+ c: T  D1 K                                                                                                                                 //4 ~6 e" ~6 \2 l; o
                                                                                                                                 //
) a& M0 \3 |# @7 E" m) e+ t9 b            
. J; P0 [4 j5 t/ I; b: C
; _9 h, {9 ]4 ?# v! J  v[email=always@(posedge]always@(posedge[/email] tft_clk)
1 V2 o5 w2 }' s4 Y// black control
$ e7 n! o/ Q5 ^% V  g1 Pif((clk_count > 142) && (clk_count < 251))
3 A. B4 Y. K! M0 L  D( x0 v   begin 6 V  |; j3 L  R! V+ L1 A
     R[1:0] <=0;
7 L; }6 t+ b. X$ `0 I% x  |     G[1:0] <=0; ! R) j) \* A7 U1 ^! u6 |
     B[1:0] <=0;   z, f3 {3 Y/ L- p
   end / W  Z  j& R2 s# Y% S0 P
else + b) I9 ^0 P: C7 ?$ y
  begin - j4 q, k% x. {
    if((clk_count > 252) && (clk_count < 358))   b( s3 Z  p/ y2 T9 ~( p" c
      begin 5 F( H& b; [6 o( W  o* U( ^* U
        R[1:0] <=3; 2 Z& n" y2 ~' A6 `
        G[1:0] <=0; 4 k+ A5 Z; b* p: p9 G
        B[1:0] <=0;
- Z. t( F* u& v( e, d  T      end $ E5 k! f: U* ]. V3 S# S
    else
3 f% Q) {" d8 z1 S/ ~9 ?# L( Z      if((clk_count < 359) && (clk_count < 465)) * T. x2 N; `, @3 _
        begin 6 Y5 P8 K8 G4 V" ~9 D- x
          R[1:0] <=0;
( l7 }/ v3 w( T$ D, p# ~          G[1:0] <=3;
  ?3 A. d6 n6 z, W' c3 B6 d          B[1:0] <=0; ! l8 R5 W* U  f
        end 6 S; u; d1 P' ]1 k" X) ]  y  _$ ^
      else : x& H5 K2 o3 x" N% a; F8 N) ^
        if((clk_count < 466) && (clk_count < 572) )
. F8 k. c6 e' A8 e$ f" Y% p, Y8 M          begin ; z1 N9 }3 Q. h5 M( ^7 ~" ?6 E) ^
            R[1:0] <=0;
& X* a' L0 G, \- y            G[1:0] <=0;
+ K4 g' X0 `' j! ^            B[1:0] <=3; , h* ~+ P5 {1 X: z7 h
          end
: q0 U4 `4 ^' Q" M* c& J      else
: S, n+ G# {6 \$ F2 j# e8 S        begin
( X* J* l/ S& Z% E0 C          R[1:0] <=3;
: e! Q) u) i$ x# g          G[1:0] <=3; 6 K6 k- F) q$ E5 M
          B[1:0] <=3; + m5 B* y% {8 C6 }) s8 V! |
        end 1 v3 I; d5 R- y' T$ A$ o
end 8 ]7 L$ w! l$ m6 E
3 W* r$ Q' K! x* l. m2 t0 Z# D0 t6 r
endmodule
  {+ S/ A$ o4 j- _% r  x$ p; m$ f
$ y( S5 Y' s9 U6 |: F0 e  q  ?" J[ 本帖最后由 kenson 于 2009-2-27 21:15 编辑 ]
 楼主| 发表于 2009-2-27 21:20 | 显示全部楼层
有关这个屏的资料如下:
! `) s# A" v6 \- ^# W* @+ \: ]9 N% ]4 p9 n4 _0 R
CN1:映像, 同期信号 入力
4 w6 L) [4 ]' _* j
ピン番号
信号名機能&#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接地

  r+ H" H# L/ a! {9 W$ h- x- |CN2:制御信号, 電源 入力
* f: e% R4 r3 y: h, H, }7 h
ピン番号
信号名機能&#12539;規格&#12539;動作
1
GND接地
2
CLKドットクロック, TTL, 800 clock 1ライン(1Hsync)毎
3
GND接地
4
DEデータイネーブル(表示データ有効&#12539;表示位置制御), TTL, 正論理
, J! J8 o! n" Q, m) n6 N3 f3 x8 LHi = RGBデータ有効, Lo = RGBデータ無効, open時 5V 8 F$ c, G9 Y4 l( C+ y* x
MODE = HiでDE有効, MODE = Lo時はDE無効(Hi/Lo いずれでも良い)
5
?不明, (15KHz時のフィールド入力か?): V7 U" v9 X6 i: U
* PC-9821Np/Nfではopen, open時 = Lo, Hi にしても変化無しのようだ。
6
GND接地
7
MODE表示タイミングモード選択, TTL" y' g* F" X# \5 M5 ^8 g
Hi = DE モード(DE制御有効)
! l' u* G' P2 a) u" vLo(open) = 固定モード(DE制御無効, 規定の固定タイミング使用)
7 y4 h1 D5 O& x/ G7 V* PC-9821Np/NfのHsync24/31KHzはDEモードで使用されている。
8
SCAN水平走査選択, TTL
) S) o; A+ P% `, w! i* Z+ |Hi = ダブルスキャン(Hsync 15KHz用)% Y( P& `( |( [4 V# W
Lo(open) = シングルスキャン(Hsync 24/31KHz用)* H$ M  _( Z% g4 K1 X
* Hsync 15KHz時Loで垂直が半分に潰れたワイド表示を上下に2個表示。
9
MASK上下マスクキング(上下非表示, 垂直表示開始位置制御), TTL
; j. O% E+ v& A- y2 WHi = 上下40ラインマスク(Hsync 24KHz用)
) @/ p: n6 E; R5 t7 C. O1 D$ QLo(open) = マスク無し(Hsync 15/31KHz用)
! Y' w: m0 Y9 E# h; W* Hsync 15KHz時Hiで非表示(ホワイトアウト)。
10
?不明
( T% v7 ~% ]) C4 h* Hsync 15KHz時Hi/Loいずれでも正常表示。
/ `. `! ~: D6 d( j1 ^' m7 |* Hsync 24/31KHz時Hiで正常表示, Loで非表示(ホワイトアウト)。
11
GND接地
12
Vcc電源, +5V DC
13
GND接地
CN3:バックライト制御, 電源 入力8 t* `) U* I1 G! F
ピン番号
信号名機能&#12539;規格&#12539;動作
1
Vddバックライト電源, +12V DC
2
Vddバックライト電源, +12V DC
3
GND接地
4
GND接地
5
BRTCバックライト制御, TTL7 B! D4 j) j9 l. D- Z
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-2-25 15:04 , Processed in 0.028512 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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