Forum: Mikrocontroller und Digitale Elektronik Informationen gesucht: 3,3V Display HB24208 für AVR32 / NGW100


von Bal T. (baltic)


Angehängte Dateien:

Lesenswert?

Hallo,

im Beitrag

Beitrag "Informationen zu LCD-Display HB24209 (HYLCD) gesucht"

habe ich versucht Informationen (Datenblatt/Übertragungsprotokoll) zum 
Display HB24208 (HB24209) der Fa. HYLCD zu bekommen. Leider hatte ich 
hier, wie auch bei der Suche im Internet, bislang keinen Erfolg.

Weiterhin besteht meinerseits der Wunsch diese Displays am GPIO eines 
AVR32 (z.B. NGW100) einzusetzen und einen Linux-Treiber dafür zu bauen. 
Sicher könnte ich auch auf die DOG-M LCD-Module (3,3 V) ausweichen und 
diese via SPI am NGW100 betreiben. Von den HB24208 habe ich aber einige 
Module liegen und möchte sie gerne bevorzugt für diesen Zweck einsetzen.

Gestern hat mich nun der sportliche Ergeiz gepackt und ich habe mal fix 
mittels einem CPLD (XC9572XL), einem SRAM (128Kbyte) und einem ATmega162 
einen 4-bit Logikanalysator aufgebaut. Die Ausmaße sind im angehängten 
Foto erkennbar. Hier die dadurch gewonnenen Erkenntnisse:

Das Display wird mit 4 Leitungen angesteuert.

DISPLAY_SELECT (Eingang)

- Chip Select
- Low-aktiv

DISPLAY_CLOCK (Eingang)

- Takt für die serielle Übertragung
- maximale Frequenz 1 MHz (500ns/500ns)

DISPLAY_DATA1 (Eingang, evtl. bidirektional)

- Displaydaten
- gültig bei steigender Taktflanke
- Übertragung erfolgt wortweise (16-bit)
- LSB (D0) wird zuerst und MSB (D15) wird zuletzt übertragen
- sichtbare Displayinformationen können aus diesen Daten zurückgewonnen 
werden

DISPLAY_DATA2 (Richtung noch unklar)

- wahrscheinlich wie DISPLAY_DATA1
- bei der Übertragung von sichtbaren Displayinformationen immer 0xFFFF


Die weiteren Anschlüsse des Displays sind alle bekannt (GND, +3.3V, 
VLCD), aber für die Betrachtung des Übertragungsprotokolls nicht 
interessant. In den nächsten Tagen werde ich versuchen, die 
Initialisierung des Displays nach Power-On 'einzufangen'. Vielleicht 
entdecke ich (oder Ihr) dann ein paar Gemeinsamkeiten zu bekannten 
LCD-Controllern.

Die folgenden beiden Beiträge beinhalten zunächst die aktuellen 
Ausgabedateien meines Miniatur-Logikanalysators.


Kennt jemand von Euch ein solches Übertragungsprotokoll?

Wie kann ich möglichst einfach und sicher die genauen 
Übertragungsrichtungen der beiden Datenleitungen ermitteln?


Vielen Dank für Eure Unterstützung!


Gruß Jens

von Bal T. (baltic)


Angehängte Dateien:

Lesenswert?

Ausgabedatei Nr.1 des Logikanalysators

Darstellung der Übertragung eines Datenblocks

- unkomprimierte Daten (sampling rate 8 MHz / 125 ns)
- komprimiert, Pausen > 2,5 µs (20 Samples) entfernt
- decodiert, DISPLAY_DATA1 & DISPLAY_DATA2, je 32x16 Bit

(Bitte idealerweise mit PN2 o.ä. öffnen, Notepad wegen der 
Zeilenumbrüche nicht geeignet)

von Bal T. (baltic)


Angehängte Dateien:

Lesenswert?

Ausgabedatei Nr.2 des Logikanalysators

Darstellung mehrerer aufeinander folgender Datenblöcke

- decodiert, DISPLAY_DATA1 & DISPLAY_DATA2, je 32 x 16 Bit
- Übertragung alle 0,5 Sekunden (Auffrischung Uhrzeit / Datum)

