mikrocontroller.net

Forum: Projekte & Code Pollin E0855-2 SED1530-Treiber


Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forumgemeinde.

nachdem ich bei Pollin das E0855-2 GLCD bestellt habe und nach langem 
Suchem im Netz nichts, aber auch garnichts, gefunden habe, habe ich 
beschlossen, einen eigenen Treiber zu schreiben (AVR-GCC).
Ich möchte diesen allen zur Verfügung stellen, weshalb der nun hier in 
der Codesammlung erscheint.
Bitte seid nicht zu streng was meinen Code angeht, es war für mich das 
erste mal.

Folgendes kann der Treiber:
-das LCD über SPI (Hardware-SPI) ansteuern, also genügt ein Port bei 
weitem
-SPI wird über die Initroutine des GLCD mit-initialisiert
-display löschen
-page löschen
-newline
-beliebig alle Pages und Spalten setzen
-ein Zeichen darstellen
-einen String darstellen
-numerische Integer-Werte darstellen
-bis zu 10 Grafiken darstellen
-auf alle Symbole des E0855-2 zugreifen und diese darstellen

Was der treiber (noch) nicht hat oder kann:
-einen Cursor
-pixel direkt setzen
-irgendwelche Grafikfunktionen (Kreise, Striche etc)
-Scrollen

Was man damit (schon) machen kann:
- 16x4 Textdarstellung
- Einrückungen von Text
- automatischer Zeilenumbruch
- max. 10 (in der PICS.c gespeicherte) Grafiken anzeigen
- Zugriff auf alle Symbole

Über (hoffentlich positive) Kommentare von Euch freue ich mich natürlich

Viel Spass.

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch n Bild

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und noch ein Bild

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Hintergrundbeleuchtung ist an, aber wegen Blitz leider nicht zu 
sehen!

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und zu guter Letzt hier das Anschlussschma (angelehnt an das das von 
Pollin).

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kleines Update mit weiteren Funktionen:

-Sleep-Mode und Wakeup
-Darstellung von Strings aus dem Flash
-frei einstellbarer SPI-Vorteiler

Autor: Werner B. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Font umgebaut damit man sich das "ReverseBitorder()" in 
"SED_putc()" sparen kann.
Zusätzlich noch die Umlaute "ÄÖÜäöüß" an das Ende gehängt.
Die Font Tabelle ist um überflüssige 25*6 Bytes gekürzt.

Un noch eine kleines Goody. Die 7-Segmentanzeige...
/* -----------------------------------------------
 * Zahl in Siebensegment-Anzeige darstellen
 *
 * Input:  digit - dazustellende Zahl
 *                 Wertebereich 0 - 9
 *         segNo - Segment Nummer. Links = 0.
 *
 * Vorrausetzung: Page 8 bereits ausgewählt (SED_Chg_page(8))
 * ---------------------------------------------- */
static void SED_showDigit(uint8_t digit, uint8_t segNo)
{
  static uint8_t nr[] PROGMEM =
  { 
      0b01101111, 0b00101000, 0b01110110, 0b01111100,
      0b00111001, 0b01011101, 0b01011111, 0b01101000,
      0b01111111, 0b01111101 
  };

    static uint8_t offs[] PROGMEM = 
    { 64, 71, 81, 88 };

  if(digit <= 9)
  {
    uint8_t segment = pgm_read_byte( &offs[segNo & 3] ) ); /* SEG */
    uint8_t pattern = pgm_read_byte( &nr[digit] );

     A0_Lo;                      // Enter SED1530 command-mode
     SPI_out(COL_Hi | ((segment & 0xF0) >> 4));    // Set Column Hi and Low 4-Bits
     SPI_out(COL_Lo | (segment & 0x0F));
    A0_Hi;
    for(int i = 0; i < 7; i++)
    {
      SPI_out(pattern);
      pattern >>= 1;    // Next bit in pattern
    }
  }
}

Autor: Marc Meise (bytewood) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Werner B.

Vielen Dank fürs Weiterentwickeln!
Der treiber ist IMHO alles andere als fertig, genügte aber für meine 
Zwecke (zumindest bisher).

Als (noch) Student mit chronischer Geldknappkeit und Bastelleidenschaft 
ist genau dieses Display recht optimal als ein 16x4 mit 
Grafikmöglichkeit @ very low cost.

Ich würde mich sehr freuen, wenn noch viele (da draussen) den Treiber 
weiterentwickeln würden...

Grüße

Autor: Hein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marc

Gute Arbeit! Kannst die EAGLE Lib für das Display rausgeben? Könnte ich 
mir dopppelte Arbeit sparen. Danke ;)

Hein

Autor: Marc Meise (bytewood) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hein
Danke für das Lob :-)
Alles was Du brauchst bekommst Du direkt von Pollin.
Hier der Download-Link - mit Alles und 2 MB rote Soße...

http://www.pollin.de/shop/downloads/D120329S.ZIP

Marc

Autor: Hein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke! Hätte ich ja auch selber drauf kommen können...

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok, hier ist ein Update des Treibers etwas mehr Funktionalität:

- Ich habe das berichtigte und erweiterte Fontfile von Werner 
eingebunden. (Danke nochmal an Werner :-)

- Der Kontrast lässt sich nun in 32 Stufen ein- bzw. umstellen. 
Funktion: SED_contrast

- Es gibt nun eine einfache Grafikfunktion mit der Bytemuster 
dargestellt werden können ( Funktion: SED_pixel)

- Wenn CS und /CS "hartverdrahtet" sind, kann dies kann dies nun unter 
den "Portdefinitions" eingestellt werden.
Damit sind insgesamt nur noch 4 Port-Leitungen zur Ansteuerung des 
Displays notwendig: Reset, A0, MOSI und SCK

Der Treiber müsste auch mit Displays auf Basis eines SED1530, 
1531,1532,1533 und 1534 klarkommen, ebenso mit GLCDs, die größer als das 
E0855-2 (96x32) sind.

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch ein Update!
Eigentlich hatte ich wenig Lust dazu, aber jetzt ist eine Software-SPI 
implementiert worden (Hurra, freie Pinwahl).
Mit dem Schalter SOFT_SPI=0 oder 1 kann zwischen Hardware -oder 
Software-SPI geschaltet werden.
Getestet habe ich das mit einem MEGA8...

Have Fun

Autor: horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marc &

gebt mir einmal bitte einen Tipp, wie das Display
anzulöten ist, habe etwas Angst die Folie zu zerstören.

Gruss
       horst.

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem ZIP File von Pollin (s.O.) ist in der Platinenbeschreibung 
(E????.pdf) eine Lötanleitung.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marc,

ich wollte dein aktuellstes SED1530.ZIP laden, leider gehen mur die vor 
dem 5.12., bei denen vom 5.12. kommt bei WINZIP die Fehlermeldung:
Datei liegt micht im ZP2.0 Standardformat vor

kannst du da was machen?

Besten Dank
Walter

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Walter
Bitte schön - nochmal gepackt.
Hoffe, es läuft jetzt - lass was hören, wenn's probleme gibt.

Bei der Gelegenheit:
Ich habe den Treiber aktualiert, etwas erweitert und entwanzt :-)

Der Treiber sollte auch mit dem LCD-Modul ALPS LSU7S1011A (auch Pollin) 
laufen, sogar mit mit dem obigen Schaltplan:
Der PIN 41 vom ALPS LSU muss dazu nur auf den PIN 37 gelötet werden.
Dann der Reihe nach (nach richtung PIN 1 der Platine) anlöten.
Die Pins, die dann überstehen werden eh nicht verwendet, also einfach 
floaten lassen.

Link zum Datenblatt des ALPS:
http://www.pollin.de/shop/downloads/D120215S.ZIP

Achtung: Das ALPS hat keine Hintergrundbeleuchtung...

Have Fun!

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marc,

