一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 7836|回复: 1

NEC测试程序

[复制链接]
发表于 2009-2-27 21:14 | 显示全部楼层 |阅读模式
好一段时间没有过来了!因为太多的时间去开发和调试上面真是没办法。% B: `, r8 P* `
现在我发些屏的驱动程序给大家这个是NEC的VGA屏是模拟屏所以只能显示RGB三色只是测屏用的呵呵
5 m8 z) W$ e/ Z) U3 k
# L  a' h  m7 P: j, \7 U
0 b- C: c- `# H, Z
3 E6 k. l/ W# Y1 Q0 l& N6 Ymodule NL6448AC30_09( gclk,
! }& ?  V+ R& t3 c9 [                   tft_clk,4 a2 L! D: u# s! f  C+ ^
                   hsync,
( H( q) `" q2 P                   vsync,
3 M, _" T! \6 O. ^7 i                   DE,! m/ d3 E# H6 N% s
                   R,0 d- T6 w$ _+ P8 ~
                   G,9 \+ q) U# @" |7 B) o6 a# l7 F- L
                   B   );; w! o; W, r; J( o! M7 E

% r0 `4 l/ h  J0 q2 E. sinput   gclk;9 w% @- O) Y/ H/ ]
output  tft_clk;
% y" q; r2 X6 i, \8 a6 p1 `output  [1:0]R,G,B;
6 z  z* v! |$ o: ureg     [1:0]R,G,B;
7 Z4 ?" x# S) k4 r) g9 Zoutput  hsync,vsync,DE;4 y/ E' N* E3 J" t2 v  e
reg     hsync,vsync,DE;
6 V  G( L, u. c! C4 V$ d! kreg    [9:0]clk_count,hsync_count;
/ ]& T0 p! \: X) q5 \. R' }9 lreg    div_count;# O. E8 ]1 n: O0 u9 o- S

$ R# T7 w7 j7 d4 G( \assign tft_clk = div_count;
+ F5 w; \7 Q0 X! m1 k# I//分频程序对50MHZ产生25MHZ分频供LCD时钟所用
$ I6 K/ b% x0 E" A9 ]) {///////////////////////////////////////////////////////////////////////////////////////////////////////
% a+ y# v- }3 W' h( a7 S; ~% L1 O9 N4 Jalways @(posedge gclk)               //gclk全局时钟50MHZ                                             //
+ v# t7 |5 D7 O/ M# mbegin                                                                                               //
, \" y& @" a4 t) f; n/ Z   div_count <= div_count + 1'b1;    //将50MHZ 2分频后得到25MHZ供LCD时钟所用                         //: M. B. Q( C# M# V/ i
///////////////////////////////////////////////////////////////////////////////////////////////////////                                                                                   & V. f1 F( Q: y) y, J
                                                                                                                     
, o& p% D' T* ~. d   if(hsync_count < 2)vsync <= 1'b0; //产生场频时钟“在行时钟开始的头2位行时钟线为低电平其它为高电平”                        
1 {4 _2 M5 J  ?$ O- ^# j   else vsync <= 1'b1;                                               8 P9 K6 M& g. q0 L/ E/ E
                           
, r" O2 T$ D* v. Kend                                                         
- b, Q) n' V, c: x) I0 ^                                                    ; p6 y+ S  k7 z$ ~; o1 o
always @(posedge div_count)  //TFT LCD 用时钟线                                                                                  //
$ a, p0 _% p  U% E0 t) Abegin                                                                                                                           //2 f% ?% f* w1 E; K
                                                                                                                                 //
  ?* A/ Y! d: F   if(clk_count < 799)clk_count <= clk_count + 1'b1;   //时钟计数器用来产列时钟产生条件                                          //
