Forum: Mikrocontroller und Digitale Elektronik Pollin Display DMC 2047


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Simon K. (simon) Benutzerseite


Lesenswert?

http://www.pollin.de/shop/dt/NDM1OTc4OTk-/Bauelemente/Aktiv/Displays/LCD_Modul_Optrex_DMC_2047.html

Bestellnummer: 120 465

Hat da schon jemand was mit gemacht? Im Forum lässt sich nichts finden, 
auch bei Google scheint niemand aufzutauchen der sich damit schon mal 
abgemüht hat :-)

Integrierter Controller NEC PD7228AG
Einzeiliges Display mit integriertem Controller. Das Display verfügt 
über eine orange Hintergrundbeleuchtung, 4 LEDs und eine 
IR-Empfangsdiode. Es können 8 Zeichen und 10 Sonderzeichen angezeigt 
werden. Einfacher Anschluss über 22-poliger Lötleiste.

Scheint ein Custom Chip zu sein, ist auf dem ersten Blick nichts dazu zu 
finden. Schade eigentlich.

von Иван S. (ivan)


Lesenswert?

Simon K. schrieb:
> Integrierter Controller NEC PD7228AG

Dabei handelt es sich um den vielfach eingesetzten µPD7228 in der 
A-Version (Kontrastspannungsmaximum von 5 auf 12V angeboben).

> [...] ist auf dem ersten Blick nichts dazu zu finden. Schade eigentlich.

Aber auf den Zweiten ;-)
Datenblatt (old style, nicht durchsuchbar) unter 
http://www.necel.com/nesdis/image/IC-3129.pdf

Gruß, Iwan

von Simon K. (simon) Benutzerseite


Lesenswert?

Danke! :-)

von Hans H. (hanshein)


Lesenswert?

Hat schon jemand eine Belegung der Kontaktleiste herausgefunden?

VG,
Hans

von bit (Gast)


Lesenswert?

Hallo Ivan, könntest du das Datenblatt online stellen, da der Link nicht 
mehr erreichbar ist. Danke.

von micha (Gast)


Lesenswert?

@ bit (Gast) : such nach uPD7228

von Dennis Heynlein (Gast)


Angehängte Dateien:

Lesenswert?

@bit:
Im Anhang hab ich dir mal die Belegung angehängt die ich soweit 
rausgefunden habe.
Das PDF zum Chip läßt sich bei Google mit d7228ag.pdf finden.

Gruß Dennis

von Kai B. (kaib) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe das Display schon erfolgreich angesteuert.
Anbei mal ein kleines Progrämmchen welches ich mit Freebasic nutzte um 
das Display am LPT anzusteuern.

Der Code kann als Pseudo Code für den einen oder anderen hilfreich sein.
Anbei auch noch 2 Bilder.
Mehr Infos hab ich momentan leider keine dazu müsste ich erstmal wieder 
den Papierkram zusammensuchen.

von diopter (Gast)


Lesenswert?


von sf1 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
gute Arbeit Dennis und Kai.
Die Ansteuerung habe ich mit einem PIC-Controller realisiert. Der Preis 
von 1,95€ hat sich die Anschaffung wirklich gelohnt.

Gruß
sf1

von Jörg B. (manos)


Lesenswert?

@sf1

Danke, das ist genau das, was mir bisher immer gefehlt hat wenn ich mal 
nach dem Display gesucht hatte... einen konkrete Beschaltung.

Ist VLC5 die Kontrastspannung und reicht das dann wenn man die auf 
einfach auf GND legt?

Gruß Manos.

von Vlad T. (vlad_tepesch)


Lesenswert?

Kai B. schrieb:
> Der Code kann als Pseudo Code für den einen oder anderen hilfreich sein.
> Anbei auch noch 2 Bilder.

bei Pollin im text steht doch 1x8 Zeichen?

scheinbar hat das Display aber
2x8 Textzeilen.
+ 6 Symbole
+ einen Balken

Ist der Balken oben frei steuerbar?

von Kai B. (kaib) Benutzerseite


Lesenswert?

Ja soweit ich mich erinnere war der Balken sogar frei ansteuerbar.

Müsste sonst das Ding mal wieder an dem PC hängen und mal schauen was 
auf welchen Adressen liegt.

Gruß Kai

von sf1 (Gast)


Lesenswert?

genau, das Display hat zwei Textzeilen. Die Symbole sind eher weniger 
brauchbar. Dafür sind die 40 Punkte des Balkens frei ansteuerbar, ab 
Adresse 64 aufwärts. Mein Programm habe ich in Mikrobasic geschrieben 
und ist stark an Kais Beispielcode angelehnt. Zuerst wird ein Text 
geschrieben, dann alle Symbole nacheinander ein- und ausgeblendet und 
zum Schluss der Balken auf- und abgebaut. Den Takt habe ich über einen 
Timer realisiert, glaube so etwa 100KHz, die genaue Frequenz scheint 
aber unkritisch zu sein. Nach dem Datenblatt sind 80KHz die unterste 
Grenze. VLC5 auf Masse ist das Kontrastmaximum.

Gruß
sf1

von Mathias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

entschuldigt, dass ich den alten Thread nach einem dreiviertel Jahr noch
einmal rauskrame.

