Forum: Mikrocontroller und Digitale Elektronik GLCD MGLS240128TZ-10


von Christian (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Udo (Gast)


Lesenswert?

Wie kommst du darauf das die Pinbelegung
nicht stimmt ?
Wieso meinst du das es das Datenblatt ist, welches
du verlinkt hast ?
Ohne richtigem Datenblatt wird das nix.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Christian schrieb:
> Ich habe bei ebay ein Display ersteigert;
> Ebay-Artikel Nr. 380801341244
>
> Die pinbelegung auf der Ebayseite kann man direkt vergessen da sie nicht
> uebereinstimmt und ich finde kein datenblatt zum display.

Hast du mal deinen Verkäufer gefragt? Der verhökert das Teil nämlich 
regelmäßig auf Ebay.

von u8glib (Gast)


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

von Christian (Gast)


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

von Christian (Gast)


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 ?

von Christian (Gast)


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

von Christian (Gast)


Lesenswert?

Ok für den nächsten der es braucht: TZ10 hat keinen internen DC/DC 
wandler Dh: V0 an  ca -15 V

Controller ist T6963C aus dem Beitrag kann man den code verwenden:

Beitrag "LCD mit T6963C in ASM"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.