PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD Problem



Robotik
25.12.2005, 15:07
Hi,

ich habe ein LCD von Optrex DMF5006NY-FW.
Zum testen habe ich es an meine Atmega8 geklemmt und folgenden Code verwendet:


'--------------------------------------------------------------------
' SED.BAS
' demonstrates the SED based graphical display support
'--------------------------------------------------------------------
'some routines to control the display are in the glcdSED.lib file
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 1000000 'Quarz: 3,6864 MHz
$lib "glcdSED.lbx"





'First we define that we use a graphic LCD
Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portc , Ce = 5 , Cd = 4 , Wr = 3 , Rd = 2 , Reset = 1

'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE =CS Chip Enable/ Chip select
'CD=A0 Data direction
'WR= Write
'RD=Read
'RESET = reset

'Dim variables (y not used)
Dim X As Byte , Y As Byte


'clear the screen
'Cls
Lcd "wer"
'specify the font we want to use
'Setfont Font16x16
For X = 0 To 140
Pset X , 20 , 255 ' set the pixel
Next

Line(0 , 0) -(23 , 27) , 255
Pset 10 , 10 , 1
'You can use locate but the columns have a range from 1-132

'When you want to show somthing on the LCD, use the LDAT command
'LCDAT Y , COL, value
'Locate 1 , 1
Lcd "123"
'lcdat accepts an additional param for inversing the text
Lcdat 2 , 1 , "123" , 1 ' will inverse the text

'Now use a different font
'Setfont Font8x8
'since the 16*16 font uses 2 rows, show on row 3
'Lcdat 3 , 1 , "123"

'End 'end program



'Optional try this out by unremarking the block remarks
'draw a line
Line(0 , 0) -(128 , 64) , 1
'Line(0 , 64) -(128 , 0) , 1
'check for circles

Wait 2
Display Off
Wait 2
Display On

'use glcdcmd to send a control byte to the display
Glcdcmd &HA7 ' reverse display
Wait 1
Glcdcmd &HA6 ' normal display

'adjust contrast
For X = 0 To 63
Glcdcmd &H81 ' electronic volume (contrast)
Glcdcmd X ' higher means more contrast
Waitms 100
Next

'you could display a picture too
'Showpic 8 , 8 , Plaatje
End


'end of block remark on line above

'we need to include the font files
'$include "font8x8.font"
'$include "font16x16.font"


'Plaatje:
'include the picture data
'$bgf "smile.bgf"


Das ist einfach nur das Testbeispiel. Leider ist das Display grösser als 128 x 64, vieleicht 240 x 128 Pixel genau weis ich das nicht. (ich kann sie ja mal zählen)
Der Anzeigebereich ist 120mm x 75mm.
Im Beispiel und in der Hilfe steht für den SED Chipsatz muss man 128 x 64 benutzen.
Nun meine Frage wie soll das gehen wen das Display grösser ist, es zeigt nix an nur wenn das Programm läuft tauchen kurz weiße Linien auf die aber gleich wieder verschwinden. Bei erneuten Reset des Atmega 8 kommt das selbe wieder.
Ich habe folgende Pinbelegung für das LCD mir zusammen gesucht


1. D0
2. D1
3. D2
4. D3
5. D4
6. D5
7. D6
8. D7
9. CS (Ce)
10. A0 (Cd)
11. WR
12. RD
13. RES (Reset)
14. Vdd (+5V)
15. Vss (GND )
16. Vcont (10K mittlerer Pin am Potentiometer)
17. Vee (negativ voltage)
18. SEL1

Kann mir jemand helfen ich wies nicht mehr weiter, ich sitz daran schon seit ein paar Tagen und komme nicht voran!!!

Marco78
25.12.2005, 16:40
Ich habe folgende Pinbelegung für das LCD mir zusammen gesucht

Nachdem ein paar hilfreiche Links hier im Forum auchgetaucht sind ;)


