Dogm128 testen

Gast #1951150
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
Angehängte Dateien:
Gast #1951184
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
Gast #1951223
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
Gast #1951255
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
Gast #1951263
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;)
Gast #1951289
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
Angehängte Dateien:
Gast #1951313
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
Gast #1951341
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.
Angehängte Dateien:
Gast #1951370
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
Gast #1951426
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
Gast #1951448
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?
Gast #1951469
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;)
Gast #1951597
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
Gast #1951679
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
Gast #1952189
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:
1
  while(1){
2
  DOGENABLE;
3
  dogSPIout(DisplayBLK);//Alle Pixel ansteuern
4
  DOGDISABLE;
5
   _delay_ms(2500);
6
  DOGENABLE;
7
  dogSPIout(DisplayCLR);//Alle Pixel ansteuern
8
  DOGDISABLE;
9
  _delay_ms(2500);
10
  }

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren