PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit EA DOG 16x2



m_herr
11.08.2006, 19:32
Hallo,

Habe jetzt eine Platine, aber das Display bleibt tot. Nichts zu sehen.

Kann mir freundlicherweise jemand sagen, wie es angeschlossen wird?
Ich bin zwar wie im Datenblatt vorgegangen, aber nichts zu sehen
Ich denke, daß mein Kontrast zu niedrig ist und ich deswegen nichts sehe.
Was wird mit Pin 21(CAP1N) und Pin22(CAP1P) gemacht?
Benutze einen M16 und das Display ist ein 16x2 mit 5V und 4Bit.

Wäre sehr nett, wenn mir da jemand helfen könnte.

Gruß

Thorvard
19.08.2006, 01:45
Wie im Thread http://www.mikrocontroller.net/forum/read-1-149112.html beschrieben hab ich ein EA DOG 16x2 im SPI Mode an einen ATTiny26 folgendermaßen angeschlossen. (Bild im Anhang)
Ich benutze PA.4 bis PA.7 zur Ansteuerung.
Weiter unten in dem Thread is nen Bascom Beispiel Source den ich größtenteils übernommen hab. Hier meine angepasste Version:


'--------------------------------------------------------------------

' Autor: Robert Mayr

'--------------------------------------------------------------------

$prog , &HF1 , , 'Hardware-Einstellungen fuer internen 1 MHz Taktgeber
$crystal = 1000000 '1 MHz, Damit auch die Software davon weiss
$regfile = "at26def.dat" 'Wir benutzen einen Tiny26

'LCD Command Codes
Const Cleardisplay = &H01
Const Returnhome = &H02


'--------------------------------------------------------------------

'******* Konfiguration PortA 4-7 zur LC-Ausgabe mit DOGM162 *******

'--------------------------------------------------------------------

Ddra = &B11110000 'Pin PA4-7 ist Ausgang
'PA4 = SI
'PA5 = CLK
'PA6 = RS
'PA7 = CSB

Porta = &B111100000 'PullUp von PA4-7 aktivieren



Dim J As Byte

Dim Text As String * 16

Dim Ausgabe(16) As Byte At Text Overlay

Dim I As Byte

'--------------------------------------------------------------------

'********* vor allem anderen, gebe was auf das Display
Gosub Lcinit

Gosub Intro
'Startbildschirm

End 'end program

'********* Daten Seriell ausgeben **********
Schiebe:
Waitus 30

Reset Porta.7 'CSB auf 0

Shiftout Porta.4 , Porta.5 , J , 1 , 8 , 10 'schiebe 8 bits mit der steigenden Flanke und 10us Delay raus

Set Porta.7 'CSB auf 1

Return

'--------------------------------------------------------------------

'******* Hier wird die erste Meldung aufs Display gezaubert *********

'--------------------------------------------------------------------

Intro:

'Cls 'clear the LCD display

'Cursor Off
J = &H80 : Gosub Schiebe 'select the upper line
Text = "1234567890123456" 'display this at the top line

Gosub Textaus


J = &HC0 : Gosub Schiebe 'select the lower line
Text = "abcdefghijklmnop" 'display this at the lower line

Gosub Textaus

Return

'--------------------------------------------------------------------

'********************** Textausgabe auf Display *********************

'--------------------------------------------------------------------

Textaus:

Set Porta.6 'RS auf 1

For I = 1 To 16

J = Ausgabe(i)

Gosub Schiebe
Waitms 200

Next I

Reset Porta.6 'RS auf 0

Return

'--------------------------------------------------------------------

'********************** Initialisiere LC-Display ********************

'--------------------------------------------------------------------

Lcinit:
Waitms 50

Set Porta.5 'CLK=1
Set Porta.7 'CSB auf 1
Reset Porta.6 'RS auf 0
Reset Porta.7 'CSB auf 0

'Initialisiere LCD

J = &H38 : Gosub Schiebe '0011 1000 8Bit 2Lines IS[0,1]
J = &H39 : Gosub Schiebe '0011 1001 8Bit 2Lines IS[0,1]

J = &H1D : Gosub Schiebe '0001 1101 Cursorshift: Screen Right IS[0,1]

J = &H7C : Gosub Schiebe '0111 1100 Contrast = 0C -> 12/64

J = &H50 : Gosub Schiebe '0101 0000 Icons off, Booster off, Contrast 00

J = &H6C : Gosub Schiebe '0110 1100 Fon = On, Rab = 4

Waitms 200

J = &H0F : Gosub Schiebe '0000 1111 Display = On, Cursor = On, CursorBlink = On

J = &H01 : Gosub Schiebe '0000 0001 Clear Display

J = &H06 : Gosub Schiebe '0000 0110 DDRam Increments, no DisplayShift

Set Porta.7 'CSB auf 1

Return

Skulk
09.01.2007, 11:39
Es tut mir leid dass ich Leichenschänder spiele und einen so alten Thread wieder ausgrabe.
Allerdings glaub ich, mein Problem passt hier recht gut rein.

Ich habe versucht das Dog-M162 mit der hier angegebenen Verdrahtung (5V SPI, Ohne Hintergrundbeleuchtung) und dem hier angegebenen SourceCode zum laufen zu bekommen.

Ich habe den SourceCode auf einen ATMega8 portiert, und die Pins PC0-PC3 genommen.

Allerdings tut sich nichts. gar nichts. Das display verändert sich in keinster weise.
Da ich mit diesem Display sonst keine weiteren Erfahrungen habe würde ich gerne wissen:

Woran erkenne ich dass das Display nicht defekt ist? (wird bei Spannung-anlegen z.b. die erste zeile Schwarz? Von einem HD4478 Display, welches ich vor ewigkeiten am LPT-Port meines PCs betrieben habe, kenne ich es, dass es beim Booten zuerst einen schwarzen Balken in jeder ungeraden Zeile darstellt. Erst wenn es initialisiert wurde, verschwindet dieser.

Sollte das beim DOG-M auch passieren, wenn ich die 5V Versorgungsspannung anlege?

Liebe Grüße aus Nürnberg, Skulk

Thorvard
09.01.2007, 16:53
Hab eben getestet, das Display ist blanko wenn Versorgungsspannung anliegt.
Überprüf mal ob Deine Verkabelung stimmt und ob Du wirklich alles auf PC0-3 geändert hast.
Mit wieviel MHz läuft Dein ATMega? Mein Tiny läuft mit 1 MHz, kann sein das Du am Anfang, bevor das Display das erste mal Angesprochen wird, ne Pause einbauen musst (1 sek reicht locker, bei mir Initialisiere ich noch andere Hardware bevor ich ans Display was schicke). Kann sein das der Mega das Display mitten beim Booten aus dem Tritt bringt. Generell kannste die Delays größer gestalten, auch beim Shiftout, vielleicht isses nen Timing prob.
Poste mal Deinen adaptierten Source.

Oder das Display is aus irgendnem Grund übern Jordan.

Skulk
09.01.2007, 21:37
Leider hats immernoch net geklappt.

ich hab meine platine durchgemessen und dabei zwar festgestellt das ich vergessen habe "reset" auf high zu ziehen und das der die buchsenleiste in der das Display sitzt leichten wackelkontakt aufweisten, aber daran lag es trotzdem net.
ein "Wait 1" hab ich eingefügt, half auch nix

ich probier jetzt nochmal mit 4bit modus und den bascom-lcd-befehlen herum und wenn das nix hilft hol ich mir nen tiny26 um programmierfehler auszuschliessen (hab leider nur mega32, mega8 und tiny13 rumliegen) und wenn das immernoch net hilft, dann hol ich mir halt ein neues DOG...


vielen dank jedenfalls für deine prompte hilfe :-)

Skulk
12.01.2007, 23:07
Also mein Dog-M ist NICHT defekt. Im 4Bit-Modus über die Bascom Library funktioniert alles einwandfrei.

Ich probier es morgen nochmal über SPI, nachdem ich so noch ein bischen rumprobiert habe ^^

Thorvard
13.01.2007, 12:15
Dann is wohl irgendwo nen Fehler im Code (meinerseits oder Deinerseits) oder in der Verdrahtung (die von mir gepostete Schaltung hab ich geprüft, is auch identisch mit der im Datasheet).
Magst mal Deinen adaptierten Code posten?

Skulk
13.01.2007, 14:10
Mach ich, aber um peinlichkeiten zu vermeiden, werd ichs vorher nochmal probiern :)
jetzt wo ich weiss wie das display reagieren muss und wie es aussieht wenns passt, kann ich nochmal die verdrahtung prüfen. ich werfe mal keinen blick auf die skizze sondern machs direkt vom datenblatt...und dann versuch ichs einfach nochmal :)

Skulk
14.01.2007, 20:35
Sorry für den Stress den ich hier verursacht habe ^^

Nachdem ich die Schaltung nochmal auf dem Steckbrett aufgebaut habe funktioniert es einwandfrei. Lag wohl immernoch an einem Kontaktproblem meiner Adapterplatine...naja egal. Ich weiss jetzt dass mein Display geht, und dass es mit diesem Stück Code genauso perfekt geht :)

Und das ich wiedermal zu schlampig gearbeitet hab ^^

Vielen dank jedoch für deine Anteilnahme!
Schönen Abend und einen Lieben Gruß aus Nürnberg!

Skulk

Tommy75
25.07.2007, 19:42
Hallo !

Ich bin neu auf dem Gebiet der Controller Programmierung und habe ein Problem.

Benutze einen mega8 und ein DOGM162 im 4bit 5v Modus und Bascom.

Nach 3 Tagen probieren, schaffe ich es nun nicht, das Display zum leben zu erwecken.

Kann mir von euch bitte jemand einen Sourcecode für Bascom geben, der sicher funktioniert und das Display initialisiert und danach einen kleinen Text ausgibt. Befürchte nämlich langsam, dass das Display kaputt sein könnte.

Vielen Dank für eure Hilfe.

Gruß Tommy

Tommy75
25.07.2007, 21:31
Hat sich erledigt !

Es funktioniert endlich !

Lag am Kontrast ....

Gruß Tommy