ich musste etwas länger Rätseln um rauszubekommen was du in "SED_set_XY" 
vorhast. Viel zu kompliziert gemacht.
Einfacher ...
//Select Page and Column
void SED_set_XY(uint8_t Page, uint8_t Column)
{
  #define COLUMN_ADDRESS_HIGH 0x10
  #define COLUMN_ADDRESS_LOW  0x00

   SED_Chg_page (Page);
   Column += 16;  // COLUMN_OFFSET des Display addieren.
   A0_Lo;
   // Kommando Column-Address higher nibble  
   SPI_out(COLUMN_ADDRESS_HIGH | ((Column & 0xF0) >> 4));
   // Kommando Column-Address lower nibble
   SPI_out(COLUMN_ADDRESS_LOW  | (Column & 0x0F));
   A0_Hi;
}

Und noch ein SED_pixel das direkt Zeile und Spalte adressiert.
//Set or unset a Pixel (Parameters: column[0-95], row[0-31])
void SED_pixel(uint8_t X, uint8_t Y)
{
   uint8_t mask = (0x80 >> (Y & 7));

   SED_set_XY((Y/8) & 7, X);  // SED_set_XY takes (Page/Column)
        //Send the vertical byte-pattern to the according Page
   SPI_out(mask);
}

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marc
>Bitte schön - nochmal gepackt.
>Hoffe, es läuft jetzt - lass was hören, wenn's probleme gibt.
Danke für deine Mühe, ging aber leider immer noch nicht.
Habe mir jetzt ultimatezip installiert da es das aktuelle WINZIP nicht 
mehr für W98 gibt. Ich kann zwar jetzt die Datei lesen, bin also soweit 
glücklich, aber vielleicht kannst du ja dein ZIP Programm so einstellen 
das es nicht das neue 2.0 Format verwendet.
Ich denke das sonst auch andere Schwierigkeiten beim entzippen haben 
werden.

Schönes Wochenende
Walter

Autor: Marc Meise (bytewood) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Werner
Du hst schon recht, dass die SED_set_XY eigentlich viel zu kompliziert 
ist.
Ich habe sie entsprechend geändert, bzw. gekürzt.
Deinen Code habe ich auch ausprobiert - funktioniert bei mir nicht 
wirklich gut.

Die SED_pixel Routine ist als eine vorbereitende Funktion gedacht, die 
später einmal die Vermischung von Text und Grafik ermöglichen soll.
Das dumme mit der SPI-Geschichte ist, dass ich nicht aus dem 
SED-Speicher lesen kann. Wenn jetzt also ein Buchstabe spaltenmäßig 
aufgebaut werden soll und zusätzlich eine Grafik, dann habe ich mit der 
direkten Adressierung so meine Probleme, daher die Aufteilung in Page, 
Column und Bitmuster.

CU

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier nun ein Update zum Treiber:

-Fix: Hardware-SPI-Prescaler und andere Kleinigkeiten
-neue Funktion: SED_7segment(Segment[0..3],Nummer[0..9]):
Ansteuerung für das kleine integrierte7-Segment Display
-wieder verkürzte Fonttabelle
-Fonttabelle und Definitionen für die 7-Segmentanzeige sind ins EEPROM 
gewandert. Passen jetzt ins EEPROM z.B. eines Mega8 (standard ASCII).
-Notes.txt mit Bemerkungen

viel Spass

Autor: Klaus W. (Firma: privat) (texmex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt doch sicher eine einfache Möglichkeit aus einer Grafik den 
entsprechenden C-Programmcode zur Definition des Arrays zu generieren?

Autor: Klaus W. (Firma: privat) (texmex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok:

// It is suitable to use Holger-Klabunde's "BMP2C" image converter to 
receive an image as a hex-string.
// http://www.holger-klabunde.de

Autor: Klaus W. (Firma: privat) (texmex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus W. wrote:
> Ok:
>
> // It is suitable to use Holger-Klabunde's "BMP2C" image converter to
> receive an image as a hex-string.
> // http://www.holger-klabunde.de

Äh, ja, das ist aber nur ein binary ohne Source. Und wie bekomme ich das 
jetzt auf Linux zum laufen?

Autor: Klaus W. (Firma: privat) (texmex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also da ich auf die schnelle nichts gefunden habe, hier ein kleines
C-Programm, das PBM Dateien der richtigen Größe so umformatiert, dass 
die Bitanordnung für das Display angepasst wird.
Anschließend kann man dann einfach mit pbmtoxpm in C-Code convertieren.
#include <stdio.h>

main()
{
   char gfx[3072];
   int x,y;

   do fscanf(stdin, "%d %d\n", x, y);
     while ( x==96 && y==32 );
     
   fprintf(stdout, "P1\n#Vertical aligned for GLCD\n96 32\n");

   x=0;
   while ( (gfx[x]=fgetc(stdin)) != EOF )
     if ( gfx[x] == '1' || gfx[x] == '0' )
       x++;

   for ( x=0; x<3072; x++)
       fputc(gfx[((x%8)*96)+((x/8)%96)+((x/768)*768)], stdout);
}

Aber vorsicht: Es muss sich um ein ASCII PBM-File handeln. Binary geht 
natürlich nicht.

Viele Grüße!
Klaus

Autor: Ralf Franz (Firma: privat) (raf)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
da ich noch nicht so viel Erfahrung mit habe dem µC habe ich den
Stromlaufplan vom 23.10.2007 14:56 Versucht nachzubauen.
Bin jedoch nicht sehr weit gekommen, da einiges nicht ganz klar ist. Die
Anschlüssen an den Mega16/32 lassen mir keine Ruhe.
Die Anschlüsse
     PB7
     PB5
     PB3
konnte ich nicht so ganz zuordnen.

Auch mit Anschlüssen
      TP10   -> X1-10
      TP9    -> X1-9
kann ich nicht viel mit anfangen, außer dass diese auf dem Printerport
liegen

Währe prima wenn ihr mich in dieser Richtung aufklären könntet.
Danke, schon mal.

Viele Grüße
Ralf

PS: Anbei ein nachgezeichneter Plan um daraus eine Platine zu erstellen.

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Ralf Franz

Der Schaltplan vom 23.10.07 ist ein möglicher Aufbau zum Anschluss des 
Displays an ein STK500 (oder in meinem Fall an das Kanda STK200) über 
einen 10-poligen Stecker, mehr nicht.

Zu Deinen Fragen:
PB7 => SCK - Clock-Leitung
PB5 => MOSI - Master-Out-Slave-In Leitung

Diese beiden Leitungen sind die eigentlichen Steuerleitungen des SPI für 
das Display.
Mit dem aktuellen Treiber (23.01.08) ist es völlig egal, wo Du das SPI 
hinlegst: entweder auf die dafür vorgesehen Portpins des MEGAxxxx 
(Hardware SPI) oder sonstwo (Software-SPI).

PB3 => Reset - Reset Leitung, um das Display zurückzusetzen.

TP10 liefert die Betriebsspannung des Displays (5V)
TP9 ist das Ground (GND) (minus-Pol)

Mit Printerport hat diese Zeichnung überhaupt nichts zu tun!

Die Ansteuerung des Displays erfolgt über SPI und benötigt folgende 
Leitungen:
MOSI, SCK, RST, A0 als minimale Konfiguration.
Evtl. ein Portpin mehr um die Hintergrundbeleuchtung anzusteuern (TP7).

Im Anhang ist eine Schaltung des Displays an einen MEGA8.
Um 2 weitere Portpins einzusparen könnte man auch /CS1 auf GND und CS2 
auf +5V legen.
Das entstandene Veruchsboard wurde dann meiner Freundin vermacht als 
"Hab' Dich Lieb" Geschenk mit Grafik und Text (da bleibt kein Auge 
trocken- kann ich nur empfehlen :-)

Autor: Ralf Franz (Firma: privat) (raf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marc,
danke für Deine Hilfe.

Marc Meise wrote:
> Das entstandene Veruchsboard wurde dann meiner Freundin vermacht als
> "Hab' Dich Lieb" Geschenk mit Grafik und Text (da bleibt kein Auge
> trocken- kann ich nur empfehlen :-)
Wolle so etwas ähnliches machen.

Viele Grüße
Ralf Franz

Autor: Markus J. (doc_database)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, alle zusammen.
Ich habe das Display Epson E0855-2 soweit im Betrieb.
Allerdings habe ich noch Probleme mit der Kontrastregelung.
Möglicherweise habe ich etwas übersehen:

Ich habe das Display laut der Sequenz im bereitgestellten Datenblattes 
in Betrieb genoemmen, und die Hardware ebenso laut Datenblatt.
Weiterhin habe ich von links nach rechts auf den Seiten 0-3 als Patter 
0xAA ausgegeben, was dünne, waagerechte Linen auf dem Display 
hinterläßt.
Das passiert schrittweise in kurzen Intervallen.
Es sollte nichts weiter zur Sache tun, wenn ich erwähne, das ich das 
Display über einen PIC18F4550 ansteuere, desweiten via serieller 
Schnittstelle (SPI).

Das Problem:
Je weiter das die Linien von links nach rechts geschieben werden, desto 
krontrastärmer wird das Display.
Dieser Kontrast kann via Software nachgeregelt werden.

Meine Frage:
Kann es sein, das dieses Verhalten nicht normal ist?
Ich kann es zwar technisch nachvollziehen, aber in der Praxis sollte 
doch der Inhalt des Displays nichts mit dem Kontrast zu tun haben...
Das Display sollte den Kontrast doch nachregeln.

Habe ich irgendwo einen Schalter vergessen?
Oder waren die Displays aus diesen Grund so preiswert?

Ich bitte um Austausch von Erfahrungen mit Leuten, die dieses Display 
ebenso in Betrieb genommen haben.
Danke im Vorraus.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kann es sein, das dieses Verhalten nicht normal ist?

Ich kenne zwar gerade dieses LCD von Pollin nicht, allerdings fast alle
anderen :-)

Normal ist so ein Verhalten sicher nicht da es wohl daher kommt das
da eine Betriebsspannung zusammenbricht wenn die Belastung steigt.

Der Controller benoetigt ja eine externe Beschaltung zur 
Spannungsvervielfachung. Ist die bereits auf dem LCD vorhanden, oder 
musst
du die, wie bei den anderen, durch anschalten von Kondensatoren 
erzeugen?
Eventuell hast du da was falsch gemacht?

Ausserdem konnte man die bei manchen ICs als 2x oder 3x beschalten.
Eventuell gibt es da noch einen Unterschied in der Programmierung.

Ich wuerd uebrigens nicht soviel auf den Beispielsource von Pollin 
geben. Der ist sicherlich auch nur von einem Studenten im Nebenjob auf 
die
schnelle Zusammengehackt um die Funktion zu demonstrieren. Da koennen
auch noch grobe Fehler drin sein.

Olaf

Autor: Klaus W. (Firma: privat) (texmex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das Problem:
> Je weiter das die Linien von links nach rechts geschieben werden, desto
> krontrastärmer wird das Display.

Hm, also das kann ich so nicht bestätigen.

Die Hintergrundbeleuchtung des Displays scheint nicht besonders 
hochwertig, weshalb der Gesamteindruck etwas "fleckig" ist, wenn die 
Beleuchtung an ist. Aber das von Dir beschriebene Verhalten kann ich 
nicht reproduzieren.

Ich hätte jetzt auch am ehesten vermutet, dass mit der externen 
Beschaltung
etwas nicht stimmt. Speziell die Kondensatoren zur Erzeugung der 
Betriebsspannungen. Man müsste sich mal überlegen, wie das Display 
eigentlich das Bild aufbaut, möglicherweise könnte man daraus 
Rückschlüsse auf die Art des Fehlers ziehen. Hast du die Spannungen denn 
mal nachgemessen? Evtl. Mit dem Oszilloskop?

Mir ist jedoch auch aufgefallen, das der Kontrast des Matrixdisplays 
insgesamt etwas schlechter ist als bei den speziellen Segmenten 
drumherum.
Vermutlich hängt das aber mit der Ansteuerung zusammen.

Du schreibst, dass Du das Muster in "kurzen Intervallen" ausgibst. Wäre 
es denkbar, dass die Intervalle so kurz sind, dass die scheinbare 
Kontrastverringerung nach rechts einfach daher kommt, dass Du das Muster 
dort "kürzer" darstellst? Aber wenn das dann noch flimmerfrei passiert, 
müsste es schon sehr schnell sein. Wäre aber ein Ansatz für 
Graustufendarstellung :-).

Hast du denn schon mal ein anderes Muster dargestellt? (0xFF/0x00) 
Vielleicht ist es eine Unzulänglichkeit des Controllers, die NUR bei 
diesem Muster auftritt? Na, auch eher unwahrscheinlich, aber man muss ja 
alles mal ausprobieren :-).


Viel Erfolg!
Klaus

Autor: Markus J. (doc_database)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Klaus und Olaf.

Ja, ich habe auch andere Muster ausprobiert z.B. Schriftzeichen.
Da sieht es noch merkwürdiger aus.

Also: In der ersten, sichtbaren Seite(3) stelle ich Schriftzeichen dar.
in den unteren drei Seiten (0,1,2) jeweils die Muster 0x00, 0xff, und 
0xaa.
Sieht dann sehr hübsch aus, weil die dunklen Balken dadrunter dann wie 
Barcodes ausehen.
Lustig, aber nicht Ziel des Entwurfs.

Ja, Klaus, ich denke auch das es an den 5 Kondensatoren liegt, die 
Datenblatt auf Seite 5-16, darstellung oben/links als C2 gekennzeichnet 
sind.
Ich habe dafür Tantal-Elkos benutzt, und es ist denkbar, das es dort zu 
Spannungen kommt, die die Tantals nicht vertragen.
Die werde ich nochmal nachmessen, oder direkt austauschen.
Laut Datenblatt kann an den Punkten V1-V5 Spannungen im Bereich von +0,3 
bis -18V auftreten.

Gut ist, das ich nun weiß, da es sich um einen Fehler handelt, und das 
soetwas bei euch noch nicht aufgetreten ist.
Demnach sollte ich den Fehler finden.

Edit:
Ich werde die Tantals gegen keramische Vielschichtkondensatoren 
austauschen.

Zu den Mustern @Klaus:
kurze Intervalle ^= 0,5 Sekunden
Ich habe es nicht genau nachgerechnet.
Aber ich habe mir dabei Zeit gelassen, um nicht einen Timingfeler zu 
provozieren.
Die Muster werden immer am Ende angefügt.
Siehe auch SED1530.text weiter oben.

Im übrigen vielen Dank an Marc Meise.
Ich habe mich auf das Datenblatt  und seinen Quellcode gestützt um 
meinen eigenen Code zu schreiben.

Autor: Markus J. (doc_database)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt Epson 5-17:
Note *2) Setup Example

Damit könnte ich den Fehler finden, denke ich.

Ich werde es heute Abend mal ausprobieren.

Autor: Markus J. (doc_database)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forumgemeinde,

ich war zwischenzeitlich fleißig, aber leider ohne Erfolg.
Mein Problem (s.o) besteht immer noch.
Ich habe mir erlaubt, euch davon ein Foto schicken, und hoffe, das ihr 
damit etwas anfangen könnt.

Foto: Display SED1530 auf Entwurfsplatine
Fehlerbschreibung: Kontrastregelung oder Spannungsversorgung arbeiten 
nicht richtig, daher senkrechte Schlieren auf dem Display

Autor: Marc Meise (bytewood) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus
kontrollier' mal, ob alle kontakte vom Folienleiter auch richtig sitzen 
und keine (fast) kalten Lötstelle vorhanden sind.
Du könntest auch während des Betriebs des LCD mit einer Stecknadel mal 
auf die Solpads der einzelnen kontakte des floienleiters leicht drücken.
Vielleicht ist ja einfach nur ein Übergangswiderstand (durch eine 
schlechte Lötstelle) zu hoch....

Grüße

Autor: Markus J. (doc_database)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es war etwas ähnliches:
Zwischen dem Kontakt V1 und dem benachbarten Kontakt Vdd(+5V) war 
offenbar ein winziger Metallspan.

Ich hatte vorher über die Kondensatoren gemessen, und da hätte es 
eigentlich auffallen müßen.

gemerkt habe ich es, weil halt der Kontakt V1 gegenüber +5V (als 
Referenzpunkt) 0V anzeigte.
Konnte nicht sein.
Jetzt klappt es! Blöder Fehler.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm...was sagt es wohl ueber die eigene Persoenlichkeit aus
wenn man zu Testwecken immer seinen eigenen Namen verwendet. :-D

Olaf

Autor: Markus J. (doc_database)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte ja auch mein Zwillingsbruder sein, ne?
:-))
Wie siehst du das Marc Meise?

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>707,4 KB