Ich habe mit ebenfalls das Display DMC-2047 von Pollin zugelegt und
wollte es mit einem Atmel ATtiny 2313 ansteuern. Auf der Suche nach
Informationen bin ich auf dieses Forum und das hilfreiche Thema
gestoßen, das mir sehr weitergeholfen hat! Habe den Code in C
geschrieben und mit dem WinAVR kompiliert. Angelehnt ist der Code an die
Datei "DMC2047.mbas" vom Autor "sf1". Wenn ich den Code auf den
Prozessor übertrage und laufen lasse, dann erscheint leider gar nichts.
Beim Anlegen der Spannung (An Atmel-Controller-Schaltung, die das
Display versorgt) ist auf dem Display von links nach rechts eine Reihe
mit Bindestrichen "-" zu sehen, die dann langsam wegbröckelt und ein
leeres Display hinterläßt. Beim Abziehen der Spannung erscheint die
Reihe mit Bindestrichen erneut kurz und verschwindet dann mangels
Spannung wieder. Ansonsten geschieht dort nichts, weder in den zwei
Textzeilen noch an dem Bargraph. Ich sehe nur ein vollkommen leeres
Display. Habe schon einige Abend ohne Fortschritte daran rumgeschrieben
und probiert, leider ohne erkennbaren Erfolg. Daher jetzt mein
"Hilferuf" an dieser Stelle.

Vielleicht könnte jemand so nett sein und einmal einen fachmännischen
Blick in die angehängte Datei mit dem Programmtext werfen, ob es
theoretisch funktionieren sollte, wie ich es programmiert habe oder ob
darin ein Fehler versteckt ist, den ich übersehen habe und der für die
fehlende Funktionalität verantwortlich ist. Wenn es Eurer Meinung nach
gehen sollte, dann muss ich mal messen, ob an den Pins wirklich die
erwarteten Signale anliegen, gerade auch beim Taktsignal an CLK. Leider
habe ich kein Oszilloskop, so dass ich es irgendwo anders machen müsste.

Vielen Dank schon einmal im Voraus.

Schöne Grüße
     Mathias

von Arne Rossius (Gast)


Angehängte Dateien:

Lesenswert?

Moin Mathias,

ein Problem deines C-Programms habe ich gefunden:
1
  if(LCD_CLK == 0) LCD_PORT |=(1<<LCD_CLK);   // LCD-Clock high (steigende Flanke)
2
  else             LCD_PORT &=~(1<<LCD_CLK);  // LCD-Clock low (fallende Flanke)

LCD_CLK ist eine Konstante, die du per Define auf PD0 = 0 gesetzt hast, 
die Bedingung ist daher immer wahr, das Display kriegt also keinen Takt. 
So muesste es gehen:
1
  if ((LCD_PORT & (1<<LCD_CLK)) == 0) {
2
    LCD_PORT |= (1<<LCD_CLK);
3
  } else {
4
    LCD_PORT &= ~(1<<LCD_CLK);
5
  }

Ich haenge ausserdem mal den Assemblercode dran, den ich gerade fuer das 
Display geschrieben habe, auch fuer Tiny2313, allerdings verwendet mein 
Code die CKOUT-Funktion des Controllers fuer den Takt, du musst also die 
CKOUT-Fuse auf 0 setzen und den Anschluss des LCDs an den Controller 
entsprechend aendern, wenn du meinen Code probieren moechtest. Ausserdem 
muss der Controller mit meinem Code zwingend auf 500 kHz laufen (mit 1 
MHz geht das Display lt. Datenblatt auch noch, aber ich habe nicht 
geprueft ob das Programm dann noch alle Timings einhaelt).


Gruss,
Arne

von Achim M. (minifloat)


Lesenswert?

Arne Rossius schrieb:
> if ((LCD_PORT & (1<<LCD_CLK)) == 0) {
>     LCD_PORT |= (1<<LCD_CLK);
>   } else {
>     LCD_PORT &= ~(1<<LCD_CLK);
>   }

Ihr wollt da nen Portpin toggeln?
Warum nicht so:
1
LCD_PORT ^= (1<<LCD_CLK);
mfg mf

PS: Bei den "neueren" Megas wie dem 48/88/168 kann man auch das 
PIN-Register beschreiben(sic!). Dabei ändern sich die logischen Pegel 
des PORT-Registers an den Stellen, wo man eine "1" reinschreibt.
1
PINA = (1<<PA0);
hätte denselben Effekt wie
1
PORTA ^= (1<<PA0);

von Arne Rossius (Gast)


Lesenswert?

Moin minifloat,

stimmt, mit dem XOR ist es deutlich uebersichtlicher, danke fuer den 
Hinweis. Ich schreibe meine Programme meistens in Assembler, deshalb 
kommt es schonmal vor, dass ich immer noch in Assembler denke, wenn ich 
C schreibe, daher ist mir diese Loesung nicht eingefallen ;-).

Die Methode mit PIN schreiben kenne ich, verwende sie aber nur in 
Ausnahmefaellen (bei extrem kritischen Timing, also niemals in C), weil 
ich mir nicht merken kann, welche Controller das koennen. 
Selbsterklaerend ist es auch nicht, man sollte dann also IMHO einen 
Kommentar wie "Toggle PA0" einfuegen -- die Methode mit XOR hingegen ist 
IMHO auch fuer jemanden, der noch nie mit AVR gearbeitet hat, 
verstaendlich.


Gruss,
Arne

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.