mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nochmal EA DOGM162


Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tag auch,
ich habe ein problem mit meinem EA DOGM162-display.
ich weiss, dass es dazu schon einen thread gibt, aber des ist
mittlerweile etwas sehr lang und unübersichtlich geworden, so hielt ich
es für eine bessere idee einen neuen thread zu erstellen.
also folgendes:
ich habe ein uC-board mit dem siemens C517A aufgebaut.
das funktioniert mittlerweile schon recht gut, und nachdem es mir jetzt
verleidet ist, immer nur LEDs leuchten zu lassen und über den UART
sinnlose daten mit meinem laptop auszutauschen habe ich mich nochmal an
das display gewagt.
nun habe ich es im 8 bit-modus: DB0...DB7 an P4, E an P3.3, RS an P3.4
und RW an P3.5 - soweit so gut. RESET habe ich mit dem resetausgang des
microcontrollers verbunden (der C517A hat einen reset ausgang, der
jeweils bei einem reset auf low geht).
alles ist genau gemäss datenblatt des displays angeschlossen.
nun versuche ich schon seit stunden, das display zu initialisieren - es
geht einfach nicht!! nie tut sich was. ich habe die init-beispiele aus
den datenblatt des ST7036 und des displays selbst probiert - ohne
erfolg. das display ist NEU - das kann doch nicht kaputt sein!! was
mache ich falsch? liegts am timing? ich habe jetzt die watezeiten
soweit heraufgeschraubt, dass ich mittlerweile 65 ms warte. ist das zu
lang? oder immernoch zu kurz? dazu prüfe ich jedesmal das busy flag,
doch das scheint sich überhaupt nie zu ändern. es ist immer H.

ich wäre echt froh, wenn jemand dazu was wüsste und mir helfen könnte,
langsam verzweifle ich echt.

grüsse
  tobias

Autor: Tino N. (tino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal meine Init hab auch ewig gebraucht bis ich das Teil am Laufen
hatte .

BYTE const LCD_INIT_STRING[9] =
{0x29,0x1c,0x52,0x69,0x70,0x0c,0x28,0x01,0x06};




void lcd_init() {
    BYTE i;
    set_tris_lcd(LCD_WRITE);
    lcd.rs = 0;
    lcd.rw = 0;
    lcd.enable = 0;
    delay_ms(5);
    for(i=1;i<=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
      delay_ms(5);
    for(i=0;i<=8;++i)   {
       lcd_send_byte(0,LCD_INIT_STRING[i]);
      delay_ms(5);
    }

Hoffe das hilft dir soweit . Achja hast du das Teil im 3,3V oder 5V
Modus laufen ?
Ach was mir da gerade auffällt ... Falls mich nicht alles täuscht ist
der Reseteingang des Displays nicht auf low zu ziegen sondern auf High
bei Reset . Du würdest praktisch immer einen Reset machen . Also prüfe
mal dein Schaltbild denn der Reset des DOG ist High aktiv .


Mfg Tino

Autor: Tino N. (tino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry ist doch Low-aktiv dann war das wohl ein anderes Display mit dem
Reset . Aber guck mal über die Init vielleicht holft sie dir ja .

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo tino,
danke für dein programmbeispiel.
ich probiere das morgen aus, heute reichts wahrscheinlich nicht mehr
;)
ich habe mich in der zwischenzeit of über das etwas amateurhafte
datenblatt geärgert, das electronic assembly zu dem display anbietet.
die sache ist nicht ganz lupenrein, z.b. hängt der reset-pin mal an
plus, mal an minus, je nach dem, welches bildchen oder welche tabelle
man anschaut. dann ist der reset-pin mal als "RESET" und ein anderes
mal als "/RESET" bezeichnet... welche bezeichnung gilt jetzt??
zumindest das weiss ich ja nun dank deiner beschreibung ;)

gruss
  tobias

Autor: Wolfram Hildebrandt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Datenblatt von Electronic Assembly hat mehrere Fehler.
Sehr lustig. Man kann sie aber finden, wenn man etwas mitdenkt.
Ich habe hier irgendwo im Forum einige Code-Beispiele u.a. auch in C
zur Verfügung gestellt. Daran kann man sich dann orientieren.
Das Ganze ist im Endeffekt sehr einfach und sollte hinzubekommen sein.

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo wolfram,
kann schon sein, dass du recht hast, wenn d sagst, man finde die fehler
im datenblatt wenn man mitdenkt.
aber ich habe leider noch absolut keine erfahrung mit lc-displays,
deshalb meine ich KANN man nicht wissen, dass der RESET-pin low-aktiv
ist, wenn man es nicht schon anderswo so gesehen hat (das jetzt nur als
beispiel).
ich werd auf jeden fall noch nach einigen codebeispielen von dir
suchen.

gruss
  tobias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.