www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Dogm128 testen


Autor: Wolfgang (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebes Forum,

ich soll ein paar Dogm-Displays testen. Es sind alles 128. Ich bin 
leider kein Fachmann auf dem Gebiet und habe daher die letzten Tage viel 
auf dieser Seite verbracht.

Hier mal kurz ein paar Infos zu meiner Umgebung:
AVR Studio 4.18
Atmega32 auf STK500
Programmiert wird mit einem JtagIce MK2
Das Display ist wie folgt mit dem Atmega verbunden:
PD7-> SCL
PD6-> SI
PD5-> A0
PD4-> RST
PD3-> CS

Das angehängte Programm habe ich zum größten Teil aus dem Forum hier.
Ich möchte im Prinzip einmal alle Pixel ansteuern und dann wieder zurück 
setzten. Leider tut sich auf dem Display garnichts.
Ist meine Routine grober Unfug oder kann es etwas anderes sein?

Ich möchte von euch kein fertiges Programm haben sondern nur wissen wie 
ich an die Sache heran gehe. Da ich demnächst wohl öfters auf dem Gebiet 
tätig sein werde, bin ich für jede Erfahrung dankbar.

Gruß Wolfgang

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ist meine Routine grober Unfug oder kann es etwas anderes sein?

Ich sage nur DDRx.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger,

danke für die Info. Ich muss also mit DDRD = 0xff; den Port D als 
Ausgang deklarieren. Ist dies so richtig?
Muss dies an einer bestimmten Stelle(im Programm) geschehen oder ist das 
egal?

Gruß Wolfgang

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es jetzt an verschiedenen Stellen probiert. Ohne Erfolg.
Auch die einzelne Deklaration mit bsp.: DDRD |= (1 << DOGCS); brachte 
keinen Erfolg.
Ich bin jetzt zuhause und habe nur ein Display mitgenommen. Kann es sein 
das genau dieses defekt ist?

Den Anschluss habe ich nach Datenblatt vorgenommen. Ich habe auch schon 
geprüft ob die 3,3V sauber anliegen.

Gruß Wolfgang

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du brauchst auf jeden Fall erstmal ein Gut-Muster, ohne geht gar 
nichts...

dann lese dich in SPI ein, voallem was da Ausgang ist und was Eingang

dann kannst an deinem GUT-Muster dein Programm testen.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo docean,

ich fürchte ich versteh dich nicht recht. Was ist ein Gut-Muster?

Und wenn ich mich nicht verguckt habe, muss das Display an einen Ausgang 
vom Microcontroller. Eingänge werde also nicht benötigt. Zumal ich vom 
Display auch keine Daten lesen kann.
Oder habe ich da was übersehen?

Gruß Wolfgang

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Eingänge werde also nicht benötigt. Zumal ich vom
>Display auch keine Daten lesen kann.
>Oder habe ich da was übersehen?

Das ist korrekt.
Als erstes solltest du dafür sorgen das der Reset
Pin auch auf High ist wenn du in das Display schreibst;)

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Alle Kondensatoren dran? Und welcher Typ?

MfG Spess

Autor: Wolfgang (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das Programm gerade mal überarbeitet.
Leider immernoch ohne Erfolg.
Ich habe in vielen Programmen gesehen das dort Header-Dateien verwendet 
wurden. Ist dies zwingend notwendig oder geht es auch ohne?

Ist es vll einfacher nur einen Pixel einzeln anzusteuern?
Ich will möglichst einfach anfangen und mich dann immer weiter 
vertiefen.
Das Prinzip einer SPI-Schnittstelle habe ich, so denke ich, verstanden. 
Es hapert immoment an der Ansteuerung...

Gruß Wolfgang

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe das Programm gerade mal überarbeitet.

Reset ist immer noch low.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Reset ist immer noch low.

Upps, doch nicht. Was soll denn das in dogSPIout()?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ist es vll einfacher nur einen Pixel einzeln anzusteuern?

Nein, weil nicht möglich. Acht Pixel sind jeweils in einem Byte 
verpackt. Ehrlich gesagt solltest vielleicht erst mal das Datenblatt vom 
Display und vom verwendeten Controller (ST7565R) lesen.

MfG Spess

Autor: Wolfgang (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Holger
Wenn die Funktion dogOut aufgerufen wird, werden ja auch die Daten 
übertragen. Daher muss hier Reset auf high, oder nicht?

@Spess
Das mit den "Datenwörtern" übertragen habe ich mir gerade nochmal 
angeschaut.
Ein irres Gewusel an einsen und nullen... Da bleibe ich wohl lieber 
erstmal bei meiner Variante.

Im Anhang ein Bild vom heimischen Aufbau.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Im Anhang ein Bild vom heimischen Aufbau.

Elkos! Habe ich fast befürchtet. Ich habe es selbst nicht getestet, aber 
mit Elkos hatten hier schon etliche Probleme. Mit 1µ-Kerkos laufen die 
Dogs bei mir tadellos. Mess mal die Spannung an Vout. Sollte >=10V sein.

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "Library für EA-DOGM Grafikdisplays inkl. Font-Generator"

Um das mal abzukürzen. Da gibt es alles fertig.
Zwar nicht per Software SPI, aber man kann sich
einmal im Leben ja mal einen anständigen Controller kaufen;)

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Um das mal abzukürzen. Da gibt es alles fertig.
>Zwar nicht per Software SPI, aber man kann sich
>einmal im Leben ja mal einen anständigen Controller kaufen;)

Was hat das mit anständigen Controller zu tun? Im Gegensatz zur hier 
öfters propagierten Soft-UART ist eine Soft-SPI wesentlich einfacher und 
problemloser.

MfG Spess

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Spess
AHA :) Wobei es ja eigentlich keinen Unterschied machen sollte, sofern 
richtig angeschlossen. Dies habe ich gerade nochmal geprüft. Aber ich 
werde mal morgen ein paar KerKos mitnehmen und es dann nochmal 
versuchen.

@ holger
Ich möchte eigentlich nicht auf etwas fertiges zurückgreifen. Ich will 
den langen Weg der Selbsterfahrung gehen, denn nur so sammel ich auch 
Erfahrungen. Und das AHA- Erlebnis ist einfach um Welten besser ;)


Ich habe gerade festgestellt das ich wohl einen kleinen Kabeldreher 
hatte. Leider gehts immer noch nicht.
Ist mein Programm denn soweit okay?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>AHA :) Wobei es ja eigentlich keinen Unterschied machen sollte,...

Was liegt denn nun an Vout (Pin32) an?

MfG Spess

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm leider nur 2,32V. Das ist wohl zu wenig...
Also doch Kerkos !? Oder ist hat das Display eine Macke?

Gruß Wolfgang

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich möchte eigentlich nicht auf etwas fertiges zurückgreifen. Ich will
>den langen Weg der Selbsterfahrung gehen, denn nur so sammel ich auch
>Erfahrungen. Und das AHA- Erlebnis ist einfach um Welten besser ;)

Und was hindert dich daran mal bei anderen reinzusehen die
diese Erfahrungen schon gesammelt haben? Da findest du wertvolle
Informationen. Stell dir mal vor es gäbe kein Internet.
Deine Frage nach Hilfe hier ist doch nichts anderes. Du möchtest
das dir jemand Code gibt oder deinen Code verbessert. Vieleicht
hat ja keiner Lust deinen Code anzusehen, den mit anderen zu
vergleichen und dir dann zu sagen was du falsch machst?

>Ich möchte eigentlich nicht auf etwas fertiges zurückgreifen.

So und jetzt mal ein bisschen härter; Dann mach deinen
Scheiß doch alleine! Ich tue es ja auch;)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Oder ist hat das Display eine Macke?

Auf dem Bild ist jedenfalls sowas wie ein Riss zu erkennen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Also doch Kerkos !? Oder ist hat das Display eine Macke?

Eher Ersteres.

MfG Spess

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Holger
Du hast ja recht;) Ich werde mich heute mal mit deinem Link beschäftigen 
und hoffe ich sehe dann ein paar Sachen klarer.
Der Riss ist in dem Touchpannel.

@Spess
Ich werde heute mal ein paar 1uF Kerkos besorgen.
Wie anfällig ist den der ST7565? Also kann es sein das der evtl. schon 
zerschossen ist?

Gruß Wolfgang

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wie anfällig ist den der ST7565? Also kann es sein das der evtl. schon
>zerschossen ist?

Bis jetzt habe ich noch keinen ins Jenseits befördert. Allerdings habe 
ich es auch nicht darauf angelegt.

MfG

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe heute die Elkos gegen Kerkos getauscht und mir das Beispiel von 
Holger nochmal genau angeschaut, und ein paar fehler in meinem Programm 
gefunden. Nun geht das Display :)

Was ich noch nicht hinbekommen habe ist das, wenn er die Pixel alle 
angesteuert hat (#define DisplayBLK 0xA5) wieder alle Pixel löschen 
(#define DisplayCLR 0xA4)

Ich mache das in einer Schleife die so aussieht:
  while(1){
  DOGENABLE;
  dogSPIout(DisplayBLK);//Alle Pixel ansteuern
  DOGDISABLE;
   _delay_ms(2500);
  DOGENABLE;
  dogSPIout(DisplayCLR);//Alle Pixel ansteuern
  DOGDISABLE;
  _delay_ms(2500);
  }

Es bleiben aber immer ein paar Pixel "hängen".
Ich habe es jetzt mit Reset gelöst nur muss ich dann jedesmal die Init 
neu ausführen.

Gruß Wolfgang

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Wolfgang,

ich habe zur Zeit das gleiche Problem.
Ich wär dir sehr dankbar, wenn du den Programmcode mal posten könntest.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Die Befehle haben keinen Einfluss auf den Displayinhalt. Du musst nur 
einfach den Displayspeicher mit $00 beschreiben, um das Display zu 
löschen.

MfG Spess

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.