Forum: Mikrocontroller und Digitale Elektronik LCD-Modul SAMSUNG UG12D228AA von Pollin


von Sorge Sorglos (Gast)


Lesenswert?

Bei Pollin gibt es das obengenate Display, hatte jemand damit schon 
erfahrung gemacht?

http://www.pollin.de/shop/dt/MzI0OTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_SAMSUNG_UG12D228AA.html

von Micha K. (klemic)


Angehängte Dateien:

Lesenswert?

Ich hab' mal eins vollends seziert, das ohnehin zertrümmert bei mir 
ankam...

Es gibt 2 weiße LEDs für die Hintergrundbeleuchtung, die bei Anlegen von 
3V auch schön hell leuchten (Vorwiderstände sind bestückt).

Das Display müsste 128 x 128 Pixel aufweisen, man kommt nur nicht weiter 
welcher Chip für die Ansteuerung verwendet wird. Der Chip ist direkt 
auf's Glas geklebt und man kann die Pads sehen, aber natürlich hilft das 
erst mal wenig.

Der Flexleiteranschluss hat 20 Kontakte (4 davon für die 
Hintergrundbeleuchtung 2 mal Anode 2 mal Kathode jeweils verbunden) und 
es sind dort auch diverse Kondensatoren und Widerstände für die 
LCD-Ladungspumpen montiert...

Ich hab's eigentlich aufgegeben, aber spannend wär's herauszufinden um 
welchen Chip es sich handelt. Die Padlayouts sind in den Datenblättern 
ja üblicherweise angegeben, somit könnte man verifizieren ob es der 
richtige ist, wenn man einen Verdacht hat. So viele Chips für 128 x 128 
Color LCDs sollte es ja an und für sich nicht geben, nur gefunden habe 
ich keinen einzigen...

Sorry für die schlechte Qualität der Pics!

von Kai B. (kaib) Benutzerseite


Lesenswert?

Hi,

Ich habe mir von den Dinger auch mal ein Paar bestellt.
Eines hab ich vorhin geopfert und mich mal 2 Stunden hingesetzt und das 
ding Reengineering betrieben. Raus kam dabei folgendes:

Es handelt sich wohl um ein 128x128Pixel 27x27mm Farb STN LCD.
Display Controller scheint laut IC Beschriftung der S6B33B2 zu sein.
Eine Pinbelegung hab ich auch schon erstellen können.
Das Display nutzt das 8080 8Bit Interface.

Mal schauen ob man das Ding zum laufen bekommt.
Sobald ich weiteres herausgefunden habe melde ich mich noch einmal.

MfG Kai

von Kai B. (kaib) Benutzerseite


Angehängte Dateien:

Lesenswert?

... 15min später...
hab eben nochmal ein paar scharfe Fotos von dem Teil gemacht.

Die pinning.jpg zeigt schon mal meine Anschlussbelegung des Displays.

von Micha K. (klemic)


Lesenswert?

hallo Kai,
wo hast Du denn die IC Bezeichnung gefunden? Bei meinem Chip ist nichts 
zu sehen, oder hab' ich was auf den Augen?
Gruß,
Micha

von Kai B. (kaib) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi Micha,
Ich habe den Chip von Glas entfernt da man aufgrund des Leitfähigen 
Klebers durch Glas nur erahnen konnte was das für ein chip ist.

Habe grad mit meiner DSLR und umgedrehten Objekt eine Makroaufnahme der 
Bezeichnung gemacht.

von Micha K. (klemic)


Lesenswert?

Hi Kai,
suuuper Arbeit von Dir! Ich habe gleich nochmal welche bestellt, dann 
kann's ja nun mit der Ansteuerung weiter gehen.

Ein bisschen Googeln hat noch ein C-Source File zutage gebracht, das 
Teil von dem Rockbox Projekt ist. Der Sansa C200 Player scheint den 
Controller auch zu verwenden: 
http://svn.rockbox.org/viewvc.cgi/branches/v3_9/firmware/target/arm/lcd-c200_c200v2.c?view=log

Vielleicht kann man sich da ja was von den Register-Settings abgucken...

von Kai B. (kaib) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ahhh es lebt.

Hab das Display zum Leben erwecken können die übertragenen Bild Daten 
sehen auch Plausibel aus 4096 Color Mode mit 2 pixel rot, 2 grün und 2 
blau.
Der Versatz wird wohl von meinen 10k Widerständen kommen die als 
Spannungsteiler gedacht waren nur zurzeit sind die Pulldowns weg da der 
Teilerfaktor nicht wirklich stimmte (Wegen dem LA den ich dran hatte). 
Das Ding wird zurzeit über den LPT meines Rechners angesteuert mit 
Freebasic.

MfG Kai

von Micha (Gast)


Lesenswert?

Na, das sieht doch schoinmal ganz gut aus...

Ich werde meine Displays Morgen wohl in der Packstation haben (wenn 
Pollin nicht wieder was anderes schickt als bestellt) und dann die 
Ansteuerung mal mit einem AVR versuchen. Könntest Du die Werte posten, 
die Du in die S6B33B2 Register geschrieben hast?

von Kai B. (kaib) Benutzerseite


Angehängte Dateien:

Lesenswert?

So hier nochmal ein Bild von einem Komplettbild.

Mein Freebasic Beispiel mit den Werten und der Ansteuerung poste ich 
morgen mal da das ganze grad nach Kraut und Rüben aussieht.
Bin zurzeit auch noch am suchen von nem passenden 20pol FFC Stecker um 
eine kleine Adapterplatine zu machen.

MfG Kai