! i3 E% ~- d1 ^  I; v   else clk_count <= 10'b0000000000;                                                                                             //' @( _8 o  u  A% M, O
                                                                                                                                 //4 ~) ?, f7 r9 n1 q& V
end   : `* O+ M# F5 x6 {
& C/ c4 W/ S$ l7 n, M2 Q+ g0 e( h
always @(posedge tft_clk)
) ^; B3 {8 s, b  x+ b- v( ]" zbegin
9 ~- P1 q- z+ t. s; u   if(clk_count > 142 && clk_count < 783)DE <= 1'b1;  // && hsync_count > 32 && hsync_count < 513                                //
- [! Z1 G) R0 k. B+ s) @   else DE <= 1'b0;                                                                                                              //. O: a4 t0 ^4 T2 n7 ]# \
                                                                                                                                 //
" L+ r- C' U! Z1 }                                                                                                                                 //2 N9 y0 D3 y) H6 w& k# a
   if(clk_count > 94 && clk_count < 799)hsync <= 1'b1;  //产生行时钟线“一个行的低电平包含有96个时钟脉冲”                         //
7 {" X% f8 b3 r9 @4 v5 i   else hsync <= 1'b0;                                                                                                           //) |! E2 O; L/ v; l! H
                                                                                                                                 //
1 I% N1 ]$ T6 B8 oend                                                                                                                             //
  y4 k2 a, f) Z& d; s: h; [" h9 e                                                                                                                                 //
' p8 W) c2 Y; O# e2 a6 u( Y+ ?                                                                                                                                 //8 U  p( F: }: w  E- h$ }1 Y( d! P
always @(posedge hsync)                                                                                                          //
$ \: J+ [' X( D& \' Sbegin                                                                                                                           //
; S8 N, Y' N, R: l0 A  if(hsync_count < 524)hsync_count <= hsync_count + 1'b1;  //对行进行计数用来产生场时钟制造条件                                  // " i7 n5 e/ `- ]- Q" P! ^1 Y
  else hsync_count <= 10'b0000000000;                      //一个场含有525个行时钟,当行计数器不大于525的时候加1 否则清零         //' V, k8 b* V. S7 w, j
                                                                                                                                 //
. h' U8 _* c! {" H4 t) tend                                                                                                                             //. r) T# b- A- [4 f$ v
                                                                                                                                 //
9 z" n9 `5 a3 J" j                                                                                                                                 //
& e! A% n/ z/ }6 N* }0 u' [: m            6 K( h9 l6 I3 n( `' s

