Pollin bietet derzeit wieder mal ein "UFO"-Display an:
LCD-Modul SANBUM LBL-11337-1-01 für 1.95€ unter der Nummer 121-449.
Ich vermute erstmal ein Grafik-Display, habe bislang aber unter
Schräglicht noch kein Muster auf der Sichtfläche ausmachen können.
Ich habe mal ne Aufnahme des Chips unter dem Mikroskop gemacht - Bild
anbei und hoffentlich groß genug, um die Kontaktflächen erkennen zu
können. Soweit ich das sehen kann, ist er ca. 6.2 mm lang.
Also mal ne Frage an alle: Wer kennt sich mit den diversen COG-Chips aus
und kann vielleicht nen Tip abgeben, um was für ein Ding sich das
handelt?
W.S.
Mal ne Frage noch: kann es sein, daß wir hier mit dem Suchen nach
"SANBUM" schlichtweg auf dem falschen Dampfer sind? Das, was man bei
Sanbum's Internetseite sieht, sind zuvörderst Display-Beleuchtungen. Das
"Sanbum" könnte sich also schlichtweg nur auf die
Hintergrund-Beleuchtung beziehen...
W.S.
Ok, meine Interpretation ist falsch, das MSGF011337-01 bzw. LBL(für
Label) 11337-1-01 ist die von Batron so genannte counter-drawing-number.
Diese Nummer ist absolut nichtssagend, so dass keine Aussage über das
Display getroffen werden kann. Aber Batron bleibt erstmal als Hersteller
aufgrund des ähnlichen Labels.
Ich habe jetzt gefühlte 100 Datenblätter der gängigen Verdächtigen durch
und keinen passenden Chip gefunden.
Nun, wir haben also 11 Anschlüsse (falls ich mich nicht verzählt habe)
und auf dem Chip sind 12 eher herausragende Anschlüsse zu erkennen.
Gruppierung von rechts nach links:
2 Pins
4 Pins
4 Pins
2 Pins
Das reicht nicht für ein Byte-breites Interface, also denke ich mal an
serielle Daten. Üblich für sowas ist:
- A0 bzw. RS
- CE
- Clk
- Data
dazu kommen
- GND
- VCC
Der Rest von 6 Pins wäre dann für den LCD-Spannungsgenerator, vermutlich
je 2x Boostkondensator und Stützkondensator gegen Masse.
Ja, ist alles nur Vermutung, ich weiß.
W.S.
So, die Sache ist soweit erledigt. Das display wird per I2C betrieben
und es hat sinnigerweise 2 Pins vertrödelt für die LCD-Spannung:
Pollin LCD "SANBUM"
Anschlüsse von links nach rechts:
1 Vlcd in
2 Vlcd out
3 ---- 100nF ---- 4
5 ---- 100nF ---- 6
7 GND
8 Vcc 2.4 bis 3.3 Volt
9 SDA (I2C)
10 SCL (I2C)
11 /RESET
Adressen:
$38 für Control
$39 für Daten
Das war's.
W.S.
Display: zumindest 128x22. Hab auch 131x22 probiert, aber die letzten
Spalten bleiben bei meinem Exemplar noch wirr. Allerdings hat das Teil
bei diversen Untersuchungen arg gelitten.
Steck 11x1bottom
W.S.
Danke für die Informationen für dieses Display.
@W.S.:
Das LCD will ich auch in einem Projekt verwenden. Habe es bisher aber
noch nicht getestet, wäre aber mein nächster Schritt, sobald das
Pollin-Paket da ist.
Ich sehe auf dem Foto, dass du zwischen VLCDIN und VLCDOUT einen
Widerstand hast (Pins von links, Ringe nicht erkennbar). Im o.g.
Datasheet in der Beispielschaltung dort (S. 20) sind diese direkt
miteinander verbunden. Ich hätte das auch erst einmal so gemacht. Warum
hast du da einen Widerstand eingebaut?
Habe bisher nur über oberflächlich über das Datasheet geschaut, könntest
du aber z.B. deine Initialisierungsparameter nennen bzw. den Code, z.B.
zum Wert für Power Control (PC), Bias (PM) etc., bzw. welche
Displayspannung es hat?
Ansonsten versuche ich es auch erstmal durch probieren...
So, falls jemand auch Interesse an dem LCD hat:
VLCDIN und VLCDOUT sind bei mir direkt miteinander verdrahtet. Es
stellen sich bei mir knapp 7,2V mit der internen Charge Pump ein.
Ich betreibe das LCD mit 3,3V. Die zwei LEDs für die
Hintergrundbeleuchtung haben eine Vorwärtspannung von etwa 2,8V. 100 Ohm
fand ich als Vorwiderstand durchaus passend.
Ich initialisiere mit folgenden Kommandos (zum großen Teil sind das
Defaultwerte):
1
0x24|0b00 ; Set Temperature Comp. TC[1:0]
2
0x28|0b110 ; Set Power Control PC[2:0]
3
0x40|0b000000 ; Set Scroll Line SL[5:0]
4
0x81 ; Set VBIAS Potentiometer PM [7:0] (Double byte command)
5
0xC0
6
0x84|0b0 ; Set Partial Display Enable LC [4]
7
0x88|0b001 ; Set RAM Address Control AC [2:0]
8
0xA0|0b0 ; Set Frame Rate LC [3]
9
0xC0|0b100 ; Set LCD Control LC[2:1]
10
0xE8|0b00 ; Set Bias Ratio BR [1:0]
11
0xF1 ; Set CEN [6:0] (Double byte command)
12
0x15
13
0xAE|0b1 ; Set Display Enable DC[2]
Auf Seite 32 im Datasheet ist die "RAM Address Generation" beschrieben.
Es wird modulo 64 geschrieben, daher konnte wohl W.S. oben die letzten
drei Pixelspalten nicht sequentiell schreiben. Die Spalten müssen extra
addressiert werden. Ich habe selber noch nicht ganz die AC (RAM Address
Control) durchschaut.
Mario L. schrieb:> Ich sehe auf dem Foto, dass du zwischen VLCDIN und VLCDOUT einen> Widerstand hast (Pins von links, Ringe nicht erkennbar). Im o.g.> Datasheet in der Beispielschaltung dort (S. 20) sind diese direkt> miteinander verbunden.
Ja, der Widerstand war nur ein "Angstwiderstand" - der ganze Aufbau war
ja nur zum Testen der Anschlußbelegung und sieht entsprechend wirr aus.
Die Software dazu sieht genauso wirr aus: Ich hatte von einem völlig
anderen Projekt ne LP gegriffen und ein paar Pins mal eben "umgewidmet".
Das GDI und die Fonts sind so ziemlich dieselben wie bereits vor Jahren
in der Lernbetty und die I2C-Ansteuerung hatte ich als reine Soft-Lösung
auch in der Bastelkiste. Siehe auch
http://www.mikrocontroller.net/attachment/291357/Fonts_machen.zip
Ich häng hier mal die Bastelquellen dran, aber bitte nicht aufkreischen,
das ist alles aus dem Handgelenk geschrieben. Ich hatte ja zuerst
angenommen, daß das Display in einem der SPI-Modi zu betreiben wäre.
Nachdem da nix Gescheites kam und auch die Spannung am VLCDOUT sich
nicht zuckte, hatte ich es mit I2C probiert und..voila!
W.S.
Hallo,
hat jemand schon einen vollständigen Code, mit dem man mal das Display
ausprobieren kann? Im oben veröffentlichten Beispiel fehlen
Programmteile.
mit freundlichem Gruß
roehrenvorheizer schrieb:> hat jemand schon einen vollständigen Code
Natürlich hab ich den.
Aber wozu soll ich damit das Forum zumüllen?
Also, wenn du nicht eben grad einen LPC11E12 verwenden willst, dann
wirst du dir das generelle Zeugs für deinen µC sowieso selbst schreiben
müssen - oder (wie hier üblich) von irgendwo her zusammenklicken.
Was dein I2C-Treiber an Schnittstelle zu liefern hat, steht ja in der
Headerdatei drin.
Wie du was Sinnvolles in den Display-RAM kriegst, ist Geschmackssache.
Hier gibt es massenweise Typen, die es partout anders machen wollen als
ich, also da hast du die eigene Wahl. Ich verwende so ziemlich genau
dasselbe GDI wie dunnemals in der Lernbetty. Also lade sie dir runter,
dann hast du sowohl ein Gdi als auch ein paar Fonts.
So, damit du was Vorgekautes hast.
Vergiß nicht, daß ich eine ganz andere Firmware MAL EBEN ein bissel
zweckentfremdet hatte, um das Display auszuprobieren. Also anstelle der
originalen "CgPixel_at" eben diese Funktion reingeschleust und so. Das
hatte ich auch deutlich geschrieben!
Verstehst du jetzt, warum es wirklich nicht sinnvoll ist, den ganzen
Kram hier auszukippen?
Also, den Kern der Geschichte hast du, das Beschreiben der letzten paar
Spalten mußt du selber programmieren, das GDI von der Lernbetty kann
etwa so wie dort vorhanden verwendet werden, Fonts gibt's auch dazu,
obendrein hatte ich dem Ozvald K. noch was an Fonts bzw. Programm dazu
gepostet - natürlich kannst du auch was eigenes verwenden, also es ist
doch alles da.
Es fehlt dann bloß noch eine reale Anwendung und main.c dafür...
W.S.
Hallo,
ja, vielen Dank auch.
Meine Frage zielte im Prinzip auf die I2C-Routinen ab, die ich seit
gestern mit Leben ausfülle, damit auf dem Display überhaupt mal etwas
erscheint.
Ein komfortables Großprojekt habe ich nicht erwartet.
mit freundlichem Gruß
Christian S. schrieb:> Meine Frage zielte im Prinzip auf die I2C-Routinen ab
Ich habe diese per Software gemacht.
Der verwendete µC (LPC11..) hat zwar auch nen Hardware-Core für den I2C,
aber all diese HW-I2C-Anschlüsse sind wie fast überall ein Brechmittel.
Darum.
Der einzige µC, bei dem ich nen gut verwendbaren I2C-Core vorgefunden
hatte, war ein NEC (78K4) und das ist lange her. Die älteren Cores
erschlagen einen mit notwendigen Interrupts en masse - so daß die
eigentliche HW keinen Nutzen bringt und die neueren Cores wollen alles
ganz automatisch machen und funktionieren deshalb erst garnicht, wenn
ihnen der LoLevel-Treiber nicht bereits vorher sagt, wieviel Bytes die
höheren Programmschichten künftig zu übetragen gedenken (was er
verständlicherweis nicht vorausahnen kann) und ein Slave-Open mit 0
Bytes nach der Adressierung geht nicht. Also ignorierte ich diesen
Kruscht und hab's kurzerhand alles in SW gemacht. Das kannst du auch, es
ist ja alles offenkundig: Start-Cond, Adressierung, Bytes raus,
Stop-Cond.
W.S.
Hallo,
ich würd' das Display gerne für ein Projekt verwenden, habe aber bis
jetzt immer mit HD44780 Displays gearbeitet, die 5V oder 3.3V nehmen.
Oben steht:
W.S. schrieb:> Pollin LCD "SANBUM"> Anschlüsse von links nach rechts:> 1 Vlcd in> 2 Vlcd out> 3 ---- 100nF ---- 4> 5 ---- 100nF ---- 6> 7 GND> 8 Vcc 2.4 bis 3.3 Volt> 9 SDA (I2C)> 10 SCL (I2C)> 11 /RESET
Was ist genau "Vlcd in" und "Vlcd out"? Ich würde tippen - soweit ich
das alles verstehe - dass das die Kontrastspannung ist (+ und -). Aber
woher weiß man, wie hoch die sein muss?
Viele Grüße!
Maximlian S. schrieb:> ich würd' das Display gerne für ein Projekt verwenden, habe aber bis> jetzt immer mit HD44780 Displays gearbeitet, die 5V oder 3.3V nehmen.
Dann mußt du noch ein bißchen was lernen. Z.B. über Zeichensätze.
> Was ist genau "Vlcd in" und "Vlcd out"? Ich würde tippen - soweit ich> das alles verstehe - dass das die Kontrastspannung ist (+ und -)
Nö.
Auf dem Display ist eine Ladungspumpe drauf, die aus den 3.3V Logik-
Versorgungsspannung die benötigte Kontrastspannung für das LCD-Glas,
respektive den Treiber erzeugt. Vlcd_out ist der Ausgang der Ladungs-
pumpe und Vlcd_in ist der Eingang des Treibers. In der Praxis wird man
beide Anschlüsse einfach verbinden und(!) einen Siebkondensator nach GND
anschließen.
Die Höhe der Kontrastspannung (vulgo: den Kontrast der Anzeige) kann man
per Software einstellen, im Register BR.
Axel S. schrieb:> Maximlian S. schrieb:>> ich würd' das Display gerne für ein Projekt verwenden, habe aber bis>> jetzt immer mit HD44780 Displays gearbeitet, die 5V oder 3.3V nehmen.>> Dann mußt du noch ein bißchen was lernen. Z.B. über Zeichensätze.
Ich denke, dass ich das hinbekomme. Hier sind ja auch schon genügend
Hinweise versteckt :-)
>> Was ist genau "Vlcd in" und "Vlcd out"? Ich würde tippen - soweit ich>> das alles verstehe - dass das die Kontrastspannung ist (+ und -)>> Nö.>> Auf dem Display ist eine Ladungspumpe drauf, die aus den 3.3V Logik-> Versorgungsspannung die benötigte Kontrastspannung für das LCD-Glas,> respektive den Treiber erzeugt. Vlcd_out ist der Ausgang der Ladungs-> pumpe und Vlcd_in ist der Eingang des Treibers. In der Praxis wird man> beide Anschlüsse einfach verbinden und(!) einen Siebkondensator nach GND> anschließen.
Das ist ja toll. Welchen Wert sollte der Kondensator haben? KerKo oder?
Viele Grüße!
Maximlian S. schrieb:> Axel S. schrieb:>> Vlcd_out ist der Ausgang der Ladungs->> pumpe und Vlcd_in ist der Eingang des Treibers. In der Praxis wird man>> beide Anschlüsse einfach verbinden und(!) einen Siebkondensator nach GND>> anschließen.>> Das ist ja toll. Welchen Wert sollte der Kondensator haben? KerKo oder?
Es sind im ganzen drei Kondensatoren. Und ja, Kerkos.
Weiter oben ist das Datenblatt eines anderen Displays verlinkt [1], das
ebenfalls diesen Controller verwendet. Da ist auch ein Schaltbild drin.
Das Datenblatt des Controllers (das mußt du auf jeden Fall lesen) sagt
auch was dazu.
[1] der alte Link zeigt ins Leere. Hier ist ein neuer:
http://www2.data-modul.com/tl_files/dm/data/specification_BT46121.pdf
Also, im Beitrag oben von "W.S. (Gast)" sind die Signalzuordnungen also
so:
Gelbes Kabel = GND
Weißes Kabel = VCC
Schwarzes Kabel = SDA
Braunes Kabel = SCL
Rotes Kabel = /RESET (active low)
Orangenes Kabel = Not connected
Zwischen 1 und 2 (VLCD IN, VLCD OUT) ist ein Widerstand und 1 ist mit
einem Kerko nach GND verbunden. So steht das auch in [1], Seite 24
rechts unten. Dort wird angegeben, dass der Kondensator 330 nF sein soll
und der Widerstand 3.3 - 10 MΩ.
In [2] (Seite 7) sind 1 uF angegeben.
Bei Pollin scheint's keine dieses Wertes zu geben (beide).
[1] http://www.artronic.com.pl/pdf/pl/UC1601.pdf
[2]
http://www2.data-modul.com/tl_files/dm/data/specification_BT46121.pdf
Hallo,
den Kontrast stellt man bei der Initialisierung auf einen festen Wert
ein, den man ausprobieren kann. Bei mir funktioniert es mit 2 x 100nF
Folie und einem Elko, der im Betrieb auf 7,2V aufgeladen wird. Schaltung
siehe ganz oben. Die Pullup-Widerstände dürfen natürlich nur gegen +3,3V
verschaltet sein.
MfG
> hat jemand schon einen vollständigen Code, mit dem man mal das Display> ausprobieren kann?
Hallo allerseits,
anbei füge ich den schon lange begehrten Code mal hinzu. Das Programm
ist bei meinen Experimenten entstanden und soll nicht als
lehrbuchtaugliches Vorzeige-Projekt dienen, sondern mal eine Grundlage
bieten, um dieses Display ansteuern zu können. Fehlerbehandlung für I2C
fehlt noch völlig. Wer Lust hat, kann Weiterentwickungen gerne hier
vorstellen. Z.B. ein schönes Menü zur Steuerung anderer Funktionen wäre
doch mal ein Projekt...
Für ein Oszilloskop dürfte die Auflösung zu grob sein.
/*Ironie ein
Das Datenblatt UC1601.pdf ist besonders gut für Anfänger und solche
Leute gedacht, die von den höheren Weihen eines I2C-Gurus noch weit
entfernt sind. Es erfordert keinerlei Phantasie zum Verständnis der
dargestellten Sachverhalte und zeigt anhand etlicher übersichtlicher
Beispiele mit Befehlssequenzen zum direkten Abkupfern, wie leicht dieses
Display anzusteuern ist. Der Autor gewinnt den ersten Preis für die
didaktisch gut strukturierte Darstellung der Inhalte.
*/Ironie aus
Das Programm kann Zeichen aus einem beigefügten Font schreiben und es
sind bereits einige Grafikfunktionen für Pixel, (schräge) Geraden und
Kreise dabei. Das Display bietet noch einige Funktionen mehr, die aber
nicht alle zur Anwendung kommen. Die Initialisierung läßt sich noch
vereinfachen.
Sicher wird Pollin ab jetzt alle restlichen Exemplare in rasender
Schnelle verkaufen können...
mit freundlichem Gruß
roehrenvorheizer schrieb:> Es erfordert keinerlei Phantasie...
Ach, reg dich doch nicht auf. So schlimm ist das DB ja nun auch nicht
wirklich.
roehrenvorheizer schrieb:> Sicher wird Pollin ab jetzt alle restlichen Exemplare in rasender> Schnelle verkaufen können...
Mag sein. Beim ..1WRNNA.. ging es ja auch recht flott, nachdem Schaltung
und Treiber geklärt waren. Was da bleibt, ist das bissel Vorsprung, was
man hier hat.
Allerdings schätze ich mal, daß es bei Grafik-LCD's einen Unterschied
gibt zwischen Bastlern, die sowas wie Fonts, Grafik, GDI aus eigener
Kraft handhaben können und solchen, die selbst an einem Alpha-LCD
bereits Klimmzüge machen. Ein deutliches Beispiel ist das SHARP
LQ092B5DW01, was dank paralleler TTL-Schnittstelle und ca. 18V für das
BL für viele Bastler unattraktiv ist, weil sie nicht mit µC der
LPC4088-Klasse umgehen können.
Nun ja, das "Sanbum" kommt im Vergleich zum Sharp pixelmäßig knapp
hinter dem Kartoffeldruck, aber es ist durchaus für sowas wie
Frequenzzähler oder Radio-Skala geeignet. Es war allerdings m.W. bereits
auf einer Sonder-Schnäppchen-Liste - wird wohl nicht mehr viel davon da
sein.
W.S.
W.S. schrieb:> Nun ja, das "Sanbum" kommt im Vergleich zum Sharp pixelmäßig knapp> hinter dem Kartoffeldruck
Jo, mit 131x22 ist nicht viel zu machen, dafür liest es sich aus einiger
Entfernung gut ab. Für mein MP3-LAN-Radio Projekt ist es durchaus
passend, da ich auch den Titel aus 1-2 Metern noch lesen werden können.
Nicht jedes Display bei Pollin hat weiße Hintergrundbeleuchtung, deshalb
bot es sich auch an.
Die 22 Pixel für die Höhe reichen praktischerweise nur für 2 Zeilen (a
22 Zeichen) mit 5x7 Font und einer zusätzlichen Statuszeile mit 5x5
Font.
Ich hab mir zwar schon mal vorsorglich 5 Stück davon geordert, falls die
mal ausgehen sollten, aber ich denke, so der Hammer sind diese Displays
auch wieder nicht, dass man die sich noch kiloweise bunkern müsste :-)
Mario L. schrieb:> Ich hab mir zwar schon mal vorsorglich 5 Stück davon geordert, falls die> mal ausgehen sollten, aber ich denke, so der Hammer sind diese Displays> auch wieder nicht, dass man die sich noch kiloweise bunkern müsste :-)
Stand jetzt hat Pollin noch 241 Stück am Lager. Kann man leicht selber
überprüfen. Mache ich öfter bei Schnäppchen, die ich erst bei der
nächsten Bestellung mitordern will.
W.S. schrieb:> Ein deutliches Beispiel ist das SHARP> LQ092B5DW01, was dank paralleler TTL-Schnittstelle und ca. 18V für das> BL für viele Bastler unattraktiv ist
Tja, wenn man das wenigstens erst mal angeschlossen bekäme... Mit einer
Adapterplatine zusammen wäre es sicher interessant.
Das Display ist schon länger im Angebot.
roehrenvorheizer schrieb:>> Ein deutliches Beispiel ist das SHARP>> LQ092B5DW01, was dank paralleler TTL-Schnittstelle und ca. 18V für das>> BL für viele Bastler unattraktiv ist>> Tja, wenn man das wenigstens erst mal angeschlossen bekäme... Mit einer> Adapterplatine zusammen wäre es sicher interessant.
Den physischen Anschluss finde ich jetzt gar nicht so kritisch. Der
Punkt, den W.S. oben angesprochen hat dagegen schon eher: Du brauchst
einen µC mit einem integrierten parallelen Displaytreiber um es
anzusteuern. Sowas wie der von ihm oben angesprochene LPC4088, ein
STM32F429 oder ähnliches.
Bei sehr vielen Projekten ist es dann so, daß Du diesen dicken Brummer
von µC nur für das Display brauchst weil der Rest auch gut mit was
kleinerem, handlicherem und günstigerem zu lösen wäre.
Da sind kleine Displays mit ILI9341 oder ähnlichen viel bequemer
anzubinden und unterm Strich dann wegen dem µC auch viel günstiger.
Danke,
habe inzwischen die Molex Lib von element14 heruntergeladen und einen
ähnlichen Verbinder modifiziert. Ist etwas einfacher gezeichnet als die
Würth Teile.
Da die ganze ein Lib ein Copyright hat hänge ich mal meine Lib an die
nur den angepassten 11poligen enthält.
Vielleicht für den Einen oder Anderen Sanbum-Besitzer interessant: Seit
3 Monaten wird der UC1601 auch von der u8g2 Arduino-library unterstützt.
Ich habe das Display jetzt an einem maple mini (STM32, wegen der 3.3V)
am laufen. Konstruktor ist U8G2_UC1601_128X32_F_HW_I2C, den reset habe
ich vor u8g2.begin getoggelt. Geht wahrscheinlich aber auch mit
Dauer-Vcc.
Geändert habe ich nur die u8x8_d_uc1601.c, mit der Ursprungsversion
waren die letzten 4 Spalten nicht initialisiert und unbenutzbar. Die
Init-Sequenz ist aus diesem Thread übernommen, die anderen kleinen
Änderungen sind die Erweiterung für die 132 Spalten.
Übrigens Thumbs up für die Reverseingenieure oben, ist ein nettes
Display mit recht großem Betrachtungswinkel.