von Micha K. (klemic)


Lesenswert?

geeeeeiiiil! und ich hatte quasi schon aufgegeben... Hoffe die Dinger 
kommen Morgen an...

von Winfried K. (wink)


Lesenswert?

Hallo Kai,

das Display sieht nicht schlecht aus.
Mich würde mal interessieren, wie gross die sichtbare Fläche ist.

von Micha K. (klemic)


Lesenswert?

die sichtbare Fläche ist ungefähr 28mm x 28mm

von Micha K. (klemic)


Lesenswert?

Hallo Kai,

diese FFC Buchse müsste doch passen, oder?
http://de.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6236801
13,30€ für 10 Stück ist allerdings etwas heavy...

Stehend sind sie billiger: -.75€ pro Stück...
http://de.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6236895

Ich bestell' mal 10 Stehende... (sind dann knapp 9.-€)

von Kai B. (kaib) Benutzerseite


Lesenswert?

Bei den FFC Steckerchen ist es wichtig wo die Kontaktseite ist
Hab bei RS mal welche rausgesucht
http://de.rs-online.com/web/6734813.html
und hier welche von Hirose
http://de.rs-online.com/web/7148089.html
Der Hirose dürfte vermutlich am besten an die Kontakte passen da die 
Aussparungen doch relativ eng sind.
Wäre es möglich mir welche mitzubestellen bei RS da du ja anscheinend 
die Möglichkeit hast da zu bestellen. Da man privat da leider nicht 
bestellen kann. (Da hätte ich eventuell noch 1-2 dinge an Steckern die 
ich gebrauchen könnte.)
Meinen Code werde ich gegen später dann mal bereit stellen.
Ich hab bei mir eine 30pol zweckentfremdet und an 20pins Drähte 
angelötet zum testen.
MfG Kai

von Sven F. (mr_sven)


Lesenswert?

Hi,

über nen bisschen Source und ne Pin Belegung würde ich mich auch freuen.

Gruß Sven

von Kai B. (kaib) Benutzerseite


Angehängte Dateien:

Lesenswert?

So mal mein Testprogramm aufgeräumt. Ist wie schon erwähnt in Freebasic 
geschrieben da ichs bisher noch mit an nem µC hatte sonst hätte ich 
jetzt auch schon den passenden C Code.

Und die Anschlussbelegung findet ihr hier 
http://www.mikrocontroller.net/attachment/113107/pinning.jpg

Noch was zu den Elektrischen Daten ich nutze es mit 3,3Volt.
Die Hintergrundbeleuchtung besteht aus 2 parallel geschaltenen LEDs die 
anscheinen noch einen Vorwiderstand haben.

von Micha (Gast)


Lesenswert?

So, zur Info für alle Interessierten: keine der o.g. FFC Buchsen passt 
leider, weil die Aussparungen rechts und links im Flexleiter des 
Bsiplays zu schmal sind. Es müsste wohl eine Buchse sein, die keinen 
Riegel für kraftlose Befestigung hat und in der Bauform dann schmäler 
ist... Es bleibt wohl nur einen Platine als Adapter zu ätzen, an die man 
den Flexleiter des Displays direkt anlötet...
Grüße,
Micha

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hi,
habe mir erstmal ein Display mit einer etwas besseren Schnittstelle 
ausgerüstet.
War ne ziemliche fummel arbeit.

Gruß

von Sven F. (mr_sven)


Lesenswert?

Habe mal ein bisschen bei Hirose gestöbert.
Laut Datenblatt und meinem Messschieber müssten die Passen: 
FH19SC-20S-0.5SH
Leider habe ich keinen Shop gefunden.

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?


von Jakob K. (jakobk)


Lesenswert?

Also ich wollte demnächst mal bei Mouser bestellen ... da könnte ich ein 
paar von den Steckern mit auf die Bestellung setzen

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Könntest Du 5 Stck für mich mitbestellen?
Alles weitere können wir ja über PNs klären!

von Kai B. (kaib) Benutzerseite


Lesenswert?

Naja ich glaub der Hirose Stecker ist auch nicht der Optimale zumal die 
kontakte auf der falschen Seite wären.

http://de.mouser.com/ProductDetail/Omron-Electronics/XF2U-2015-3A/?qs=sGAEpiMZZMsVSejJL%252b66USxGqGncqpf9sObFJDlWAiY%3d
Der hier müsste fast am besten passen. Schön flach ist er auch noch.

@ Jakob
Bezüglich Mouser da hätte ich eventuell auch noch was anderes was ich 
von dort gebrauchen könnte.

MfG Kai

von Sven F. (mr_sven)


Lesenswert?

Ich glaube die passen nicht.
Laut Datenblatt ist die Maximale FPC Dicke zu klein, Datenblatt 0,2mm 
gemessen 0,3mm.

Wenn es ein paar passende gibt, dann würd ich auch 2 mit Bestellen 
wollen.

Gruß

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Ich glaube, sollten wir passende finden, dann bestelle ich gleich 10 
Stück, nur damit ich genug auf halte habe. ;)

von Kai B. (kaib) Benutzerseite


Lesenswert?

Habe in der Mittagspause mal bei Digikey gestöbert.
Und von Omron folgenden Verbinder gefunden
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=OR876CT-ND
Der sieht soweit doch recht passend für das Display aus.

Schließlich hat der Hersteller der das Display eingesetzt hat auch was 
passendes haben müssen.

Vielleicht findet sich einer der ne kleine Sammelbestellung bei Digikey 
tätigen würde.

MfG Kai

von Sven F. (mr_sven)


Lesenswert?

Jo, die sehen gut aus, FPC Dicke und Breite passen und die Sreckerbreite 
passt auch.

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hi,

habe den Basic Code mal nach C portiert und auf einen ATTiny2313 
gepresst.

Mit 8MHz ist der Bildaufbau ganz schön langsam.

Gruß

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hi,
also zur Info, das Display lässt sich ohne Probleme mit 20 MHz 
ansteuern.
Habe alle Delay Routinen raus geworfen, bis auf den 1ms Reset Delay.

Hab den AVR aber wieder auf 8 MHz runter getacktet, da er andauernd 
abschmiert mit 20MHz und 3,3V.
Hatte keine Lust die Pegelwandler in meine Testumgebung ein zu Bauen.

Auf der Unterseite habe ich noch nen SD Kartenslot dran, kann damit 
16bit Bitmaps von der SD anzeigen lassen.

Gruß Sven

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Super cool! Klasse!

Die Anzeige, also die Werte die angezeigt werden, funktioniert auch mit 
8MHz?

Welchen Controller verwendest Du genau?
Ich kenne nicht alle Typen genau, gibt es den ATTiny2313 in solch einer 
SMD-Variante?

Gruß und Danke
BrEin

von Sven F. (mr_sven)


Lesenswert?

Der erste Test war mit einem ATTiny2313 SOIC20 SMD.
http://www.mikrocontroller.net/attachment/115241/10072011124.jpg

Jetzt habe ich nen ATMega644PA TQFP44 dran, mit 8MHz internen Oszi.
Ja, die ADCs auslesen klappt super, wenn man genau hinsieht hängt es ein 
bisschen hinter her bei 8 ADCs und 8MHz, deswegen wollte ich eigendlich 
auf 20MHz gehen.
Dafür muss ich den AVR aber mit 5V versorgen und das kann das Display 
nicht ab, also muss ich dann Pegelwandler dazwischen setzen.

Den 2313 hatte ich anfangs nur zum testen genommen. Da passt nichtmal 
das Fontfile in den EEPROM, der 644PA hat da wesendlich mehr Platz.

Gruß Sven

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Da werde ich mich mal durchringen und ein Display direkt verlöten.

Wollte das bei der filigranen Folie umgehen, aber wie es aussieht, wird 
sich so schnell keiner melden, der bestellen wird.

von Sven F. (mr_sven)


Lesenswert?

Naja, man sollte bei DigiKey schon über 100$ kommen, sonnst kostet das 
gleich 30$ versand.

von Kai B. (kaib) Benutzerseite


Lesenswert?

Naja 65 Euro sind schnell zusammen. dann hat man schon mal 18Euro 
Versand gespart.
Ich selbst hätte sogar noch die ein oder andere Kleinigkeit und käme 
damit schon auf rund 120 Euro. Bis 150 Euro kommt theoretisch nur 19% 
Einfuhrumsatzsteuer drauf. Habe aber selbst bisher noch nichts bei 
Digikey bestellt. Vielleicht werde ich das einfach mal probieren und ein 
paar solcher Stecker mit bestellen.

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Kai B. schrieb:
> Naja 65 Euro sind schnell zusammen. dann hat man schon mal 18Euro
> Versand gespart.
> Ich selbst hätte sogar noch die ein oder andere Kleinigkeit und käme
> damit schon auf rund 120 Euro. Bis 150 Euro kommt theoretisch nur 19%
> Einfuhrumsatzsteuer drauf. Habe aber selbst bisher noch nichts bei
> Digikey bestellt. Vielleicht werde ich das einfach mal probieren und ein
> paar solcher Stecker mit bestellen.

Das wäre richtig klasse!

Wie oben beschrieben, wären es bei mir 5 Stück! ;)

Gruß und Danke
BrEin

von Sven F. (mr_sven)


Lesenswert?

