Neu im Shop: Displaymodul XV-OLED302-SPI

Hi Natalius!

Ich stelle hier mal ein Bid ein, wie ich das mit der leuchtenden Schrift gemeint habe.

Also ich finde die Anzeige mit dem schwarzen Hintergrund irgendwie edler..... und nebenbei spart sie dann auch noch Strom! :)

XV-Prog_Beispiel.jpg


Gruß,
Cassio
 
Hi Cassio,

hör auf mit dem g... Display. Und führe mich nicht in Versuchung...:rolleyes:


Grüsse,

Michael
 
hmm.........
 
Drausseneinsatz

Hallo Cassio,

gibt es Neues zum Display? Wäre schon gut, wenn es ginge. Größe und Gewicht passen, Preis stimmt, usw...

Natalius
 
Hallo Natalius,

das Display ist schon ziemlich hell, tageslichttauglich dürfte es schon sein, bei Sonneneinstrahlung wird man nicht viel erkennen.

Leider ist das Display im Moment nicht verfügbar.

Gruß,
Dirk
 
Hallo Nautilus!

Ups.... ich wollte ja noch eine Rückmeldung schreiben. :eek:

Leider bin ich durch das Regenwetter bei uns noch nicht dazu gekommen, einen Feldversuch durchzuführen. :rolleyes:

Da es aber momentan nicht verfügbar ist, habe ich ja noch etwas Zeit und warte auf sonnigere Tage. :)

Gruß,
Cassio
 
Hallo Cassio,

kannst du vielleicht vorab schon mal deine SPI-Einstellungen und die Initialisierung des Displays posten? Ich kriege meines irgendwie nicht zum Laufen :confused:
 
Hallo Stevie!

Ich habe zwar einige Beispiele noch in Vorbereitung und möchte das dann genauer Kommentieren, aber OK.... ;)

Hiermit sollte es funktionieren:
Code:
'------------------------------------------------------------------------------
' SPI Definition für das Display
'------------------------------------------------------------------------------
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 128 , Noss = 1

Spiinit


Dann noch ein paar wichtige Codestücke, falls du sie noch nicht hast:
Code:
'------------------------------------------------------------------------------
' Alias Definitionen
'------------------------------------------------------------------------------
Display_cs Alias Portb.4
Display_busy Alias Pinb.7


Set Display_busy
Set Display_cs


Und dann noch:
Code:
'------------------------------------------------------------------------------
' Definitionen für das Displaymodul XV-OLED302-SPI
'------------------------------------------------------------------------------

' Power Management Commands
Const Dspcmd_setbacklight = &HB0

' Flags
Const Dspmd_backlighton = &HFF
Const Dspmd_backlightoff = &H00

' Displaypower (Backlight)
Declare Sub Display_power(byval Param As Byte)


Hier die zugeörige Routine:
Code:
'------------------------------------------------------------------------------
' Sub zum Display einschalten
'------------------------------------------------------------------------------

Sub Display_power(byval Param As Byte)
  Bitwait Display_busy , Set
  Reset Display_cs                                          ' Chipselect Display Module
  Waitus 2

  I = Dspcmd_setbacklight                                   ' Send Command
  Spiout I , 1

  Bitwait Display_busy , Reset
  Spiout Param , 1                                          ' Send Parameter

  Bitwait Display_busy , Set
  Set Display_cs                                            ' Not Chipselect Display Module
  Waitus 1

End Sub


In deinem Prorammcode musst du dann im Header noch einmal das "Licht einschalten":
Code:
'------------------------------------------------------------------------------
' Displaypower einschalten
'------------------------------------------------------------------------------
Call Display_power(dspmd_backlighton)
Waitms 10



Probiere es erst mal mit den oben aufgeführten Codeschnipseln.
Wie schon erwähnt, werde ich bald noch ein paar Beispiele einstellen.

Grüße,
Cassio
 
Hallo Cassio,

danke, das hilft mir schon mal weiter. Meine Versuche sind eigentlich fast identisch, da muss ich wohl noch mal den Lötkolben anwerfen, das muss dann ein Hardwareproblem sein.
Ach ja: Muss an den Busy-Pin ein externer Pullup ran oder reicht der interne?
 
Ach ja: Muss an den Busy-Pin ein externer Pullup ran oder reicht der interne?

Hi Stevie!

Nein, beim AVR reicht der Interne!
Einen Externen musst du hier nicht extra vorsehen!

Prüf noch mal den Anschluss vom Display.
Hier mal mein Adapter für die Steckboards:
Bild als Draufsicht! Adapter.jpg

Gruß,
Cassio
 
Hi Stevie !

Noch was....

Ich nutze zwar zur Zeit einen ATMega128, aber hier mal meine Einstellungen zu den einzelnen Pins:


CodeBox Bascom