Lass das nicht Falk sehen...
der kommt dir gleich wieder mit Bildformate...

Autor: Daniel Hauck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es für das Display auch einen Steckverbinder (Wäre mir lieber als 
ihn anzulöten)? Wenn ja, kann mir jemand Hersteller und Bezeichnung 
nennen?

Danke

Gruß

Daniel

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> einen Steckverbinder

Du kannst genauso Erfolgreich versuchen einen Geldschein in den 
Münzeinwurf eines Geldautomaten zu werfen.

;)
Werner

Autor: Klaus W. (Firma: privat) (texmex)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Marc Meise wrote:
> Hier nun ein Update zum Treiber:
>
> -Fix: Hardware-SPI-Prescaler und andere Kleinigkeiten
> -neue Funktion: SED_7segment(Segment[0..3],Nummer[0..9]):
> Ansteuerung für das kleine integrierte7-Segment Display
> -wieder verkürzte Fonttabelle
> -Fonttabelle und Definitionen für die 7-Segmentanzeige sind ins EEPROM
> gewandert. Passen jetzt ins EEPROM z.B. eines Mega8 (standard ASCII).
> -Notes.txt mit Bemerkungen
>
> viel Spass

Kleiner Fehler:

In SED_putc() muss der columncounter auch die Trennspalten zwischen den 
Zeichen mitzählen, sonst kommt newline zu spät!

Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke Werner für den Hinweis.
Der Fehler ist mir nicht aufgefallen.
Ich habe die Veränderungen soweit eingebaut :-) und noch eine kleine 
itoa-Funktion dazu.
Parallel dazu gib es das ganze auch aktualisiert für den LPC210x unter

Beitrag "SED1530 Treiber für ARM"

Grüße

Autor: Klaus W. (Firma: privat) (texmex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marc Meise wrote:
> Danke Werner für den Hinweis.

Ich heisse zwar nicht Werner, aber das macht nichts :-).

Viele Grüße,
Klaus

Autor: Marc Meise (bytewood) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Klaus W.
Uups, sorry! (Peinsam, äh -lich)

Autor: Chris L. (kingkernel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum ist die Funktion Reversebitorder eigentlich so umständlich?
Könnte man aus
uint8_t ReverseBitorder (uint8_t Bits)
{
  uint8_t ReversedBit;
  ReversedBit = (Bits >> 4) | (Bits << 4);
  ReversedBit = ((ReversedBit & 0xcc) >> 2 ) | ((ReversedBit & 0x33) << 2);
  ReversedBit = ((ReversedBit & 0xaa) >> 1 ) | ((ReversedBit & 0x55) << 1);
  return ReversedBit;
}
nicht
unsigned char ReverseBitorder (unsigned char Bits)
{
  return ~Bits;
}
machen?
Und warum verwenden alle uint8_t? Ist unsigned char nicht eindeutiger?

Christian

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weil ReverseBitorder die Reihenfolge der Bits umdreht. Deine Version mit 
~Bits bildet dagegen das Zweierkomplement der Zahl - das ist was ganz 
anderes.

Autor: Chris L. (kingkernel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, hab das verwechselt. sollte eben nich mehr zu solch später stunde 
programmieren!
danke!

Autor: Martin M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Kurze Frage von mir.. hat jemand einen Schaltplan, wie man dieses 
Display seriell anschliessen kann? Hab jetzt schon des oefteren in 
Datenblaettern etc gelesen, dass dies moeglich sein soll.. aber nichts 
gefunden, was einem Schlatplan oder so aehneln wuerde, der dies genauer 
beschreibt ><
(Hab im endefekkt vor das Display an einen Arduino anzuschliessen),

Danke schonmal.
Martin

Autor: Chris L. (kingkernel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal den Post: 
Beitrag "Re: Pollin E0855-2 SED1530-Treiber"
und den Post an: Beitrag "Re: Pollin E0855-2 SED1530-Treiber"

Das sind jeweils die Schaltpläne, in denen das Display per SPI 
angesteuert wird!

Autor: Werner B. (werner-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch einen Fehler gefunden.

Init_SPI: Das SPI2X Bit ist im SPSR Register, nicht in SPCR.
Setzen mit "SPSR = (1<<SPI2X);" statt "|=", löschen mit "SPSR = 0;".


@Christian

> Und warum verwenden alle uint8_t? Ist unsigned char nicht eindeutiger?

Im Gegenteil. Mit uint8_t ist genau definiert wie viele Bits verwendet 
werden sollen. Bei "unsigned char" kann/darf das auch anders sein, je 
nach Compiler und Zielprozessor.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieses LCD finde ich nicht mehr bei Pollin -:((

Autor: lalala (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> Dieses LCD finde ich nicht mehr bei Pollin -:((

Und?

Autor: Horst Hahn (horha)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ohne Hintergrundbeleuchtung sollte 
http://www.pollin.de/shop/suchergebnis.html?S_TEXT... 
funktionieren
Beschrieben hier auf der Seite 
Beitrag "Re: Pollin E0855-2 SED1530-Treiber"

Autor: Peter L. (peter_l45)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wie schon durch meine Vorredner festgestellt wurde, ist das E0855-2 
nicht mehr bei Pollin erhältlich. Der Nachfolgetyp LSU7S1011A läuft zwar 
auch mit dem SED1520-Chip verhält sich aber ganz anders. Wenn man sich 
näher damit beschäftigt fällt auf, dass dieses Display intern anders 
verschaltet sein muss. Das zeigt sich darin, dass die Pages anderen 
physischen Zeilen zugeordnet sind und teilweise auch die Bit-Anordnung 
vertauscht wurde. Das heißt, bei manchen Pages steht der Inhalt quasi 
auf dem Kopf. Es gibt auch eine Verschiebung des angezeigten Bereiches 
im Bezug auf den Display-RAM, der korrigiert werden musste. Ich habe den 
Ursprungscode von Marc Meise deshalb für das LSU7S1011A angepasst und 
einige Features hinzugefügt. Hier eine kurze Zusammenfassung:

-vollständige Umsetzung des Projekts auf die Entwicklungsumgebung 
WinAVR- 20100110
-Anpassung des Makefiles für diese Umgebung
-Pagezuordnung an reale Anordnung angepasst
-Beschränkung auf die physisch vorhandenen Pages 0-4
-richtungsgesteuerte Byteausgabe unter Beachtung der aktuellen Page
-Verschiebung des sichtbaren Bereichs, relativ zum Zeich-RAM nach rechts
-Durch Wegfall der Spezialsymbole und der 7-Segment-Anzeige konnte das 
Zeichensatz-Array so gestrafft werden,
 dass es mit Umlauten und "ß" auch in den EEPROM passt, wenn man das so 
will.
-Umkodierungstabelle zur Zeicherkennung implementiert, sodass die 
Umlaute direkt als Zeichen eingegeben werden können.
-Codestraffung bzw. Wegfall einzelner Routinen.
-Implementierung von 8 benutzerdefinierten Zeichen

In beiliegendem Zip-File ist die aktuelle Version 2.0 des 
Displaytreibers LSU7S1011A enthalten. Nähere Informationen stehen im 
Projektfile.txt. Zusätzlich habe ich auch noch die Bauunterlagen für ein 
solches Display-Modul mit eingepackt. Sie stehen im TARGET3001-Format, 
zu öffnen mit der PCB-POOL-Version von TARGET, zur Verfügung. Diese kann 
bei Bedarf als freie Version bei pcb-pool.com, dort im Downloadbereich 
gesaugt werden. Wer das nicht möchte, kann die Entwicklungsunterlagen 
auch im PDF-File einsehen.

Viel Spaß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.