ja, ich würde glatt auch 3 Stück nehmen.

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hi,
Hab jetzt noch ein bisschen mehr Speed aus den Funktionen gequetscht.
Habe noch 3 Funktionen ein gebaut:
1
void setFillArea(uint8_t X, uint8_t Y, uint8_t Width, uint8_t Height)
2
void fillRect(uint16_t Color, uint8_t X, uint8_t Y, uint8_t Width, uint8_t 
3
void drawRect(uint16_t Color, uint8_t Line, uint8_t X, uint8_t Y, uint8_t Width, uint8_t Height)
4
Line definiert die dicke des Rahmens

Die Funktionen sind so aufgebaut, das X und Y so Positioniert sind wie 
am Monitor.
1
0+----->X
2
 |
3
 |
4
 |
5
 V
6
 Y

Bem füllen einer Area wird allerdings von unten Links angefangen.
Das lässt sich aufgrund der Struktur des Display RAMS nicht verändern.

Unten ist dort wo der Stecker dran ist.

Das füllen von unten Links passt auch super zu einer 16bit Bitmap, die 
wird auch von unten Links aufgebaut.

Gruß

von Sven F. (mr_sven)


Lesenswert?

Hi,
Hab das Display nun an einem XMega mit 32Mhz dran.
Läuft wunderbar, der Bildaufbau ist auch Top, man könnte sogran nen film 
abspielen.

Gruß

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Och man! Und ich bin immer noch nicht dazu gekommen es auszuprobieren.
Langsam ist die fehlende Halterung über die man sich hier unterhalten 
hat auch keine Ausrede mehr!

von Bastler (Gast)


Lesenswert?

@Sven Fabricius

Ich habe auch so ein hübsches Teil zum laufen gebracht.
(Allerdings mit einem anderen Controller)

Meine Frage / Bitte:
Könntest Du die Text-Tabelle bzw. Textausgabe posten?

Sowas hatte ich mal auf dem KS0108 gemacht, ist aber nicht sooo 
kompatibel.

Danke!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hallo Sven,

habe jetzt auch mal das Display in Betrieb genommen, allerdings steht 
die Ausgabe bei mir Kopf, also alles erscheint korrekt, aber mit der 
Kontaktiefolie oben... So wie ich das gesehen habe, lässt sich das auch 
nicht ändern, man kann zwar links/rechts per Registerbit ändern, nicht 
aber oben/unten. Da das bei Kai auch so ist (siehe Schmetterling) mache 
ich mir erstmal keine Sorgen. Die Farbbrillianz ist allerdings ziemlich 
naja. Mit einem OLED, das hier noch in Betrieb ist, nicht vergleichbar.

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Knut Ballhause schrieb:
> Hallo Sven,
>
> habe jetzt auch mal das Display in Betrieb genommen, allerdings steht
> die Ausgabe bei mir Kopf, also alles erscheint korrekt, aber mit der
> Kontaktiefolie oben... So wie ich das gesehen habe, lässt sich das auch
> nicht ändern, man kann zwar links/rechts per Registerbit ändern, nicht
> aber oben/unten. Da das bei Kai auch so ist (siehe Schmetterling) mache
> ich mir erstmal keine Sorgen. Die Farbbrillianz ist allerdings ziemlich
> naja. Mit einem OLED, das hier noch in Betrieb ist, nicht vergleichbar.

Welches OLED hast Du denn in Betrieb?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Fabian Hoemcke schrieb:
> Welches OLED hast Du denn in Betrieb?

Das DEP160128A zum Beispiel, oder das Univision UG9664HDDAG01.

von tweaker (Gast)


Lesenswert?

Kann jemand mal ein Link zu dem Datenblatt von dem Display posten?

von Bastler (Gast)


Lesenswert?

Fürs Display gibt es kein Datenblatt.

Pinnbelegung findest du weiter oben.
Verwendeter Chip: S6B33B2

Aber die C-Beispiele (S6B33B2.c / S6B33B2.h) sind seeeehhhhr hilfreich!

von tweaker (Gast)


Lesenswert?

gibts schon infos, wie Spannung, Stromverbrauch?

von Bastler (Gast)


Lesenswert?

Das Display benötigt 3,3V, die Hintergrundbeleuchtung ebenfalls. 
Widerstände sind schon integriert.
Müsste alles schon oben stehen.

Gemessen hab ich ca. 1,7mA ohne Beleuchtung.

Man benötigt aber einen schnellen Controller, hab es auf nem 8-bitter 
mit 16MHz getestet und da war es ca. 1 sek für den Bildaufbau.

128 x 128 x 16 (bit pro Pixel) = 32k !!!

von Bastler (Gast)


Lesenswert?

oh, und noch was:

Besorg dir einen passenden Stecker.
20pol. mit 0,5mm Pitch auf ner Folie anzufädeln macht nicht soviel Spaß.

von tweaker (Gast)


Lesenswert?

Viele Dank schonmal...

und welcher stecker ist den da jetzt der richtige?
Welche Bezugsquelle gibts da für endverbraucher?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

tweaker schrieb:
> gibts schon infos, wie Spannung, Stromverbrauch?

Bastler schrieb:
> Gemessen hab ich ca. 1,7mA ohne Beleuchtung.

Durchaus sinnvoll, ein LCD ohne Hintergrundbeleuchtung zu betreiben ;-)
Mit Beleuchtung bei 3V3 etwa 17mA, Bildschirminhalt egal.

Bastler schrieb:
> 20pol. mit 0,5mm Pitch auf ner Folie anzufädeln macht nicht soviel Spaß.

Man kann das Display auch direkt mit dem Mainboard velöten, wenn man 
sich einen passenden Leiterkamm draufätzt. Einfach anlegen und 
Zinnbrücken ziehen.
Fädeln ist aber auch machbar. Mit Flussmittel und 2 Tassen Kaffee geht 
alles ;-)

von Sven F. (mr_sven)


Lesenswert?

Wenn ich zu hause bin lade ich mal noch ein paar beispiele hoch

von tweaker (Gast)


Lesenswert?

Sven Fabricius schrieb:
> Wenn ich zu hause bin lade ich mal noch ein paar beispiele hoch

Gerade Funktionen die der Menü-Erstellung wären sicher für viele 
hilfreich...

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hier die S6B33B2 lib um die Textfunktionen erweitert.
Habe aber nur LuciaConsole als Font drinne, da dies für mich erstmal 
ausreicht.
1
void putChar(uint16_t BackColor, uint16_t FrontColor, char C, uint8_t X, uint8_t Y);
2
void putText(uint16_t BackColor, uint16_t FrontColor, char *Text, uint8_t Length, uint8_t X, uint8_t Y);
3
void writeLn(char *Text);
4
void setXY(int Xn, int Yn);
5
void setFrontColor(uint16_t Color);
6
void setBackColor(uint16_t Color);
7
void clear(void);

Das Header File für den Text und die putChar Funktion sind leider net 
ganz so wie es sein sollte.
Wie oben beschrieben werden die Koordinaten bei meiner Lib von oben 
links gezählt, da ich es vom Programmieren so gewohnt bin.
Das Füllen des RAMs erfolgt von unten links, wie bei einer 16Bit Bitmap.
Das Byte Array der Schrift ist von oben nach unten aufgebaut, Aufgrund 
der RAM Problematik wird dieses dann aber von unten nach oben 
ausgelesen.
Man könnte die Byte Arrays umdrehen, aber dazu hatte ich noch keine 
Lust.

