www.mikrocontroller.net

Forum: Codesammlung Pollin E0855-2 SED1530-Treiber

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

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:

Hier noch n Bild
Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Und noch ein Bild
Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Die Hintergrundbeleuchtung ist an, aber wegen Blitz leider nicht zu
sehen!
Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

Und zu guter Letzt hier das Anschlussschma (angelehnt an das das von
Pollin).
Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

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:

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:

@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:

@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:

@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:

Danke! Hätte ich ja auch selber drauf kommen können...
Autor: Marc Meise (bytewood) Benutzerseite
Datum:
Angehängte Dateien:

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:

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:

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:

In dem ZIP File von Pollin (s.O.) ist in der Platinenbeschreibung
(E????.pdf) eine Lötanleitung.
Autor: Walter (Gast)
Datum:

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:

@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:

@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:

@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:

@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:

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:

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:

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:

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:

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:

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:

@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:

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:

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:

> 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:

> 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:

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:

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:

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:

@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:

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:

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:

Könnte ja auch mein Zwillingsbruder sein, ne?
:-))
Wie siehst du das Marc Meise?
Autor: STK500-Besitzer (Gast)
Datum:

>707,4 KB

Lass das nicht Falk sehen...
der kommt dir gleich wieder mit Bildformate...
Autor: Daniel Hauck (Gast)
Datum:

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:

> 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:

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:

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:

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:

@ Klaus W.
Uups, sorry! (Peinsam, äh -lich)
Autor: Christian L. (kingkernel)
Datum:

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:

weil ReverseBitorder die Reihenfolge der Bits umdreht. Deine Version mit
~Bits bildet dagegen das Zweierkomplement der Zahl - das ist was ganz
anderes.
Autor: Christian L. (kingkernel)
Datum:

ok, hab das verwechselt. sollte eben nich mehr zu solch später stunde
programmieren!
danke!
Autor: Martin M. (Gast)
Datum:

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: Christian L. (kingkernel)
Datum:

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:

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:

Dieses LCD finde ich nicht mehr bei Pollin -:((
Autor: lalala (Gast)
Datum:

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

Und?
Autor: Horst Hahn (horha)
Datum:

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:

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net