Kann mir jemand helfen ich wies nicht mehr weiter, ich sitz daran schon seit ein paar Tagen und komme nicht voran!!!
Wie sicher bist du dir, das das Display wirklich 100%ig funktioniert?
Wie und wieviel negative Spannung erzeugst du?
Hast du das LCD schonmal am PC angeschlossen und es dort getestet? Ich empfehle dazu LCDHype.

Dann schau mal in Forum von MCS oder allgemein im Internet, was Bascom mit größeren Auflösungen bei SED-Chips macht.

Robotik
25.12.2005, 17:09
Ich bin mir nicht ganz sicher ob es 100% in ordnung ist aber ich hoffe es :-)
Ich teste das mal mit dem LCDHype.
Achso und -9V erzeuge ich
muss das mehr oder weniger sein???

Marco78
25.12.2005, 17:55
Wenn es mit -9V mit LCDHype was anzeigt, dann nicht, aber ich tippe bei der Größe auf eine geringere Spannung. Es können bis zu -21V für den Kontrast nötig sein.

Sehr wichtig ist auch, das die Kontrastspannung nur dann anliegen darf, wenn auch Versorgungsspannung da ist. Entweder müssen beide Spannung gleichzeitig eingeschaltet werden oder der Kontrast später. Bei Ausschalten auch gleichzeitig oder Kontrast früher.

Ist Pin17 evtl ein Ausgang? Vielleicht wird da die negative Spannung auch schon erzeugt?!

Robotik
25.12.2005, 18:25
nein da liegen +4,3V an.
Der Kontrast scheint doch aber da zzu sein da ich die Linien doch richtig sehe. Zwar bloß kurz aber sie sind da weiße linien auf blauem Hintergrund.

Marco78
25.12.2005, 19:24
Im Beispiel und in der Hilfe steht für den SED Chipsatz muss man 128 x 64 benutzen.

Wo steht das denn? Weder im Beispiel, das du verwendet hast, noch in meiner Hilfe!
Du 240X128 kannst du auch einstellen. Wichtig ist das SED!

Der AVR laüft auch wirklich mit 1MHz?

Wie ist deine Resetbeschaltung aufgebaut?

Ich habe dir in einem anderen Beitrag ja schon ein paar Links gegeben? Hast du dir die schonmal ganz angeschaut?
Ich denke mal nicht. Weil die -9V könnten dein LCD schon gekillt haben. In einer der Links ist ein Schaltplan aufgeführt. Und zwar nicht als Link oder Download, sondern frei für jedermann und Gäste sichtbar!

EDIT: Und das es eine CCFL-Hintergrundbeleuchtung hat, steht da auch!!!

Robotik
25.12.2005, 20:45
Ja ich habe mir die Links ganz genau angeschaut und die schaltpläne sind falsch!!!!!!!!!!!!!!!!!!!!!!!
Warum??? Ganz einfach weil das Display mit diesen Pinbelegungen nicht funktioniert!!!!
Es ist eine Led auf der Rückseite die anzeigt ob das Display Strom hat und diese Leuchtet nur bei dieser Pinbelegung wo ich noch keinen Schaltplan zu gefunden habe!!!!!!!!!!
Displaybezeichnung: Optrex DMF5006NY-FW mit SED1330F

Die Beleuchtung funktioniert nun auch nur der Rest noch nicht.

Ich habe das Buch Bascom-AVR Sprachbefehle da steht das drin und irgendwo hatte ich auch gelesen das man das SED Beispiel nehmen soll.
Der AVR läuft mit 1MHz und lief auch schon mit einem Externen Quarz.
Reset ist einfach an Portc 1 angeklemmt.
Ist das falsch????

PS.: ich habe alle Links und noch ein paar mehr angeschaut, wenn du in google nach dem Display versuchst zu suchen weist du wieviel ich schon angeschaut habe.

Mit dem Programm LCDHype ist es nicht zur Azeige zu bewegen.