GLCD MGLS240128TZ-10

Gast #3473635
Lesenswert?

Hallo Zusammen

Ich habe bei ebay ein Display ersteigert;
http://www.ebay.de/itm/380801341244?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2648

Die pinbelegung auf der Ebayseite kann man direkt vergessen da sie nicht 
uebereinstimmt und ich finde kein datenblatt zum display.

Ich hab dann aber von einem "Ählichen" display die pinnbelegung genommen 
und wenn ich einen reset auslöse kann ich einen streifen auf dem display 
sehen :D
Datenblatt:
http://www.gaw.ru/pdf/lcd/lcm/Varitronix/graf/MGLS240128TZ-04.pdf


Ich weis nun nicht wie ich es ansteuere da ich so viele pins hab wo ich 
einfach nicht weis was ich damit mache wie zum beispiel WR, CD, CE etc.
und vorallem in welcher reihenfolge ich welche Signale wo anlegen muss 
damit es mir was anzeiigt.

muss ich es initialisieren?
kann ich da direkt was drauftexten ?

mfg Christian
Persönliche Seite #3473658
Lesenswert?

Christian schrieb:
> Die pinbelegung auf der Ebayseite kann man direkt vergessen da sie nicht
> uebereinstimmt

Woher weißt Du das, wenn Du die Pinbelegung des Displays doch gar nicht 
kennst?

> Ich weis nun nicht wie ich es ansteuere da ich so viele pins hab wo ich
> einfach nicht weis was ich damit mache

Besorg Dir ein Datenblatt des Displaycontrollers.

http://www.hantronix.com/files/data/1278473895lc7981.pdf

Da steht drin, wie so etwas anzusteuern ist.

Das ist übrigens ein komplett anderer Controller als der, der auf dem 
von Dir gefundenen Display verbaut ist.
Gast #3473833
Lesenswert?

Hallo

Die Dokumentation zu dem Display kann man sich von der Varitronix Web 
Seite herunterladen:
http://www.varitronix.com/product/index.php?option=com_content&view=article&id=38&Itemid=62&lang=en

Ich hatte mal ein Display aus der Serie zum Laufen gebracht:
http://wiki.u8glib.googlecode.com/hg/otherpic/varitronix_240x128_t6963.jpg

Den Code habe ich der U8glib hinzugefügt:
http://code.google.com/p/u8glib/

Grüße,
Oliver
Gast #3480207
Lesenswert?

Rufus Τ. Firefly schrieb:
> Woher weißt Du das, wenn Du die Pinbelegung des Displays doch gar nicht
> kennst?

weil das display 18 pins hat. die leitungen für die hintergrund 
beleuchtung sind an der seite herausgeführt und nicht auf den pins unten

ich werde mal auf vatronix nachsehen ob ich was finden kann

der verkäufer hat auch ein anderes display angegeben auf dem typenschild 
des displays steht TZ10 als endung

der verkäufer gab Z05 an
Gast #3480225
Lesenswert?

also laut vatronix müsste das das datenblatt sein;

http://www.varitronix.com/prod_pdf/MGLS240128TZ.pdf


jetzt steht bei seite zwei unten bei den vier sternchen ; **** T6963C or 
equ.

ist das jetzt der grafikcontroller ?

bei den drei sternchen steht V0 ist NC wenn ein DC DC converter auf dem 
board ist. woher weis ich das denn jetzt o.O

Das datenblatt ist j allgemein für TZxx aber was macht denn jetzt die 
endung 10 aus ?
Gast #3483476
Lesenswert?

Ich bekomme es einfach nicht zum laufen.

Ich habe den code aus dem forum benutzt:

http://www.mikrocontroller.net/attachment/highlight/70951

und ihn für den ATMEGA16 angepasst / porta für die daten benutzt:
1
;===============================================
2
;=       Beschreibung - funktionert - fertig!  =
3
;===============================================
4
; Textmodus: singlemode (kein automatisches increment)
5
; absolut minimierte Version
6
; Steuerleitungen an Port B --> siehe Pinbelegung
7
; Datenleitungen an Port D
8

9
;testprogramm zum ansprechen ein lcd-displays mit t6963c controller
10
; Unterprogramme:
11
;  Init_GLCD
12
;  WriteCMD
13
;  WriteByte
14
;  StatusCheck
15
;  delay
16

17
                 
18
 .INCLUDE <m16def.inc>         ; Controllertyp
19
  
20

21
 .equ  TXT_BASE    = 0x0000
22
 .equ  FONT_SIZE    = 8    ; änderbar über FS-Pin am Display
23

24
 .equ  SPALTEN      = 240/FONT_SIZE
25
 .equ  TXT_ZEILEN    = 128/8
26

27
;===============================================
28
;=   Pinbelegung Display  (L = low-active)   =
29
;===============================================
30
 .equ wr   = PB0      ; Data Write  (L)
