Hallo! Ich weiß wir hatten das schon oft. Es geht wieder mal um ein Notebookdisplay! Es hat 640x480 Pixel. (1bit/pixel) und ist zweigeteilt. (2x 640x240) Das Display hat jede Menge Row und Column Treiber drauf. Diese werden über Schieberegister angesprochen. Wobei ich mir bei den Columns nicht sicher bin ob das wirklich einer is. Wenn ich das richtig verstanden hab werden hier immer 4bits auf einmal ausgegeben. Wobei ich mir wieder sicher bin sind die Anschluss-Pins: UD0-UD3 data inputs for the column driver shift register upper part LDO-LD3 data inputs for the column driver shift register lower part CL1 clock for row driver shift register CL2 clock input to the column driver shift register FLM data input to row driver shift register Natürlich auch noch die Vorsorgungsspannungen, die sind aber klar. Im Anhang ist dazu ein Timing Diagramm.(Seite 7) Wobei dies nicht mein Display ist. CL1 und CL2 ist vertauscht. Ich hab ein LCM-5505-32NTK. Meine Frage: Gibt es dazu einen fertigen Controller? Kann man das Display mithilfe eines Mega16 ansteuern oder is der zu langsam? Was habt ihr sonst noch für Tipps?
Du hast das im großen und ganzen richtig interpretiert; es werden immer acht Bits parallel übertragen, vier für die obere und vier für die untere Hälfte. Mit einem AVR wird man so ein Display aufgrund der erforderlichen Datenrate nicht ansteuern können - sieh' Dir mal im Datenblatt die Seite 7 an. Daraus wird ersichtlich, daß eine komplette Zeile (also 160 Bytes Daten) in 38 .. 76 µsec übertragen werden soll. Das ist eine Datenrate von 2 bis 4 MByte/sec, die so ein AVR zwar theoretisch hinbekommt, nicht aber, wenn er noch auch nur irgendwas anderes machen soll. Die üblichen Epson-Controller können solche Displays ansteuern, da rid ein Blick in deren Datenblätter Aufklärung bringen. Mit 'ner Handvoll Logik-ICs kann man sich so eine Ansteuerung allerdings auch selber bauen, oder man nimmt den Urvater aller Videocontroller-ICs, den 6845. Zusätzlich braucht man immer noch 'ne Handvoll weiterer ICs, nämlich Adress-Multiplexer '151/'251), Datenbustreiber ('245) und natürlich ein SRAM, das den Bildschirmspeicher enthält. Da das Display monochrom angesteuert wird (1 Bit/Pixel) sind zwei 32kByte-RAMs (62256) ausreichend. Nimmt man je eines für die obere und eines für die untere Hälfte, dann braucht man noch ein Ausgangslatch, um die Nibbles abwechselnd an das Display zu übertragen. Das ist zwar 'ne vertiable Lötarbeit, aber durchaus realisierbar, da nirgendwo sonderlich hohe Taktfrequenzen auftreten.
Es gibt fertige Controller (S1D13704/5) mit 40 bzw. 80kb SRAM intern. Kosten so ca. 30 Man kann es aber auch mit einem AVR und 64kB externem RAM machen, das in einer Pseudo DMA Configuration angeschlossen wird: RD\ vom uC wird gleichzeitig als Takt für das LCD verwendet. So muss der uC nur Daten lesen und die landen dann automatisch im LCD. Ich habe das schonmal ausprobiert, allerdings ist der AVR ziemlich an der Grenze, wenn er sowohl Daten ausgeben als auch neue nachladen sol. Ich hatte dafür einen 8515 verwendet, der per UART die Daten bekam. Man konnte damit ein BMP laden das dann angezeigt wurde. Mit ein paar Befehlen und einem weiteren uC ist auch eine Textdarstellung möglich.
Danke schon mal! Da sagt doch einer man braucht gleich ein Datenblat fürs Display. Na gut nicht jedes is so einfach aufgebaut wie des... Ich möchte keine 30 für so einen Controller ausgeben. Möglichkeiten: 1. Ich verwende eine extra µc für das Display Ich denke das des bei so 16MHz schon irgendwie realisierbar is. Was denkt ihr? Ich möchte des dann so Handhaben: In der Software is eine Schleife die die Daten vom RAM immer an das Display ausgibt. Wenn er einmal durch is schaut er ob es neue Daten gibt, wenn ja ab ins RAM damit und los gehts von vorn. Datenausgeben, neue Daten holen. Was ich mir noch ned vorstellen kann in welcher Form ich die Daten übermittle. Am einfachste denke ich wäre es feste Funktionen auch noch im µC zu Speichern, wie z.B. Schreibe Text Adresse, Größe) und dann die Daten in ascii form oder so. So könnte man sicherlich auch Linien,Rechtecke oder Kreise realisieren. Die Frage is ob das ein einziger µC alles schafft? Ich weiß auch nicht in welcher Form ich die Daten für eine Grafik übermittlen soll. Wie geht sowas? Kann man eigentlich mit zwei verschiedenen µc auf ein RAM zugreifen? Wie würdet ihr des machen??? 2. Möglichkeit: Die von Rufus. Man baut sich des Ganze mit ein paar IC auf. Davon hab ich allerdings keine Anhnung. Zumindest wenig. Gibts da jemanden der schon sowas gemacht hat und wo ich mir Infos holen kann? MfG Hias
zu 1) Ein uC schafft das nicht, ich habe das ja schonmal gemacht. Also ein uC ist nur dafür zuständig das LCD anzusteuern und neue Grafik Daten ins RAM zu laden, der zweite berechnet die Kreise, Linien, Texte usw. Ich habe mal die Software angehängt, die zwar (warscheinlich läuf) aber noch eine Menge Fehler enthält. Es ist etwas aufwendig, da ein Byte Daten in zwei Nibble zerlegt werden muss, da in jedem Byte im RAM ein Nibble für die obere und eines für die untere Hälfte gespeichert wird. Ach ja, der RAM muss ausreichend schnell sein, um bei 20MHz Taktfrequenz des AVR noch die Daten ohne Wait States liefern zu können.
Hallo! Ok dann werd ich woohl zwei nehmen müssen... Wie schließt man den RAM am AVR am besten an? Wo find ich da Info's? Ich hab noch jede Menge SRAM von einem alten 486 rumliegen. Die könnte ich ja verwenden. Ach ja ich hab nur 16MHz ned 20MHz? Aber des düfte kein Problem sein. Kann ich eigentlich mot 2 AVRs auf ein RAM zugreifen? MfG Hias
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.