Zusätzlich habe ich die MMC Lib von Roland Riegel verwendet (Ging auch 
recht einfach auf den XMega zu portieren).
Dazu habe ich die folgende Funktion geschrieben, mit der man 16Bit 
Bitmaps anzeigen lassen kann.
1
void displayBMPFileAt(char* Filename, uint8_t X, uint8_t Y)
2
{
3
  struct fat_file_struct* fd = open_file_in_dir(fs, dd, Filename);
4
  if (!fd)
5
  {
6
    writeLn("File not found\0");
7
    return;
8
  }
9
  uint8_t buffer[256];
10
  intptr_t count;
11
  
12
  // read Byte Array start position
13
  int32_t file_pos = 0x0A;
14
  fat_seek_file(fd, &file_pos, FAT_SEEK_SET);
15
  count = fat_read_file(fd, buffer, 4);
16
  int32_t fileStart = ((int32_t)buffer[3] << 24) | ((int32_t)buffer[2] << 16) | ((int32_t)buffer[1] << 8) | buffer[0];
17
  
18
  // read Picture Width
19
  file_pos = 0x12;
20
  fat_seek_file(fd, &file_pos, FAT_SEEK_SET);
21
  count = fat_read_file(fd, buffer, 1);
22
  uint8_t Width = buffer[0];
23
  
24
  // read Picture height
25
  file_pos = 0x16;
26
  fat_seek_file(fd, &file_pos, FAT_SEEK_SET);
27
  count = fat_read_file(fd, buffer, 1);
28
  uint8_t Height = buffer[0];
29
30
  // set Display Area
31
  setFillArea(X, Y, Width, Height);  
32
  
33
  // display Picture
34
  fat_seek_file(fd, &fileStart, FAT_SEEK_SET);
35
  while((count = fat_read_file(fd, buffer, sizeof(buffer))) > 0)
36
    for(intptr_t i = 0; i < count; i+=2)
37
      LCD_BData(buffer[i+1], buffer[i]);
38
  fat_close_file(fd);  
39
}

Die Initialisierung sieht dann so aus:
1
// Display Initialisieren
2
S6B33B2_INIT(to_rgb565(255,255,255));
3
4
// X und Y setzen
5
setXY(2,2);
6
7
// Hintergrundfarbe setzen
8
setBackColor(to_rgb565(255,255,255));
9
10
// Fordergrundfarbe setzen
11
setFrontColor(to_rgb565(0,0,0));
12
13
// Einen Text Schreiben
14
writeLn("LCD Init complete\0");
15
writeLn("Starting SD\0");
16
17
// code für SD Init
18
uint8_t SDOK = 0;
19
switch (InitSDCard())
20
{
21
  case -1: writeLn("SD Init failed\0"); break;
22
  case -2: writeLn("SD no Parition\0"); break; 
23
  case -3: writeLn("SD no FAT\0"); break;
24
  case -4: writeLn("SD no DIR\0"); break;
25
  case 1:  writeLn("SD Init OK\0"); SDOK = 1; break;
26
}
27
28
if (SDOK == 1)
29
  displayBMPFileAt("Splash.bmp\0",0,0);

Ich habe mir angewöhnt bei Textpointern immer die \0 mit zu geben, da 
ich schon die dollsten dinger auf einem AVR erlebt habe.

An der ganzen Menüstruktur arbeite ich noch, da ich hier noch nicht ganz 
die beste Lösung gefunden habe, denn hier muss man sich ja die ganzen 
GUI Funktionen selber ausdenken.

von Bastler (Gast)


Lesenswert?

@Sven Fabricius

DANKE !!!

Ich habe die Funktionen etwas einfacher strukturiert und auf einen 
anderen Controller umgeschrieben.
Ging blitzschnell und es läuft!
Danke für die Textausgabe!

von Tweaker (Gast)


Lesenswert?

Wie schließ ich die 4x BL Pins an?

von Bastler (Gast)


Lesenswert?

Pin 17 + 18 an 0V
Pin 19 + 20 an 3,3V

von Tweaker (Gast)


Lesenswert?

@Sven Fabricius
Vielen DANK, für die Libary... Display läuft sauber...

Hab aber noch ein Problem...
Anstatt die Schrift wird nur ein balken an der Stelle gezeichnet, mit 
der BackgroundColor Farbe.

An was könnte das liegen? hab nen atmega32 im einsatz...

THX

von Sven F. (mr_sven)


Lesenswert?

Dein EEPROM is Voll.
Das FontFile braucht 1056 Byte, hast aber nur 1024 Byte.

Könntest das aber in PROGMEM umschreiben, dann müsste es gehen.

Gruß

von Tweaker (Gast)


Lesenswert?

Sven Fabricius schrieb:
> Dein EEPROM is Voll.
> Das FontFile braucht 1056 Byte, hast aber nur 1024 Byte.
>
> Könntest das aber in PROGMEM umschreiben, dann müsste es gehen.

Vielen Dank das ist es gewesen.

Hab folgendes ändern müssen:

in LuciaConsole_8x11.h:
1
#include <avr/pgmspace.h>
2
3
const uint8_t LuciaConsole[96][11] PROGMEM =

in S6B33B2.c in der Funktion putChar(...):
1
//eeprom_read_block(data, &LuciaConsole[(uint8_t)C - 32], 11); **ersetzt durch nächste Zeile
2
pgm_read_block(data, &LuciaConsole[(uint8_t)C - 32], 11);