31
 .equ rd   = PB1      ; Read Data    (L)
32
 .equ ce   = PB2      ; chip enable  (L)
33
 .equ cd     = PB3      ; Command/Data  (H/L)
34
 .equ reset   = PB4      ; Reset      (L)
35
 
36
;===============================================
37
;=       Registerverwendung                   =
38
;===============================================
39
.def temp1  = r16
40

41
.def daten  = r21
42
.def command= r22
43

44

45
;===============================================
46
;=       Display-Kommandos                   =
47
;===============================================
48
 .equ  TXTHOME      = $40        ; Set Text Home Adresse
49
 .equ  TXTAREA      = $41        ; Set Text Area
50
 .equ  ADPSET      = $24        ; Set Adress-Zeiger    
51
 .equ  WRITEINC    = $C0        ; Schreibt Daten und erhöht Adresszeiger um 1
52

53
 .equ  MODE_ATTR    = 0b10000100    ; Display an - Mode TEXT-ATTRIBUT
54
 .equ  D_MODE_TXT    = 0b10010111    ; Text an
55
 .equ   crusormode      = 0b10100111
56

57
 ; einzelne Bits des Statusbytes vom Display
58
 .equ  STA0    = 1          
59
 .equ  STA1    = 0
60

61

62

63

64
 .CSEG                        ; was nun folgt, gehört in den FLASH-Speicher
65

66
;===============================================
67
;=    Start Adresse 0000 /Interruptvektoren     =
68
;===============================================
69
 .org 0x000
70
  rjmp Init      ; Interruptvektoren überspringen
71

72
;===============================================
73
;=    INITIALIZE                    =
74
;===============================================
75

76
INIT:
77

78

79

80

81

82
ldi     r16, LOW(RAMEND)            
83
out     SPL, r16                         
84
ldi     r16, HIGH(RAMEND)              
85
out     SPH, r16
86

87

88

89

90
  ser temp1
91
  out DDRB,  temp1    ; gesamter (Steuer)Port als Ausgang
92
  ldi temp1, 0b00011111  ; Steuerleitungen low-active, deshalb im Ruhezustand auf high
93
  out PortB, temp1
94

95
  ser temp1
96
  out DDRA, temp1      ; Datenport im Ruhezustand als Ausgang
97
  out DDRD,temp1
98

99

100

101

102
  rcall Init_GLCD
103

104

105
;************ adress pointer set **************
106
  ldi   daten, 0
107
  rcall WriteByte
108
  ldi   daten, 0
109
  rcall WriteByte
110
  ldi   command, ADPSET
111
  rcall WriteCMD
112

113

114
;************ write Text 'FELIX' **************
115
  ldi daten, 0x26      ;F
116
  rcall WriteByte
117
  ldi command, WRITEINC  ;Adresszeiger erhöhen
118
  rcall WriteCMD
119

120
  ldi daten, 0x25      ;E
121
  rcall WriteByte
122
  ldi command, WRITEINC  ;Adresszeiger erhöhen
123
  rcall WriteCMD
124

125
  ldi daten, 0x2C      ;L
126
  rcall WriteByte
127
  ldi command, WRITEINC  ;Adresszeiger erhöhen
128
  rcall WriteCMD
129

130
  ldi daten, 0x29      ;I
131
  rcall WriteByte
132
  ldi command, WRITEINC  ;Adresszeiger erhöhen
133
  rcall WriteCMD
134

135
  ldi daten, 0x38      ;X
136
  rcall WriteByte
137
  ldi command, WRITEINC  ;Adresszeiger erhöhen
138
  rcall WriteCMD
139

140

141
;===============================================
142
;=    Hauptschleife                 =
143
;===============================================
144
Hauptschleife:          
145

146

147

148

149

150
rjmp Hauptschleife
151

152

153
 ;------------------------------------------------------
154
 ;   Subroutinen / ISRs
155
 ;------------------------------------------------------
156
Init_GLCD:
157
; Reset 
158
  cbi    PortB,reset    ; Reset auf L
159
  rcall delay        ; am anfang kurz warten
160
  sbi    PortB,reset    ; Reset auf H
161
  rcall delay
162
    
163

164

165
; text start adress set 
166
  ldi   daten,low (TXT_BASE)
167
  rcall WriteByte
168
  ldi   daten,high(TXT_BASE)
169
  rcall WriteByte
170
  ldi   command,  (TXTHOME)
171
  rcall WriteCMD  
172

173
; text area adress set 
174
  ldi   daten,    (SPALTEN)
175
  rcall WriteByte
176
  ldi   daten,     0x00
177
  rcall WriteByte
178
  ldi   command,  (TXTAREA)
179
  rcall WriteCMD  
180

181
; Text/Grafik mode set 
182
  ldi   command, MODE_ATTR  ; Textmodus, internal character gen. mode
183
  rcall WriteCMD              
184