von Bal T. (baltic)


Angehängte Dateien:

Lesenswert?

Hallo,

hat niemand von Euch eine Idee?

In der Zwischenzeit ist es mir gelungen die Initialisierung nach den 
Einschalten der Versorgungsspannung 'mitzuscheiden'. (siehe Anhang)

In den Datenblöcken sind scheinbar folgende Informationen enthalten:

0x00   Initalisierung des Displays

0x01   Übertragung der benutzerdefinierten Zeichen 'Ä' und 'Ö' (CG-RAM)
0x02   Übertragung der benutzerdefinierten Zeichen 'Ü' und '|' (CG-RAM)
0x03   Übertragung der benutzerdefinierten Zeichen 'ä' und 'ö' (CG-RAM)
0x04   Übertragung der benutzerdefinierten Zeichen 'ü' und 'ß' (CG-RAM)

0x05   ???
0x06   ???

0x07   Displayinhalt (1. Zeile)
0x08   Displayinhalt (2. Zeile)

0x09   Displayinhalt (1. Zeile), nach 500 ms
0x0A   Displayinhalt (1. Zeile), nach 1000 ms
0x0B   Displayinhalt (1. Zeile), nach 1500 ms
0x0C   Displayinhalt (1. Zeile), nach 2000 ms


Unklar ist mir weiterhin der Inhalt des Headers jedes einzelnen 
Datenblocks. Außer im Block 0x00 schein im 7. Wort (0x06) eine 
Adressangabe enthalten zu sein.

Problematisch ist für mich auch, herauszufinden in welcher 
Übertragungsrichtung die Datenleitungen (DISPLAY_DATA1 & DISPLAY_DATA2) 
betrieben werden. Momentan lese ich nur den Datenverkehr auf beiden 
Leitungen mit.

Hat Ihr Ideen wie ich nun am sinnvollsten weitermachen könnte?


Gruß Jens

von Norbert B. (nobb-0815)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich experimentiere ebenfalls mit dem Display HB24208 / HB24209 was 
baugleich zum VLG1021#2 / VLGEM1021-03 ist.

Gibt es mittlerweile etwas neues hierzu? Ein Datenblatt habe ich nämlich 
auch nicht. Allerdings kann ich mittlerweile etwas an das Display 
senden, auch wenn nur undefinierte Zeichen auf dem Display erscheinen...

Scheinbar scheint die Initialisierung teilweise zu funktionieren, aber 
eben nur teilweise (ich habe den Datenstrom zwischen Optipoint500 und 
Display mit dem Oszi aufgezeichnet und versuche ihn nun über SPI meines 
µControllers nachzubilden).

Kann mir jemand weiterhelfen, bin auch gern bereit noch paar Daten 
preiszugeben..??!!

Folgende Daten sende ich an das Display (diese habe ich mit einem Oszi 
aufgezeichnet). Leider konnte ich beim Aufzeichnen der Daten nur 
begrenzt informationen gewinnen, da ich keine Dect Anlage habe und das 
Telefon im Sekundentakt neu booted. Zwar wird das Display kurz 
initialisiert, allerdings wir hierbei ein Pixeltest durchgeführt und 
alle Pixel eingeschaltet. Es ist nur ein Teil der Daten.. den ich also 
aufgezeichnet habe.. leider weiß ich nicht wo die Initialisierung 
aufhört! Nach dieser Initialisierung habe ich versucht einge Zeichen ans 
Display zu senden.. das Display zeigt wilde Schriftzeiche die nix mit 
dem zu tun haben was ich hinsende..

DISPLAY_CSB = 0;
LCDWriteByte(0x07);
LCDWriteByte(0x17);
Delay1ms(50);
LCDWriteByte(0x07);
LCDWriteByte(0x17);
Delay1ms(10);

LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0xF8);
Delay100us(1);
LCDWriteByte(0x10);
LCDWriteByte(0xC0);
Delay100us(1);
LCDWriteByte(0x30);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0x80);
LCDWriteByte(0x00);
Delay100us(1);

LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);

LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0xF8);
Delay100us(1);
LCDWriteByte(0x30);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0xF8);
Delay100us(1);
LCDWriteByte(0x90);
LCDWriteByte(0x90);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0xFA);
Delay100us(1);
LCDWriteByte(0x50);
LCDWriteByte(0x50);
Delay100us(1);

LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0xF8);
Delay100us(1);
LCDWriteByte(0x60);
LCDWriteByte(0x60);
Delay100us(1);
LCDWriteByte(0xFE);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0x00);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0xF8);
Delay100us(1);
LCDWriteByte(0x00);
LCDWriteByte(0x20);
Delay100us(1);
LCDWriteByte(0xFC);
LCDWriteByte(0xFA);
Delay100us(1);
LCDWriteByte(0x80);
LCDWriteByte(0x80);
Delay100us(1);

Danach Schriftzeichen...
-----------------------------------------------------

Pinbelegung des Displays (von hinten links an gesehen):

1: ungenutzt
2: ungenutzt
3: SPI_MOSI (Daten ans Display senden)
4: GND
5: SPI_CLK
6: GND
7: SPI MISO (Daten vom Display empfangen, habe ich nicht genutzt)
8: 3,3V Versorgungsspannung
9: SPI_CSB (Chip Select, muß bei Datentransfer low sein)
10: Kontrast (hier muß man ca. 2V anlegen)

Ich habe mit 500kHz ans Display gesendet, es verträgt wohl bis zu 1MHz

So, wer etwas herausbekommt, bitte umgehend bei mir melden!!!

von derKoch (Gast)


Lesenswert?

Hallo zusammen,

die Daten aus euren Postings haben mir sehr geholfen das Ding zum laufen 
zu kriegen - klappt wunderbar.
Nun will ich mal zur Aufklärung der Sache beitragen. Das Display besitzt 
meiner Meinung nach einen Kontroller vom Typ KS0074. Zumindest konnte 
ich das mir vorliegende Display mittels der im Datenblatt beschriebenen 
seriellen Kommandos zum Anzeigen von Klartext etc. überreden.
Man muss auch die Auftrennung jedes Bytes in zwei 'Halbbytes' bei der 
Übertragung beachten...aus 0xAB wird 0x0A + 0x0B (steht auch im 
Datenblatt)
Ich habe übrigens das BusyFlag abgefragt anstatt die vorgegebenen Zeiten 
abzuwarten - das ist meines Erachtens deutlich schneller als 'Delay'.

von Bal T. (baltic)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

erstmal danke an den Koch für diesen wertvollen Hinweis!

Habe zwar noch nicht viel Zeit in die Begutachtung des Datenblatts 
gesteckt, bin aber auch überzeugt davon das der KS0074 ganz oben auf der 
Liste der 'Verdächtigen' steht. Das Geheimnis offenbart sich auf den 
Seiten 45 bis 47 im Datasheet.

Nun ist mir auch klar, warum ich nichts mit den Daten vom Display 
anfangen konnte. Die haben einfach eine andere Struktur als die Daten 
zum Display. Weiterhin ist interessant das jede Übertragung mit einem 
Starting-Byte zu beginnen hat. Danach können mehrere Bytes geballt 
(continuous) folgen.


Gruß Jens

von qinyan723 (Gast)


Lesenswert?

sale HB24208 / HB24209
contact tel:0086-13068707230

von qinyan723 (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe in letzter Zeit einen Menge Mails bekommen von Firmen die 
solche LCD suchen.
Die sind für Siemens Optipoint Telefone. Anscheinend wurde die 
Produktion eingestellt.   (Modell ist HB24208/HB24209)
Wir produzierten die LCM Alternativen, braucht einen Freund, 
kontaktieren Sie mich bitte.

e-mail:qinyan723@163.com
TEL: 0086 - 13068707230
     0086 - 0755 29161161 ext 813
Address:
     3F Building A ,Yicheng Industry Area, Xixiang Street  , Baoan 
District ,Shenzhen , Guangdong Province , China
http://www.szjunxian.com/en/index.asp

von qinyan723 (Gast)


Angehängte Dateien:

Lesenswert?

drawing

von qinyan723 (Gast)


Angehängte Dateien:

Lesenswert?

phone

von qinyan723 (Gast)


Angehängte Dateien:

Lesenswert?

display

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.