in S6B33B2.c folgende Funktion hinzugefügt:
1
void pgm_read_block( uint8_t* pTarget, const uint8_t* pSource, size_t len )
2
{
3
  size_t i;
4
 
5
  for( i = 0; i < len; ++i )
6
    *pTarget++ = pgm_read_byte( pSource++ );
7
}

von Tweaker (Gast)


Lesenswert?

Nächste Frage:

hat schon jemand die Minimalbeschaltung herausgefunden?
Ich möchte PortPins am µC sparen... welche pins kann ich weglassen bzw. 
fix connecten... welche Funktion geht dann nicht?

THX

von Bastler (Gast)


Lesenswert?

Ich hab den ChipSelect, Reset und Read (hab noch nie von einem Display 
gelesen!) statisch gelegt.

Kommt aber immer auf deine Schaltung drauf an.

von Kai B. (kaib) Benutzerseite


Lesenswert?

Das Display lässt sich nicht in einen anderen Modus versetzten.
Die Kontaktflächen sind für den 8080 8Bit Modus auf dem Flexleiter 
direkt am Glasübergang entsprechend gebrückt (PS, MOD0-1 Pins) sieht man 
auch in meiner Anschlussbelegung am Anfang des Threads.

Hat eigentlich schon wer diesen Stecker von Digikey ausprobieren können?
Bin bisher aufgrund Zeitmangel nicht dazugekommen selbst etwas zu 
bestellen.

MfG Kai

von tweaker (Gast)


Lesenswert?

Bastler schrieb:
> Ich hab den ChipSelect, Reset und Read (hab noch nie von einem Display
> gelesen!) statisch gelegt.
>
> Kommt aber immer auf deine Schaltung drauf an.

Kannst du das etwas genauer erläutern? statisch auf GND oder VDD?
Und auf was kommte es in meiner Schaltung an?

von Bastler (Gast)


Lesenswert?

Den Reset habe ich statisch auf Vcc gelegt.
RDB und CS1B auf GND. (CS1B so, dass das Display angesprochen wird)
(muss daheim mal nachsehen, habe es gerade nicht zur Hand)

Somit kann nicht vom Display gelesen werden, benötigt man aber nicht 
unbedingt.

Auf deine Schaltung kommte es insofern darauf an was du alles auf am 
Datenbus (D0 - D7) anschließt.
Wenn nur das Display dranhängt kann es ständig angesprochen werden.

von Sven F. (mr_sven)


Lesenswert?

Kai B. schrieb:
> Hat eigentlich schon wer diesen Stecker von Digikey ausprobieren können?
> Bin bisher aufgrund Zeitmangel nicht dazugekommen selbst etwas zu
> bestellen.

Habe bei der letzten Sammelbestellung die folgenden mitbestellt, passen 
wunderbar.

Http://search.digikey.com/us/en/products/XF2W-2015-1A/OR876CT-ND/1812177

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bastler schrieb:
> Somit kann nicht vom Display gelesen werden, benötigt man aber nicht
> unbedingt.

Damit verschenkst Du wertvollen Speicher, den Dein Controller vielleicht 
nicht hat. Read/Modify/Write ist eine tolle Sache, wenn man Teile des 
bereits dargestellten Bildes ändern möchte.

von Bastler (Gast)


Lesenswert?

> Read/Modify/Write

Soweit hatte ich noch garnicht gedacht...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bastler schrieb:
> Soweit hatte ich noch garnicht gedacht...

Naja, im Grunde ist so ein Display ein externes SRAM. Damit kann man 
auch umgehen, wie mit externem SRAM, also lesen und schreiben in 
aufeinanderfolgenden Arbeitsgängen. Es kann (auch) an klassischen 
XRAM-Schittstellen betrieben werden, dann muß der µC nicht mal 
softwareseitig mit den Steuerleitungen klappern. Dass der Inhalt des 
SRAMs auf einem Bildschirm angezeigt wird und dann auch noch bunt, ist 
ein nützlicher Nebeneffekt ;-)

von Bastler (Gast)


Lesenswert?

Ich habe das Display momentan nur mit einem kleinen STM8 getestet.
(braucht ca. 1Sec für den Bildaufbau, ist aber o.k. zum Routinen testen)
In Planung ist das Ding an einen LPC1768 zu hängen...

...die Zeit fehlt nur momentan!

von tweaker (Gast)


Lesenswert?

Soweit so gut, jetzt sollten fast alle Infos zum Display in diesem 
Thread sein.
Wenn jemand noch ne Eagle Lib erstellt hat, wäre es super diese hier 
hochzuladen...

von Bastler (Gast)


Lesenswert?

@tweaker

Selbst ist der Mann!

von Tweaker (Gast)


Lesenswert?

Bastler schrieb:
> @tweaker
>
> Selbst ist der Mann!


Mach ich wenn ich eine hätte, aber wieso soll ich das Rad neu erfinden?
Ich werde erste ende dieser bzw. nächste Woche dazu kommen. Stell die 
dann rein, wenn noch keiner was hat...

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Tweaker schrieb:
> Bastler schrieb:
>> @tweaker
>>
>> Selbst ist der Mann!
>
>
> Mach ich wenn ich eine hätte, aber wieso soll ich das Rad neu erfinden?
> Ich werde erste ende dieser bzw. nächste Woche dazu kommen. Stell die
> dann rein, wenn noch keiner was hat...

Wäre super!
Danke!

