Diese spaßigen Displays haben keinerlei Grafikfunktionen oder
Zeichensätze drin. Man beschreibt sie wie einen Speicher, dessen Bits
halt als leuchtende Punkte zu sehen sind.
Wenn man echte Grafik machen will und viel RAM zur Verfügung hat, gibt
es U8glib.
Ich habe so ein Display schon in Betrieb genommen und hatte nicht viel
RAM. Meine Lösung ist zugegeben aus drei verschiedenen
Beispielprogrammen zusammenkopiert und kann nur einen
5x7-ASCII-Zeichensatz darstellen, und zu "schmutzig" zur
Veröffentlichung, aber man kann unter Ausnutzung des "Page Mode" (eine
"Seite" ist ein 8 bit hoher Streifen) sehr einfach mit wenig RAM-Bedarf
Text und Symbole abbilden, so lange diese nicht höher als 8 Pixel sind.
SSD1306 ist übrigens der richtige Suchbegriff, aber darauf achten, daß
die Displays im I2C-Modus betrieben werden, gibt auch welche für SPI.
Danke für diese Inf.
Wo finde ich das Datenblatt damit ich die Zeilen und Spalten ansteuern
kann?
Unter Anderen muss ich auch die I2C Adresse wissen.
Am besten wäre eine Minimale Startsequenz.
Danke
Gurgeln tu ich schon, mache auch weiter.
Wie stelle ich fest ob das Teil mit I2C betrieben wird, oder mit Spi?
Es sollte ein I2C sein ,wurde mir gesagt.....
Hi
>Wie stelle ich fest ob das Teil mit I2C betrieben wird, oder mit Spi?
Wenn das die Displays aus dem Link sind, dann steht da SCL und SDA
drauf. Und das ist I2C.
MfG Spess
Das Display ist wahrscheinlich ein UG-2864AMBA oder UG-2864HSWE. Lade
Dir die Datenblätter. Die Displays unterscheiden sich in der Anzahl der
Kontakte auf dem Folienleiter. Google führt Dich zu den Datenblättern.
Für die Unterscheidung SPI/I2C sind die Pins BM0 und BM1. Prüfe die
Beschaltung.
Ich habe ähnliche Displays, die nur 4 Pins VCC;GND;SCL;SDA haben. Leider
brauchen meine Displays einen Impuls auf der Reset-Leitung, um immer
sauber hoch zu kommen. Die Reset-Leitung ist auf der Leiterplatte nicht
angeschlossen. Ich zapfe diesen Pin an, und nach einem ordentlichen
Reset starten die Controller immer zuverlässig.
fchk
spess53 schrieb:> Hi>>>Das deutet eher auf SPI hin.>> Nein. Das ist die Umschaltung Befehl/Daten.
und wird bei I2C zur Festlegung der Adresse (0x78/0x7A) verwendet.
fchk
Welchen Befehl müsste ich senden damit das Teil zum Leben erwacht?
z.B 1Byte (Adr + WE Bit) 2Byte (Daten)
Frank K. schrieb:> Für die Unterscheidung SPI/I2C sind die Pins BM0 und BM1. Prüfe die> Beschaltung.
Die Pins gibt es bei mir nicht!
Frank K. schrieb:> Ich habe ähnliche Displays, die nur 4 Pins VCC;GND;SCL;SDA haben. Leider> brauchen meine Displays einen Impuls auf der Reset-Leitung, um immer> sauber hoch zu kommen.
kurze Zwischenfrage: das Problem habe ich mit diesen Displays auch, hast
du mal probiert ob das per Software zu lösen ist?
Jojo S. schrieb:> Beitrag "Re: OLed Anzeige">> war das nicht richtig oder bist du ein anderer Peter?
Jo,bin ich.
Habe meinen eigenen Thread vergessen.
Nach der Antwort wäre es ein SPi ??!!!
Es fehlt mir aber eine Ansteuerung Sequenz um das Teil zum leben zu
erwecken.
ein googlen nach 'SSD1306' erschlägt dich mit Ergebnissen, es gibt jede
Menge Libs für alle möglichen Platformen. Ein Befehl alleine reicht
nicht, es ist eine Sequenz die einige Registerwerte setzt. Gut ist zB
die Adafruit_gfx lib. Ob SPI oder I2C ist der Software egal weil die
Kommandos/Registerwerte gleich sind und nur das write auf die Hardware
getauscht werden muss.
Jojo S. schrieb:> Frank K. schrieb:>> Ich habe ähnliche Displays, die nur 4 Pins VCC;GND;SCL;SDA haben. Leider>> brauchen meine Displays einen Impuls auf der Reset-Leitung, um immer>> sauber hoch zu kommen.>> kurze Zwischenfrage: das Problem habe ich mit diesen Displays auch, hast> du mal probiert ob das per Software zu lösen ist?
Ja. Der I2C-Bus hängt, SDA ist permanent low. Keine Chance. Ich habs mit
Pulsen auf SCL probiert, aber das Anzapfen der Reset-Leitung war das
einzige, was wirklich zuverlässig half.
fchk
peter schrieb:> Welchen Befehl müsste ich senden damit das Teil zum Leben erwacht?> z.B 1Byte (Adr + WE Bit) 2Byte (Daten)>>> Frank K. schrieb:>> Für die Unterscheidung SPI/I2C sind die Pins BM0 und BM1. Prüfe die>> Beschaltung.> Die Pins gibt es bei mir nicht!
Doch, gibt es. Sind sogar drei Pins, BM0..BM2 bzw BS0..BS2, je nach
Datenblattversion. Nicht auf der Leiterplatte herausgeführt, aber als
Eingänge direkt am Folienleiter des Displays. Schau auch ins Datenblatt
des SSD1306
fchk
peter schrieb:> @Frank K.> Du bist also der Meinung das mit den vorgesehenen> 4 Datenleitungen nichts zu machen ist!>> SCL,SDA,RST,D/C Diese reichen also nicht!
Doch, sofern es I2C ist, reicht das. D/C auf Ground oder VCC setzen,
nach dem Power On einmal RST auf Low und wieder High ziehen, und los
gehts.
Die BS0..BS2 Pins am Folienleiter dienen dem Einstellen des
Schnittstellenmodus (SPI 3W, SPI 4W, I2C,...). Damit kannst DU
eineindeutig verifizieren, dass Deine Module auf I2C eingestellt sind.
SPI wäre auch denkbar, und viele Module haben bei SPI keinen SDO Pin,
d.h. Du kannst nichts zurücklesen. Das Fehlen eines SDO-Pins deutet also
nicht zwangsläufig auf I2C als Protokoll hin.
Das hier ist das Datenblatt des eigentlichen Displays:
http://www.adafruit.com/datasheets/UG-2864HSWEG01.pdf
fchk
Das bedeutet..
Seite 3
Pin10 BS0 0
Pin11 BS1 1
Pin12 BS2 0
Dann ist es ein I2C
Da zu messen ist für mich nicht einfach, so tief in die Materie wollte
ich nicht wieder einsteigen,aber nun isses so!
peter schrieb:> Jojo S. schrieb:>> Beitrag "Re: OLed Anzeige">>>> war das nicht richtig oder bist du ein anderer Peter?>> Jo,bin ich.> Habe meinen eigenen Thread vergessen.> Nach der Antwort wäre es ein SPi ??!!!
Ist es auch - die Anschlüsse hab ich dir schon im vergessen Thread
genannt.
Es scheint so , dass du es noch nicht versucht hast? oder wo eckt es
jetzt?
>> Es fehlt mir aber eine Ansteuerung Sequenz um das Teil zum leben zu> erwecken.
Für welchen Einsatz brauchst du eine Ansteuerung Sequenz?
Arduino
PIC ( 18, 24 )
AVR sonstiges
SoC ESP8266
SSD1306 wird doch sauber beschrieben:
https://www.adafruit.com/datasheets/SSD1306.pdf
SPI oder IIC / I2C
hier mal IIC
wenn du SPI hast
dann mach
Write_SPI_... daraus
der AdressSatz ist beim SSD1306 gleich
peter schrieb:> Das bedeutet..> Seite 3>> Pin10 BS0 0> Pin11 BS1 1> Pin12 BS2 0>> Dann ist es ein I2C>> Da zu messen ist für mich nicht einfach, so tief in die Materie wollte> ich nicht wieder einsteigen,aber nun isses so!
Das kannst Du vielleicht auch an den Leiterbahnen sehen. Eine Lupe oder
ein USB-Mikroskop sollte helfen. So sieht das bei mir aus (siehe Bild).
Ich muss immer noch an den Reset-Pin einen Draht anlöten - bei Deinen
Modulen ist der Pin zum Glück herausgeführt. Weiß man aber alles erst
hinterher.
fchk
Ich will über einen USB to I2C/SPI Wandler aus VB.Net das Teil
ansteuern!
Auch mit den C- Pro 32 möchte ich es versuchen,solche Dinger liegen noch
rum.
Ein einfacher Basisdialekt ist das Beste.
Habe ja auch Andere 128/65 zum Leben erweckt.
Die Antwort war in einen Anderen Thread gelandet.
>> Frank K. schrieb:>>> Ich habe ähnliche Displays, die nur 4 Pins VCC;GND;SCL;SDA haben. Leider>>> brauchen meine Displays einen Impuls auf der Reset-Leitung, um immer>>> sauber hoch zu kommen.>> kurze Zwischenfrage: das Problem habe ich mit diesen Displays auch, hast>> du mal probiert ob das per Software zu lösen ist?> > Ja. Der I2C-Bus hängt, SDA ist permanent low. Keine Chance. Ich habs mit> Pulsen auf SCL probiert, aber das Anzapfen der Reset-Leitung war das> einzige, was wirklich zuverlässig half.
ich konnte mein Problem lösen, das Löschen de GDRAM Start Adresse (0xb0)
hat geholfen. Vorher sah das Display nach CPU Reset (kein HW Reset am
Display) wie im Anhang aus.
peter schrieb:> Habe auch ein Foto gemacht!> Pin10/11/12 sind frei!> Wie erkenne ich nun ob es ein I2C Display ist?
Messen. Die Pins sollten ja mit GND oder VCC verbunden sein.
peter schrieb:> Folienleiter ablöten?
wird schwer zerstörungsfrei gehen. Und dann? Andere Adapterplatine
bauen? Ein bischen viel Aufwand für ein Teil das du beim Chinesen für
ca. 3€ bekommst. Und die Ansteuerung fehlt dann immer noch. Dann eher
einen billigen Arduino als Controller anschliessen, da kannst du die
Intelligenz für das Display reinpacken.
Google mal nach SSD1306, da wirst du erschlagen mit Projektchen und
YouTube Demos.
Was ich alles bestellen kann ist mir klar.
Ich bestelle nur noch intelligente,kosten 10Euro mehr, aber sehr
einfache Ansteuerung,seriell(RS232)
Grundbefehle Text,Grafik schon enthalten.
Die Dinger wurden als I2C bestellt ,sind sie nun wirklich nicht I2C.
Es gibt widersprüchliche Meinungen.
Jetzt liegen die Dinger auf den Tisch und ich wollte sie zum Leben
erwecken,
ob ich das Nutzen werde ,noch keine Ahnung.
Wenn es wirklich SPI ist, muss eine Mindesttaktfrequenz eingehalten
werde?
Könnte man das Teil zur Funktionskontrolle auch mit einen z.B.
C-Control ansteuern.
Da SPI zu Fuß programmiert wird und sehr langsam ist?
einfach mal ins Datenblatt schauen? Beim Clock gibt es nur eine min
cycle time von 100 ns, keine max. Also als Frequenz max 10 MHz.
https://www.adafruit.com/datasheets/SSD1306.pdf
Und SPI ist doch erstmal noch einfacher, du brauchst nur 3 Ausgänge von
deinem Controller oder am PC würde auch ein FTDI im Bitbang Mode gehen:
Daten/Command Leitung setzen, Datenbit setzen, Clock High, Clock Low und
das 8 mal. Das in zwei Routinen die entweder Daten oder Kommando
schreiben und schon können alle genannten Bibliotheken hier darauf
aufsetzen.
S.52
Ein Takt muss mindestens 100 ns sein,Datenübertragung nicht schneller
wie 10MHz.
Das Teil kann also sogar statisch betrieben werden.
Es ist also möglich die Bits per Hand reinzuhacken. :-))
..macht kaum jemand.
jetzt müsste ich nur sicher wissen, I2C oder nicht?:-(
peter schrieb:> ..macht kaum jemand.
Soviel diskutieren und das Teil so anzubeten macht kaum jemand :-/
Du hast doch schon nachgemessen, danach ist es eindeutig 4-wire SPI. Und
wenn es I2c ist funktioniert es einfach nicht. Wichtig ist nur mit 3,3 V
Pegeln dranzugehen.
hab ich ja auch schon gepostet.. habe eins mit einmal 5V geschrottet..
mein zweites 5 V hatte einen Spannungsregler und shifting Transistoren..
diese konnte ich auf dem TE seinen fotos nunmal nicht finden.
nun ja, jetzt kenne ich das Teil und werde es erst einmal weglegen oder
weiter verschenken.
Werde mir serielles (Rs232) intelligentes zulegen, damit habe ich recht
gute Erfahrung gemacht.
http://www.digole.com/index.php?productID=844
Habe Dies und auch das True Color!
Laufen sehr gut und sind denkbar einfach anzusteuern.
Nur was sind die nicht bezeichneten Lötpunkte?
Sorry, das ich diesen alten Thread wieder ausgrabe, aber ich habe eine
Frage bezüglich des SSD1306.
Es gibt 3 Pins, die das Interface auswählen: BS0, BS1, BS2.
In der Pinbelegung aus dem Datenblatt fehlt allerdings BS0 vollständig.
Wie kommt man an BS0, bzw. was mache ich falsch?
Nun, der BS0 wird dann bereits fest an + oder - angeschlossen sein. Das
Datenblatt sollte eigentlich darüber Auskunft geben. Wie sieht es bei
BS1 und BS2 aus? Welche Pegel haben die? Oder kannst Du das auswählen?