- Z) n6 l7 B* ~  L0 h( `+ c2 `! h[email=always@(posedge]always@(posedge[/email] tft_clk)
; \! F& M3 s4 x+ B// black control . k( O7 e! G4 w" G4 Z) ^& ^5 b
if((clk_count > 142) && (clk_count < 251)) , k# h9 {/ l, N7 J* [7 g
   begin
! {: y4 A6 }+ c' p     R[1:0] <=0; - r3 C' C) z0 k: V3 r) b
     G[1:0] <=0; 3 L; F0 c3 f2 E; x9 M
     B[1:0] <=0; , {; x+ `+ V/ p$ b* ~' B: ~
   end
7 m3 P2 e/ O( L1 V! R) r- v! m$ aelse
8 G7 p4 r" p* }+ K& A% ~1 T  begin
+ N: \( Z! S" u2 h2 @' Q    if((clk_count > 252) && (clk_count < 358)) ) ~0 G9 A( ]7 u+ b  d' y
      begin
7 a. u, T2 J* e3 u( l        R[1:0] <=3; % H5 {/ X/ k6 d! D
        G[1:0] <=0; # v/ j9 |; C, [( x0 }3 V2 \
        B[1:0] <=0; - v" g- ^* A$ N1 ]8 C+ t& }/ d, o! C
      end 5 ^0 Z% h) r# J: \  S5 `! {. m
    else0 J" i0 m& G: v  f+ ]4 m+ b
      if((clk_count < 359) && (clk_count < 465)) 1 C( J5 A" N4 }+ @& S; ]
        begin
+ y, f* X) V. G; T0 r  ~          R[1:0] <=0; 2 C* n6 q5 Q* r( ]! w+ c! O) ^& Z0 E
          G[1:0] <=3; 7 {! v. h( x8 F+ e1 {% x: V
          B[1:0] <=0; ( J# }; n  Y2 L$ Z& _0 F9 h
        end
8 w/ U4 G8 b; ]      else
) n$ [+ ]* y: [        if((clk_count < 466) && (clk_count < 572) ) 7 c$ a' |/ N6 F: e, \& W
          begin
1 Z, V# j: S, @! Q) l* Y3 O            R[1:0] <=0; % r0 \% C. a0 L- {4 _2 d9 N/ |! ^
            G[1:0] <=0; 8 P+ K6 k7 p% X8 h4 Y
            B[1:0] <=3;
# l" H3 ^+ t6 g) `& {" r          end 4 F- d+ T$ p. O+ q
      else
0 Q5 M6 k, E. Q+ u& q6 n        begin 1 K  Y5 j7 [1 m! h: {4 o) h
          R[1:0] <=3; 3 i+ V6 ^) z2 j
          G[1:0] <=3; 2 \4 }: F9 v$ k# D/ v, T  n
          B[1:0] <=3; 4 ~! k. h4 F* ?( T% \% `, r( @
        end
0 V# V6 I) J) Z  N" z! c: }' X* |end
5 `& i$ ]) n- q# X7 {; V: ^
$ z: t9 \0 p7 Z' |endmodule
( X/ w2 q: y  I7 s! F* g' S
' l( s, @) r' Q9 C) Q4 c[ 本帖最后由 kenson 于 2009-2-27 21:15 编辑 ]
 楼主| 发表于 2009-2-27 21:20 | 显示全部楼层
有关这个屏的资料如下:
2 R+ a: M6 ]- B8 a) j1 l+ v3 n% S! m" V  l6 h, e
CN1:映像, 同期信号 入力
' i( x7 z+ {( Z' }3 T6 q
ピン番号
信号名機能&#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接地
& g  ~0 {( a# S$ X2 z# I" G. i4 A
CN2:制御信号, 電源 入力5 S& S$ y2 e2 k, N* }! H: A; G
ピン番号
信号名機能&#12539;規格&#12539;動作
1
GND接地
2
CLKドットクロック, TTL, 800 clock 1ライン(1Hsync)毎
3
GND接地
4
DEデータイネーブル(表示データ有効&#12539;表示位置制御), TTL, 正論理
7 u  h) t0 Q. JHi = RGBデータ有効, Lo = RGBデータ無効, open時 5V / {# N& ~. |6 m9 R0 [
MODE = HiでDE有効, MODE = Lo時はDE無効(Hi/Lo いずれでも良い)
5
?不明, (15KHz時のフィールド入力か?)9 n/ q- G% @) L  j
* PC-9821Np/Nfではopen, open時 = Lo, Hi にしても変化無しのようだ。
6
GND接地
7
MODE表示タイミングモード選択, TTL
  g% C) Q; N% E& Y; s3 sHi = DE モード(DE制御有効)9 |4 N- @6 Z4 V# s+ T
Lo(open) = 固定モード(DE制御無効, 規定の固定タイミング使用)' [5 G0 b) }7 h& q1 l7 G# S! F
* PC-9821Np/NfのHsync24/31KHzはDEモードで使用されている。
8
SCAN水平走査選択, TTL- t8 j5 D' |  E* z4 w0 p
Hi = ダブルスキャン(Hsync 15KHz用)
8 ]% |; _! N( M7 `Lo(open) = シングルスキャン(Hsync 24/31KHz用)" C- u# e1 c. L9 R- e( N
* Hsync 15KHz時Loで垂直が半分に潰れたワイド表示を上下に2個表示。
9
MASK上下マスクキング(上下非表示, 垂直表示開始位置制御), TTL* G2 K' @7 P3 s0 b
Hi = 上下40ラインマスク(Hsync 24KHz用)
5 @- c) y" Z! VLo(open) = マスク無し(Hsync 15/31KHz用)
0 \. `' t% ]3 M1 T* u. L* Hsync 15KHz時Hiで非表示(ホワイトアウト)。
10
?不明
1 T; |6 f! o! ^) a* Hsync 15KHz時Hi/Loいずれでも正常表示。  }" p* P- @, V4 n3 J
* Hsync 24/31KHz時Hiで正常表示, Loで非表示(ホワイトアウト)。
11
GND接地
12
Vcc電源, +5V DC
13
GND接地
CN3:バックライト制御, 電源 入力9 D) l2 A, X7 W1 e' U4 {( z
ピン番号
信号名機能&#12539;規格&#12539;動作
1
Vddバックライト電源, +12V DC
2
Vddバックライト電源, +12V DC
3
GND接地
4
GND接地
5
BRTCバックライト制御, TTL# R( M: E& U- R: D
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:03 , Processed in 0.030789 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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