' -----------------------------------------------------------
'SPI steuert das Display
'PB1=SCK (Output, Low)
'PB2=MOSI (Output, Low)
'PB3=MISO (Input, High)
'PB4=CS\ (Output, Low)
'PB7=BUSY\ (Input, High)
Ddrb = &B0001_0110 '1 ist Ausgang 0 ist Eingang
Portb = &B1110_1001 'auf Hi oder Low setzen




So kannst du sehen, welche Pins als Eingang oder Ausgang definiert werden müssen.

Gruß,
Cassio
 
Hallo Cassio,

danke. Der Rest ist soweit klar, auch mit den Pins. Das kann wirklich nur noch ein Kontaktfehler irgendwo sein. Ich löte einfach den Adapter noch mal nach und probiere es dann nochmal.
 
Hallo Stevie,

das Displaymodul benötigt nach dem Reset/Einschalten 300ms für die Initialisierung, am besten einfach solange warten oder BUSY\ pollen, danach das OLED einschalten: Kommando 0xB0 mit Parameter 0xFF senden.

Gruß,
Dirk
 
Hallo Dirk,

danke. Das war mir schon klar, das geht ja aus dem Datenblatt hervor. Es hat an dem Kabel gelegen, mit dem ich das Display mit meinem Experimentierboard verbunden hatte. Mittlerweile läuft das Display.
Da kommen dann aber gleich die nächsten Fragen: Laut Datenblatt werden bei DisplayImageItem die Argumente als 8-Bit-Werte übergeben. Damit bekomme ich aber keine Bilder oder Grafiken angezeigt (sind aber vorhanden). In den C-Beispielen werden bei DisplayImageItem jedoch 3 Argumente als 16-Bit-Werte übergeben. Ist das ein Fehler im Datenblatt?
Informationen fehlen mir im Datenblatt irgendwie noch bei SetFont und SetDisplayConfigFlags. Wieviele und welche Schriften sind denn eingebettet und wo finde ich die "detailed instruction description"?
 
Hallo Steffan,


du hast recht, DisplayImageItem wird mit folgenden Parametern übertragen:
  • 2Byte X
  • 2Byte Y
  • 1Byte PackageIndex
  • 2Byte ItemIndex
MSB immer zuerst, MSB der Koordinaten X und Y kann bei dem kleinen Display mit 0 übertragen werden, du brauchst also keine Word-Variablen vorsehen. Dies betrifft auch DisplayTextItem. Ich werde es im Datenblatt korrigieren.


Fonts:

Es sind aktuell 7 Fonts (0..6) integriert. Der Font0 (proportional) entspricht auch dem Font3 (konstante Breite) und der Font1 (proportional) entspricht dem Font4 (konstante Breite).
Font2 ist am kleinsten, Font5 und 6 sind etwas größer.


SetConfigFlags und ClearConfigFlags:

Hier werden zwei Byte übertragen (Bit 15..0), MSB zuerst. Aktuell gibt es folgende Flags:

Bit 0: CONFIG_NoPlus
Bit 1: CONFIG_NoZero
Bit 2: CONFIG_LeftAdjust
Die Einstellung der Flags wirken auf Zahlenausgabe.
SetConfigFlags setzt das entprechende Flag, ClearConfigFlags löscht es.

Beispiel: SetConfigFlags(0x0002) // Bit1 setzen, ohne führende Nullen

ClearConfigFlags(0x0002) // Bit1 löschen, wieder mit führenden Nullen

Die detaillierte Beschreibung der beiden Befehle fehlt leider noch, das werde ich noch ergänzen.

Gruß,
Dirk
 
Hallo Dirk,

oK, jetzt habe ich das mit den Bildern auch hinbekommen. Nach vielem Fluchen und der Überlegung, dass der Positionierungsbereich vielleicht ja schon bei x=0/y=0 und nicht bei x=1/y=1 anfangen könnte, kann ich jetzt auch Bilder im Format 128/160 anzeigen :)
 
Hallo Natalius,

das Display ist schon ziemlich hell, tageslichttauglich dürfte es schon sein, bei Sonneneinstrahlung wird man nicht viel erkennen.

Leider ist das Display im Moment nicht verfügbar.

Gruß,
Dirk

Hallo Dirk,

so ist das Leben - wer zu spät kommt..

Displays für outdoor-Einsatz sind leider auch bei Notebooks ziemlich rar - ich warte seit Ewigkeiten (jedenfalls kommt es mir so vor) auf ein "Bastlerkit" von Pixel Qi. Wenn es da einen "German distributor" gäbe...

Gruß
Natalius
 
Ist das Ding hell und brilliant genug, um es auch draussen ablesen zu können?
.....
Manchmal scheint ja auch die Sonne;)


Hallo Nautilus!

Ob das Display nun schon wieder verfügbar ist oder nicht, ich wollte es ja mal draußen für dich testen. :)

Bei Tageslicht kann man es natürlich noch ablesen, wenn aber die Sonne vom Himmel brennt dann muss man schon genau hinsehen. ;)

Ich würde es also für den Außeneinsatz für nur bedingt geeignet halten.
Letztlich müsstest du es aber wohl selbst testen....

Grüße,
Cassio
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)