von Tweaker (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal meine Version dargestellt....
Ich erstelle damit eine AdapterPlatine... Lege den Anschluss vom Display 
drüber und löte ihn fest auf die Adapterlatine... evtl. ein paar Drähte 
als Brücke...

Schaut mal ob ihr was damit anfangen könnt...

von Jakob K. (jakobk)


Lesenswert?

Hallo zusammen,

wie ist das mit den Spannungspegeln? 5V oder 3,3V oder ganz was anderes? 
Was ist der RS bzw RSTB? zwei Resets? sind irgendwelche Steuersignale 
invertiert?

Danke

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Jakob Kleinen schrieb:
> 5V oder 3,3V

3.3V. Wer lesen kann ist klar im Vorteil.

Beitrag "Re: LCD-Modul SAMSUNG UG12D228AA von Pollin"

Jakob Kleinen schrieb:
> Was ist der RS

RegisterSelect, damit stellt man ein, ob man ein Kommando oder Daten 
sendet.

Jakob Kleinen schrieb:
> RSTB

RESET, Low active

Jakob Kleinen schrieb:
> sind irgendwelche Steuersignale
> invertiert?

Ja: RSTB, CS1B, RDB, WDB.

von Jakob K. (jakobk)


Lesenswert?

Knut Ballhause schrieb:
> 3.3V. Wer lesen kann ist klar im Vorteil.

stimmt schon, aber wenn solche Beiträge eine gewisse Länge erreichen ... 
=)

> RegisterSelect, damit stellt man ein, ob man ein Kommando oder Daten
sendet.

ist dann high = data und low = register ?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Schau mal in´s Datenblatt, der Controller ist weiter oben benannt.

Beitrag "Re: LCD-Modul SAMSUNG UG12D228AA von Pollin"

von Mike J. (emjey)


Angehängte Dateien:

Lesenswert?

Ich habe mir auch mal zwei Displays bestellt und bin sehr zufrieden.

@ Kai B. und Sven Fabricius
Danke für die Arbeit und das Programm.


Tweaker schrieb:
> Lege den Anschluss vom Display
> drüber und löte ihn fest auf die Adapterlatine.

Das werde ich mal ausprobieren und sag ob es funktioniert oder Probleme 
macht.

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hi,
habe noch ein bisschen mehr speed raus gequetscht.

Habe die LCD_WData und LCD_WCom Funktionen durch DEFINE Code ersetzt, 
das spart Register zwischenspeichern.
Ausserdem habe ich die INIT Funktion geändert und ENTRY_MODE_SET 
Parameter so abgeändert, dass ein RAM Read auch die RAM Position 
Incrementiert.
Das hat den Vorteil, dass man RAM Adressen einfach überspringen kann und 
diese nicht mit irgendwelchen Daten füllen muss.

Habe die putChar Funktion so abgeändert, dass zwischen den Buchstaben 
Pixeln, statt die Hintergrundfarbe zu schreiben, die RAM Adresse 
übersprungen wird, dazu wird die Funktion LCD_SData(); benutzt.
Das heiß, Transparenter Text.

Das würde das Verwenden der BackgroundColor überflüssig machen, aber 
vieleicht kann man es ja noch gebrauchen.

Gruß

von Mike J. (emjey)


Angehängte Dateien:

Lesenswert?

Tweaker schrieb:
> Lege den Anschluss vom Display
> drüber und löte ihn fest auf die Adapterlatine... evtl. ein paar Drähte
> als Brücke...

Ich habe es mal etwas anders gemacht.
Im Anhang ist ein Auschnitt meines SPI-TFT-Adapters.

Die Platine wurde vorher ausgerichtet und an den Seiten mit dem Rahmen 
fixiert (Heißkleber), so dass die Kontakte alle übereinander liegen.

Die Pads wurden vorher verzinnt und mit einem Hauch Flussmittel, etwas 
Druck mit einem kleinen, geraden Stück Holz angelötet.

Ich hätte einen mini Heißlüfter gebrauchen können der alle Pads 
inklusive der Pads auf der Folie erwärmt, dann würde das Zinn 
gleichzeitig schmelzen.

Ausprobiert habe ich es noch nicht, aber die Pins haben untereinander 
keinen Kontakt, das sollte also klappen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hut ab! Wenn´s läuft ;-)

von bitte löschen (Gast)


Angehängte Dateien:

Lesenswert?

Juhuuu! Bei mir hat es nun auch geklappt. Ich habe einen ATmega88 auf 
einem selbst entworfenen Entwicklungsboard, mit dem ich im Gegensatz zum 
Pollin "Evaluation Board" auch auf 3,3V schalten kann, verwendet.
Der Quarz auf dem Bild täuscht und steckt da nur drin, um nicht verloren 
zu gehen.. Der ATmega88 läuft hier mit dem internen RC-Oszillator auf 8 
MHz.