185
; Text/Grafik mode set 
186
  ldi   command, crusormode  ; Textmodus, internal character gen. mode
187
  rcall WriteCMD
188

189
; mode set 
190
  ldi    command,D_MODE_TXT  ; Text ON, Cursor OFF, Blink OFF
191
  rcall WriteCMD
192

193
  ;  rcall LCD_ClrTxt
194
ret
195

196
;********************************************
197
;  Übergibt Befehl an Display (1 Byte)    
198
;********************************************
199
WriteCMD:
200
  rcall StatusCheck  
201
  out PORTA, command      ; command ausgeben
202

203
  cbi PortB, CE        ; übernahmeimpuls an steuerleitungen
204
  cbi PortB, WR
205
nop
206
nop
207
nop
208
nop
209
  sbi PortB, WR        ; übernahmeimpuls an steuerleitungen
210
  sbi PortB, CE
211
ret
212

213

214
;*********************************************
215
;  Übergibt Daten an Display (1 Byte)    
216
;*********************************************
217
WriteByte:
218
  rcall StatusCheck
219
  out PortA, daten    ; lowbyte ausgeben
220

221
  cbi  PortB, CD
222
nop
223
nop
224
nop
225

226
  cbi PortB, CE      ; übernahmeimpuls an steuerleitungen
227
  cbi PortB, WR
228
nop
229
nop
230
nop
231
nop
232
  sbi PortB, WR      ; übernahmeimpuls an steuerleitungen
233
  sbi PortB, CE
234
nop
235
nop
236
nop
237
    sbi  PortB, CD
238
ret
239

240

241
;*********************************************
242
;  Liest Status vom Display    
243
;*********************************************
244
StatusCheck:
245
  clr temp1
246
  out DDRA, temp1      ; Datenport als Eingang für Statusantwort des Displays  
247
  cbi PortB, CE        ; Display enable
248
  
249
    _status_check_1:
250
  cbi PortB, RD        ; übernahmeimpuls an steuerleitungen
251
    in   temp1, PinA          ; Daten vom Display kommend einlesen
252
  sbi PortB, RD        ; übernahmeimpuls an steuerleitungen
253
  
254
  sbi portd,2    
255

256
    
257
          ; Leseanforderung beenden
258
    andi temp1,(1<<STA0)+(1<<STA1)
259
    cpi  temp1,(1<<STA0)+(1<<STA1)    ; Püfen ob Bits Bits STA0 und STA1 gesetzt sind
260
  brne _status_check_1        ; warte auf sta0 und sta1 =1
261
  
262
  cbi portd,2
263

264
   sbi  PortB, CE      ; Display disable
265
   ser temp1        ; Datenport als Ausgang  
266
   out DDRA, temp1        
267
ret
268

269

270
;***************************************************************************
271
;  Löscht Textbereich vom Display   
272
;  Scratch-Reg: -
273
;***************************************************************************
274
LCD_ClrTxt:
275
    ldi   ZL,low (TXT_ZEILEN*SPALTEN)    ; Berechnung der zu löschenden Speichergröße
276
    ldi   ZH,high(TXT_ZEILEN*SPALTEN)    ; i = TXT_ZEILEN*SPALTEN
277

278
    ldi   daten,low  (TXT_BASE)        ; Adresszeiger setzen
279
    rcall WriteByte
280
    ldi   daten,high (TXT_BASE)
281
    rcall WriteByte
282
    ldi   command,   (ADPSET)
283
    rcall WriteCMD
284

285
  _lcd_clr_txt_loop:        ; löscht Textspeicher
286
    clr    daten
287
    rcall WriteByte        ; Null in Speicherzelle schreiben
288
    ldi   command, WRITEINC    ; Adresszeiger erhöhen
289
    rcall WriteCMD
290
    subi  ZL,1          ; i = i-1
291
    sbci  ZH,0
292
    brcc  _lcd_clr_txt_loop    ; wenn i = 0 --> Speicher gelöscht
293
  
294
ret
295
;*********************************************
296
;  Wartezeit für Reset   
297
;*********************************************
298
delay:            ; Einschaltverzögerung 5ms
299
push r16
300
push r17
301

302
ldi r16,255
303
ws1:
304
ldi r17,255
305
ws2:
306
dec r17
307
brne ws2
308
dec r16
309
brne ws1
310

311
pop r17
312
pop r16
313
ret
314

315
 ;------------------------------------------------------
316
 ;   ENDE
317
 ;------------------------------------------------------
318
 Ende:  
319
        rjmp Ende



V0 habe ich auf masse gelegt.
Wenn ich einen RESET auslöse ist ein einzelner 1 pixel breiter Strich 
auf dem display zu sehen, was für mich heist das das display noch 
funktioniert und masse an V0 als Displayspannung in ordnung ist. wenn 
ich V0 an -12V lege wird der strich zwar etwas deutlicher aber das wars 
auch.


Bitte helft mir :(

lg Christian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren