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

Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

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

 · 
Posted: 09.04.2012 - 13:00  ·  #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
You must be logged in or your permissions are to low to see this Attachment(s).
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

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

 · 
Posted: 09.04.2012 - 15:46  ·  #2
:devil: :D
super
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

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

 · 
Posted: 10.04.2012 - 08:46  ·  #3
Hallo Rolf,

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

gruss
Harry
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

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

 · 
Posted: 10.04.2012 - 11:00  ·  #4
teuflisch gut!
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

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

 · 
Posted: 11.04.2012 - 22:23  ·  #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
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

DOGXL160 (TWI/I2C write-only)

 · 
Posted: 14.04.2012 - 11:10  ·  #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
Quote
"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
Quote
"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.
You must be logged in or your permissions are to low to see this Attachment(s).
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   107   121 · Page-Gen-Time: 0.026309s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI