DOGXL160 (3-wire 8-Bit SPI) an XMega

Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

DOGXL160 (3-wire 8-Bit SPI) an XMega

 · 
Gepostet: 09.04.2012 - 13:00 Uhr  ·  #1
Hallo @ all,

nach einem langen Osterwochenende hab ich es endlich geschafft ein DOGXL160 anzusteuern. Natürlich möchte ich euch den Code nicht vorenthalten. Ansteuerung vorerst 3-wire 8-Bit SPI - I²C folgt (nicht wundern weil das Programm I²C_DOGXL heißt 8-) ).

Ein Displayrefresh dauert ca. 54 ms. XMega128_A3 @ 32 Mhz.

Es ist auch noch eine einfache Touch-Abfrage mit drin ohne Kalibiermöglichkeit.

gruss
Harry
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: DOGXL160 (3-wire 8-Bit SPI) an XMega

 · 
Gepostet: 09.04.2012 - 15:46 Uhr  ·  #2
:devil: :D
super
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: DOGXL160 (3-wire 8-Bit SPI) an XMega

 · 
Gepostet: 10.04.2012 - 08:46 Uhr  ·  #3
Hallo Rolf,

von ihnen freut mich dieses Lob besonders :-) ..... nur wie soll ich ihr :devil: deuten ? :D

gruss
Harry
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: DOGXL160 (3-wire 8-Bit SPI) an XMega

 · 
Gepostet: 10.04.2012 - 11:00 Uhr  ·  #4
teuflisch gut!
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: DOGXL160 (3-wire 8-Bit SPI) an XMega

 · 
Gepostet: 11.04.2012 - 22:23 Uhr  ·  #5
Das mit der I²C-Ansteuerung dauert wohl noch eine Weile. Ich habe das zwar im write-only-Modus am laufen, aber empfehlen kann ich das nicht: viel zu langsam.
Ich vermute mal, daß das an meinem Layout liegt und daran, daß die I²C-Leitungen des Displays einen Innenwiderstand von 600-1000 Ohm haben. Dadurch müssen die PullUp-Widerstände des Busses relativ hochohmig sein und (meiner Meinung nach) wird der Bus sehr störanfällig (mein Layout enthält Jumper für die Umschaltung der SPI/I²C-Datenleitungen). Sinn macht I²C vielleicht, wenn man im Display arbeitet (lineare Adressierung). Das UserDevice GraphIOS wird natürlich umfangreicher und durch die 4 Pixel/Byte das ganze relativ kompliziert. Man muß für eine 8-Bit-Operation 2 Pages nacheinander lesend und schreibend adressieren. Ob das wirklich schneller wird wage ich zu bezweifeln.

Für alle die es trotzdem probieren wollen ..... im SPI-Code von oben nur die SPI-Ausgaben durch TWIout ersetzen, nach dem adressieren der Spalte bzw. Page ein Dummy-Read einfügen (steht so im Datenblatt) und zu beachten ist noch, daß das Display 4 I²C-Adressen hat: je 2 für Befehl und Daten (lesen/schreiben). In AVRCo-Adressierung ist das DOG_AdrC : Byte = $3C (Command) und DOG_AdrD : Byte = $3D (Daten) wenn A2=Lo ist.

gruss
Harry
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

DOGXL160 (TWI/I2C write-only)

 · 
Gepostet: 14.04.2012 - 11:10 Uhr  ·  #6
Bittesehr: DOGXL via TWI/I²C write-only.

Leider ist die Ausgabe sichtbar langsam, aber wie schon erwähnt liegt das an meinem Layout. Hier kann man sicher einiges besser machen (Leiterbahnführung & Anpassung der PullUp-Widerstände). Da mein Layout aber nur dazu diente das Display überhaupt zum laufen zu bekommen stört mich das nicht weiter. Am besten ging es mit dem I2CPort, da ich hier ein paar NOPs einfügen konnte (größer TWI_BR100 läuft es bei mir garnicht).
Mein Problem war, daß im Datenblatt steht
Zitat
"Nach den Befehlen zum Setzen der Page- bzw. Column-Adresse muss immer zuerst ein
Dummy-Byte gelesen werden)."

Was hieraus nicht ersichtlich war (und ich bin bis grad eben auch nicht drauf gekommen) ist, daß es wohl richtiger heißen müßte
Zitat
"Nach den Befehlen zum Setzen der Page- bzw. Column-Adresse muss immer zuerst ein
Dummy-Byte auf der Command-Adresse gelesen werden)."

Ein Dummy-Read auf der Daten-Adresse verschiebt die Display-Ausgabe und bringt somit garnichts.

Wan nun noch fehlt ist der Code für die TWI/I2C-Schnittstelle im read/write-Modus :D - mal schaun ob ich das auch noch hin bekomm.

gruss
Harry

PS: Nachdem ich grad ein bisschen Driver-Manual gelesen habe, muß ich leider sagen, daß es den read/write-Modus nicht geben wird. Man bräuchte die Möglichkeit "Controller mit Spalten-Adressierung" aber (was nicht unterstützt wird) ein UserDevice GraphIOS das eine Pixelmanipulation (read/write) zuläßt. Spaltenadressierung gibts nur mit gDispRefresh also write-only.
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   107   121 · Page-Gen-Time: 0.026636s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI