• Guten Tag alle zusammen,


    ich habe mir ein Display bestellt SCM19264B also 192 X 64 mit drei Bildsegmente CS1, CS2, und CS3 vorher hat mein Gerät mit einem Display nur mit 2 Bildsegmenten funktioniert.
    Es funktioniert aber es zeigt die rechte seite immer doppelt meine Frage ist : Wie kann ich aus drei Bildsegmenten zwei machen wie kann ich sie (pins) anschließen


    Pin 15 CS1
    Pin 16 /RST
    Pin 17 CS2
    Pin 18 CS3
    Pin 19 VEE
    Pin 20 LEDA power supply for Backlight (+)


    Vielen Dank Surjalist

  • Ich weiß nicht ob das Plugin/der Treiber überhaupt mit drei Segmenten klarkommt.


    Die drei "CS" müssen definitiv separat zum Rechner geführt und vom Treiber auch separat angesteuert werden.


    ... wobei ich mich gerade frage wie du das Display überhaupt ansteuerst. Weder in "graphlcd" noch in "serdisplib" finde ich den Controller.

  • Worauf läuft der Code? Wird das in einen Microcontroller programmiert?


    Wie hast du das Display aktuell angeschlossen?


    Vom Prinzip her funktionieren die Dinger alle in Etwa gleich. Es gibt ein paralleles Protokoll, eine "Clock"-Leitung und ein oder mehrere "Chip Select"-Leitungen. Je nachdem wie viele Pixel das Display haben soll verbauen die Hersteller entweder einen, oder mehrere Controller deren Chip-Select jeweils einzeln ausgeführt werden, Datenleitungen und Clock aber parallel geschaltet sind.


    Beim Ansteuern muss man nun zum Display-Controller hin sein Protokoll sprechen. Also je ein Datenpaket an die Daten-Pins anlegen und einen Puls auf "Clock" geben. Dabei muss das "Chip-Select" des Display-Bereichs, das man ansteuern will, gesetzt sein (also je nach Display entweder "Low" oder "High" gezogen werden). Wenn das erste Segment voll "geschrieben" ist, wird der nächste Chip-Select angesteuert und das Spiel beginnt von vorne. So wird dann auch für die weiteren Controller verfahren.

  • Danke für die Erklärung,



    Pin 1 Vss
    Pin 2 VDD
    Pin 3 V0
    Pin 4 RS
    PIN 5 R/W
    Pin 6 E (Enable Signal)
    7-14 Data Bus
    15 cs1
    16 Rst
    17 cs2
    18 cs3 habe ich auf Ground gelegt
    19 VEE Negative Voltage Output
    20 +5V


    ein Teil des codes :


    #pragma disable
    int writeread(int a)
    {
    int b=0, n;


    PIU_C &= 0x3F; // SCLK + /CSAD = 0


    for(n=0; n<8; n++) {
    b = (b<<1);
    PIU_C &= 0xBF; // SCLK = 0
    if(a & 0x80)
    PIU_C |= 0x01; // DIN = 1
    else
    PIU_C &= 0xFE; // DIN = 0
    PIU_C |= 0x40; // SCLK = 1
    PIU_C |= 0x40; // SCLK = 1
    a = (a<<1);
    if(P3 & 0x10) // DOUT = 1 ?
    b |= 0x01;
    }


    PIU_C &= 0xBF; // SCLK = 0
    PIU_C |= 0x80; // /CSAD = 1
    return(b);
    }
    ich möchte diese Wiederholung der rechten Seite enfernen (es flackert die Daten werden ein und ausgeblendet mit einer bestimmten Frequenz )

  • Dann ist "Low" möglicherweise für "Chip aktiv"? Lege CS3 mal auf "High" (also +5V). Damit wäre deine rechte Seite dann vermutlich ganz tot.


    Um dort auch etwas anzuzeigen darf "CS3" nicht auf einem festen Wert liegen sondern muss vom Programm immer dann angesteuert werden, wenn die rechte Seite beschrieben werden soll. Muss also zu deinem "Rechner" (du willst ja nicht verraten woran das Display hängt) durchverbunden sein (eigener IO-Pin) und muss im Programm bei Bedarf auch separat ein- und augeschaltet werden.

  • Klar verschwindet ein "Teil der rechten Seite". Bisher hattest du "CS3" immer aktiv. Sowohl das, was ins "erste Drittel" als auch das, was ins "zweite Drittel" gehört wurde deshalb im "dritten Drittel" mitgezeichnet. Daher auch das "Flackern".


    Dein Programm und vermutlich auch dein wie auch immer gestalteter "Rechner" ist nur für zwei Chips vorbereitet. Somit hast du zwei Optionen:


    - CS3 auf "high" lassen und damit leben das ein Drittel des LCD leer bleibt
    - CS3 mit an deinen "Rechner" hängen und das Programm für drei Chips umschreiben.

  • ja stimmt das programm ist nur für Zwei CSs geschrieben und das habe ich nicht geschrieben.
    Gibt`s hier ein Beispiel Mit C Programm für 3 Chip select?
    Kann ich das ganze Programm hier laden ?
    danke für deine Hilfe

  • Welches Programm?


    Du hast nach wie vor nicht geschrieben woran das Display hängt und mit welchem Programm du es mit welchen Daten beschicken willst...


    So wie ich das sehe gibt es, um das Display mit dem VDR zu verwenden, aktuell garkeine Möglichkeit. Es sei denn ich habe etwas übersehen.

  • Auch wenn das bestimmt ein interessantes Projekt ist glaube ich, dass du hier nicht im richtigen Forum gelandet bist.


    Es wäre purer Zufall wenn sich hier jemand findet, der mit der von dir verwendeten Hardware gut klarkommt.


    Vermutlich hast du in deinem Code schon alles, was du brauchst, um auch einen dritten Chip zu steuern. Die anderen zwei werden ja sauber angesteuert. Um allerdings auch Daten für einen dritten Displayabschnitt zu erzeugen könnten schon größere Änderungen im Programm nötig sein. Kommt letztlich auch darauf an wie das ganze programmiert ist.


    Wahrscheinlich wirst du nicht darum herumkommen dich da selber etwas einzulesen und dein Programm selbst anzupassen.

  • der SCM19264B duerfte wohl kompatibel zum verbreiteten ks0108 sein.


    und der wird zb in meiner lib unterstuetzt. inkl. CS-multiplexing fuer bis zu 4 CS-leitungen (-> 256x64).


    mit einem microcontroller und entsprechend ausreichend vorhandenen ports kannst du dir den multiplexer auch ersparen ...
    mit dem parallelport ist es damals notwendig gewesen, da nicht mehr ports vorhanden waren ...


    erlaeuterung (chip, cs-multiplexing) inkl. fotos (zb. ein 256x64-display) findest du hier:


    http://serdisplib.sourceforge.net/ser/ks0108.html



    in meiner lib findest du im c-file serdisp_specific_ks0108.c die ansteuerung.



    fuer das von dir verwendete prog. wird es aber wohl schon ausreichen, wenn du das cs-switching von 2 auf 3 leitungen aufblaest. (if x < 64 -> CS1 auf low, die anderen CS auf high, if x >=64 && x < 128 -> CS2 low, andere CS auf high, if x >= 128 -> dasselbe fuer CS3). recht viel aufregender wirds nicht sein. (high vs. low: die CS sind active low -> der jew. chip wird aktiviert, wenn seine CS-leitung auf low gesetzt wird).


    /wastl

  • Damit, den Rest nutzbar zu machen, wird es kaum getan sein.


    Es bringt dir ja nichts, wenn dein Code prinzipiell die volle Breite ansteuern kann, wenn in dem Programmteil, der den "Inhalt" generiert, garkeine Informationen für den zusätzlichen Display-Platz erzeugt werden.

  • M-Reimer ich habe im Code 3 x CS gefunden aber ich konnte nicht feststellen, wie man mit dem Code ein Display mit 2 x CS steuern konnte
    jetzt habe ich ein Display mit 3 x CS aber funktioniert nicht richtig !! ich würde sehr dankbar wenn du ihr mir weiter hilft.