Die Verbindung habe ich auch mit einer kleinen Adapterplatine gemacht, 
die ich als PDF angehängt habe. Den Footprint dazu (sorry Eagle-User, 
der ist für gEDA/pcb) habe ich erstellt, indem ich den Anschluss mit 
meinem Aldi-Mikroskop fotografiert habe, und anhand des bekannten 
Rastermaßes von 0,5 mm die restlichen Werte auf dem Bild vermessen habe. 
Die seitlichen Streifen passen, wenn ausgefeilt, genau in die 
Vertiefungen rechts und links der Anschlüsse am Display, so dass die 
Leiterbahnen genau übereinander liegen, wenn der Adapter so platziert 
wird, dass die seitlichen Folien leicht hoch gebogen an den Außenseiten 
der Streifen liegen.
So konnte ich auf den Heißkleber vor dem Löten verzichten.
Die Platine habe ich entlang der Kontakte auf der Oberseite angefast, um 
sie lokal dünner zu machen und die Wärmeableitung zu verringern.
Ich habe auch beide Seiten (nicht zu) dünn verzinnt, und mit einer 
dicken Zinnperle am Kolben durch die Folie erhitzt. Das Holz war bei mir 
ein Bambusfleischspieß. Die Folie scheint recht hitzebeständig zu sein. 
Ich konnte den Kolben schön langsam über die gesamte Länge ziehen (Der 
Spieß direkt folgend), ohne dass das Plastik weich oder klebrig wurde.
Jedenfalls hat es beim ersten mal geklappt. Alle Verbindungen da, keine 
Kurzschlüsse. Da war ich baff. - So schnell und einfach geht das!
Das manuelle Crimpen und Fummeln der PSK-Kontakte hat jedenfalls länger 
gedauert. :-D

Im Source musste ich nur die Ports und den LCD_RSTB auf PC1 ändern. (PC6 
ist beim ATmega8(8) /RESET, und die RSTDSBL- (oder so) Fuse lasse ich 
lieber in Ruhe.)
Den Font musste ich in den PROGMEM verlegen und den Zugriff darauf 
entsprechend anpassen, weil er nicht in den EEPROM gepasst hätte.

Schön, dass der Font wie meine Tochter heißt. ;-) :-D

von bitte löschen (Gast)


Lesenswert?

Es ist schade, dass es das Teil bei Pollin nun nicht mehr gibt.
Ich habe mich mal auf die Suche gemacht, und hier
http://www.hobid.com/bid-sell-49011/UG12D228AA
meine Daten und bei 2$ mal 30 Stück eingegeben und submit gedrückt.

Nun habe ich eine Nachricht erhalten, in der ich gefragt werde, ob ich 
auch mehr als 30 nehmen würde.
Wer hat Interesse mit mir sozusagen eine Einkaufsgemeinschaft zu bilden?

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Ich habe mich schon mit 5 Stck eingedeckt.
Was ich gebrauchen könnte, wären die Stecker!

von Erhard Waretzi (Gast)


Lesenswert?

Bei Pollin gibt es gerade eine 30-polige Flexprint-Buchse für 1,95 Euro.

http://www.pollin.de/shop/dt/NjQ1ODQ1OTk-/Bauelemente_Bauteile/Mechanische_Bauelemente/Steckverbinder_Klemmen/Flexprint_Buchse_YAMAICHI_FPC_98210_3001_T_R.html

Die Buchse lässt sich durch die Null-Kraft-Mechanik leicht auf das 
Display stecken. Die überzähligen 10 Kontakte stören kaum, weil sich die 
seitlichen Folien des Displays anheben lassen. Die Buchse ist für 
senkrechte SMD-Montage gedacht. Ich konnte an die Buchse recht leicht 
Fädeldrähte anlöten weil an beiden Seiten der Buchse die Pins im 
1mm-Raster abstehen.

[Mod: Anhang zu diesem Beitrag entfernt, siehe stattdessen Foto weiter 
unten]

von Frank H. (fh_)


Lesenswert?

@ag999
7 Stück könnte ich noch gebrauchen.

von Michael D. (etzen_michi)


Lesenswert?

Falsch fokusiert und 1,2MB ..

von Michael D. (etzen_michi)


Angehängte Dateien:

Lesenswert?

Daher das man kein Bild nachträglich hinzufügen kann:

20kb reichen...

von bitte löschen (Gast)


Lesenswert?

Philipp Klostermann schrieb:
> Nun habe ich eine Nachricht erhalten, in der ich gefragt werde, ob ich
> auch mehr als 30 nehmen würde.

In der Sache hat sich leider nichts mehr ergeben.

Ich habe heute noch Kontakt mit einem schwedischen Anbieter gehabt und 
ein Angebot über 42,75€ pro Stück bei Abnahme von 16 Stück bekommen. Er 
sagt, dass dieses Teil rar und schwer zu bekommen ist.

Meine Anfrage bei hobid.com werde ich schließen und die Sache aufgeben.

von Bastler (Gast)


Lesenswert?

Am Sonntag 27.05.12 stehen ein Paar bei eBay drin!

von Nobody (Gast)


Lesenswert?

Danke für den Hinweis.
Die kosten auch nur 9,90€.
Werd mal nachfragen ob er noch mehr davon hat.

von Bastler (Gast)


Lesenswert?

Gibt es neue Basteleien / Code für die Displays?

Wer hat welche im Einsatz?

von flotri (Gast)


Lesenswert?

Ich habe 4 von diesen Displays in meiner Displaykiste gefunden und 
wollte endlich mal meine eigenbau-Uhr verwirklichen.

Hat jemand von Euch zufällig mal den Strombedarf mit/ohne 
Hintergrundbeleuchtung gemessen? Ist der vergleichbar mit dem, was das 
Display nimmt, wenn man es "so" anschliesst, d.h. nur GND/VCC verbindet?

Übrigens, die Verbinder gibt's bei TME ohne den großen 
Versandkostenoverhead: 
http://www.tme.eu/en/details/xf2w20151ar100/connectors-ffcfpc-05mm/omron/

von Bastler (Gast)


Lesenswert?


von noob (Gast)


Lesenswert?

Sind aber andere LCDs.

von Mariusz B. (Firma: POLAND) (maniana18)


Lesenswert?

Hallo! Vielleicht hat jemand den Code in Bascom geschrieben? Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.