Hallo, ich will ein Grafik LCD ansteuern (122x32). Ich habe das Display angeschlossen und ein kleines Programm geschrieben das dieses Display initialisieren soll. Leider funktioniert das nicht wie es sollte. Nach anlegen der Spannung sehe ich einen schwarzen Balken. Bedeutet dass, das das Display nicht initialisiert ist? Und weis wer zufällig ein gutes Tutorial über GLCDs in Assembler? Oder einen Code den ich verstehen und nachprogrammieren kann? Ich hab schon danach gegooglet, aber das ist alles mit C. Und was ich noch wissen wollte: für was ist dieser Anschluss "external Clock 2KHz" > clock für den Displaycontroller? und wenn ich "Enable Signal" auf low setze, gibt es da eine interne Clock? Ich bin total am verzweifeln da das Datenblatt i-wie fürn popo ist!
Wie wäre es wenn Du die genaue Bezeichnung Deines GLCD bekannt geben würdest? Es wäre auch hilfreich Deinen Code als Anhang beizufügen. Hier kann doch keiner hellsehen! mfg GroberKlotz
was für einen controllertyp verwendest du? wenn avr, ist jtag abgeschaltet? unter bascom avr gibt es eine fertige routine, die man zum testen bequem benutzen kann.
Ja klar! Also das LCD heißt LM042-13A, und das ist das Datenblatt: http://www.produktinfo.conrad.com/datenblaetter/175000-199999/187399-da-01-en-Grafik_122x32_LDC_Modul.pdf Was heißt 80 SERIEL, bzw. 68 SERIEL? Der Controller den ich benutze ist ein Attiny2313. Ich kann aber leider nur in Assembler programmieren.
M. M. schrieb: > Der Controller den ich benutze ist ein Attiny2313. Ich kann aber leider > nur in Assembler programmieren. das macht eigentlich nix, bascom avr ist für solche testzwecke "idiotensicher". ist eine art basic für µC. www.mcselec.com/index.php?option=com_docman&task=doc_download&gid=139&It emid=54 (datei bcavrdmo.zip von mcselec.com) Unter "Inhalt" nach "Graphikdisplay" suchen, das Beispielprogramm rüberkopieren und den Controllertyp, die Quarzfrequenz und die Anschlussbelegung deines GLCDs anpassen. Dann noch den Progger einstellen, kompilieren und auf den Chip schreiben. Was für einen Progger hast du?
Muss mir das Bascom mal anschaun. Der Controller tut das was ich will (gemessen), ich schätz ich gebe die falschen Befehle aus. Also ich habe wie gefolgt angeschlossen: 1 | Vss | GND 2 | Vdd | +5V 3 | V0 | 10k Poti 4 | A0 | Hi: Daten Low: Befehl 5 | CS1 | Chip rechts 6 | CS2 | Chip links 7 | CL | wundersame Uhr > auf GND 8 | E | GND (seri 68 ausgewählt??) 9 | R/W | Hi: Read Low:Write? 10-17| Datenbus 18| RES | scheinbar kein Reserve > Hi> seri68 Bei der Initialisierung macht AVR folgendes: A0 auf Low CS1 Hi CS2 Low R/W Low > spielt das eine Rolle wenn A0 auf Low ist? auf dem Datenbus kommt dann der Befehl Reset mit 0b11100010 Ich habe den Befehl irgendwann irgendwo aus dem Internet her. Kann es sein das SERI80 bzw 68 ein standartprotokoll ist? Jedenfalls dachte ich dass nach dem initialisieren das LCD leer sein sollte.
M. M. schrieb: > Kann es sein das SERI80 bzw 68 ein standartprotokoll ist? Wenn Du Dir das Datenblatt des Displays bzw. des darauf verbauten Controllers ansehen würdest, könntest Du dort die Timingdiagramme sehen, die den Unterschied zwischen beiden Schnittstellenprotokollen beschreiben. Das Datenblatt solltest Du Dir sowieso ansehen, weil Du anscheinend nur äußerst vage Vorstellungen davon hast, wozu die unterschiedlichen Signale da sind.
M. M. schrieb: > auf dem Datenbus kommt dann der Befehl Reset mit 0b11100010 > Ich habe den Befehl irgendwann irgendwo aus dem Internet her. > Kann es sein das SERI80 bzw 68 ein standartprotokoll ist? > Jedenfalls dachte ich dass nach dem initialisieren das LCD leer sein > sollte. kenne mich leider mit sowas nicht aus, deshalb der tipp mit bascom. da ist der "kleinkram" schon vorprogrammiert, man muss nur noch die parameter angeben... zum testen super. ob bascom selber so toll zum programmieren ist, weiß ich nicht, es scheiden sich die geister. dort kann man aber auf jeden fall auch asm-zeilen eingeben, so weit ich weiß. ach ja, ist das display eigentlich T6963-kompatibel?
Mhmm, also mit Bascom komme ich garnicht klar! Rufus Τ. Firefly schrieb: "Wenn Du Dir das Datenblatt des Displays bzw. des darauf verbauten Controllers ansehen würdest, könntest Du dort die Timingdiagramme sehen, die den Unterschied zwischen beiden Schnittstellenprotokollen beschreiben." Jop, hab ich gemacht. -mit RES wähle ich ob ich im 80- oder 68-Port Modus bin demnach ergeben sich dann auch die Funktionen von Pin 8 und 9 -der Hauptunterschied zwischen 80 und 68 ist das Signal Enabled Pin (8). wenn E Hi ist, dann wertet der Displaycontroller A0, CS1 und CS2 aus?! >ich nehme den 80-Port-Modus (also ohne E) -dieser Clock-Eingang wird einfach benötigt, da der Displaycontroller keinen internen Taktgeber hat. >ich benutze testhalber den Kalibrierausgang meines Oszis, da ich keinen Nerv habe irgend eine N555 Timerschaltung auf meinem windigwackligem Steckbrett aufzubauen. (benötigt: 2kHz, Oszi: 1kHz). Wird schon gehen. -auf Seite 11 steht wieder eine ganz andere Pinbelegung. Ich werde mich nach der von der letzten Seite richten, da ich ja den Kontrast nachweislich beim 3. Pin einstellen muss. > ich ignoriere also Seite 11 -Wenn ich das LCD initialisieren will muss ich ja einen Resetbefehl o.ä. geben. Also A0 auf Low (Instruction Select). Die Instruction liegt dann beim Datenbus an. Wo stehen diese Instructions? Zusätzlich muss ich ja noch auf "Write" stellen, weil ich schreibe ja die "Instruction" bzw. den Befehl Das ganze muss ich sowohl bei Chip1 als auch bei Chip2 machen. Stimmt das so, oder hab ich da den Wurm drin? Und meine Hauptfrage ist, wo ich diese "Instructions" finde?
Also das Display ist jetzt nach dem initialisieren leer. Aber schreiben funktioniert nicht. Muss ich da so vorgehen?: -auf instruction stellen -auf dem bus instruction "markiere zeile XX" ausgeben -auf data stellen -8 senkrechte Pixel ausgeben Aber wie sieht der Befehl aus?
M. M. schrieb: > Mhmm, also mit Bascom komme ich garnicht klar! Zur Not kann ich hier morgen ein kleines Bascom-Testprogramm posten, wenn es dann noch benötigt wird. bräuchte dafür folgende Infos: -Displayauflösung -Controllertyp -Quarzfrequenz -Portname, an dem D0 bis D7 hängen -die Portpin-Namen, an denen /WR, /RD, /CE, C/D, RESET und FS hängen Das Display muss T6963C-kompatibel sein. PS: hast du den Kontrast richtig eingestellt?
M. M. schrieb: > Der Controller den ich benutze ist ein Attiny2313. Ich kann aber leider > nur in Assembler programmieren. Scheint mir eine Fehlentscheidung des Controllers zu sein. Insgesamt 2 kB Flash für eine Schaltung mit Grafikdisplay? Da passt gar nichts rein, ein voller Zeichensatz (256 Zeichen) für Grafikdisplays 8x5 Pixel hat schon ca 1,2 kB. Wäre sinnvoller, einen größeren Controller zu nehmen. Frage am Rande: Was wird das für ein Projekt?
@dfb: das ist saulieb von dir, aber ich scheiter da irgendwie schon beim übertragen mit Bascom. Ich bräuchte halt irgend ein Tutorial das ichs versteh. @Floh: Ich hab bei mir nur den 2313 rumliegen. Es soll die Spannung vom Weidezaun gemessen und bei einer Mindestspannung löst dann ein Alarm aus (per SMS über aufgebohrtes Handy). Zusätzlich wird ausgewertet ob ein rapider Spannungseinbruch innerhalb einer kurzen Zeit auftritt. Auch dann gibt es Alarm. Das ganze funktioniert auch recht gut, aber ich hätte den Verlauf der letzten 24 Stunden gerne angezeigt bekommen. Deswegen das Grafikdisplay. Und falls ich doch noch eine Anwendung habe, wo ich quasi auf das gespeicherte Bild zugreifen müsste, kann man das Display auslesen (theoretisch jedenfalls).
M. M. schrieb: > das ist saulieb von dir, aber ich scheiter da irgendwie schon beim > übertragen mit Bascom. Programm übertragen von Bascom zum Controller? Floh schrieb: > Scheint mir eine Fehlentscheidung des Controllers zu sein. Insgesamt 2 > kB Flash für eine Schaltung mit Grafikdisplay? Da passt gar nichts rein, > ein voller Zeichensatz (256 Zeichen) für Grafikdisplays 8x5 Pixel hat > schon ca 1,2 kB. Unter Bascom benötigt das Display nur mit Line-Befehl etwa 800Byte (mit zusätzlichen Buchstaben und Kreis-Befehl ca. das Doppelte) Wenn man lediglich PSET benötigt, sind es wahrscheinlich noch weniger als die 800Byte.
M. M. schrieb: > Wie finde ich raus ob mein lcd T6963C-kompatibel ist? Schau dir die Chips auf dem LCD an, einer von denen sollte etwas wie "T6963C" aufgedruckt haben, ansonsten ins Datenblatt gucken, so weit vorhanden...
Programm übertragen von Bascom zum Controller? >> ja genau ich bin wohl zu blöde dafür. Ich geh jetzt schlafen und such morgen nochmal nach den Instructions. Trotzdem danke für die Tipps!
Ah AX6120AA heißt der Controller ich grad sah :-). Da lässt sich vll. was finden!
M. M. schrieb: > Programm übertragen von Bascom zum Controller? >> ja genau ich bin wohl > zu blöde dafür. Du musst auf jeden Fall unter "Options" --> "Programmer" deinen Programieradapter einstellen. Ich habe einen AVRISP MKII, den mag Bascom nicht ohne Extratreiber (im Gegensatz zum AVR-Studio). Deshalb nehme ich für Bascom einen alten SP12.
Noch eine letzte Frage: Das LCD braucht ja eine gewisse Zeit, um einen Befehl auszuführen (Stichwort Timing). Aber zu langsam kann ein Befehl nicht sein oder? Also ich mein ein Befehl kann auch 1 min anstehen bis der nächste kommt?
M. M. schrieb: > ich will ein Grafik LCD ansteuern (122x32). Soso. "Ich will.. ähh, ja ich will Buntstift!" oder "device doesnt work, please advice!" Manchmal kommt mir die schiere Verzweiflung den Hals hoch. Warum können und/oder wollen die Leute heutzutage nicht mehr im Geringsten darüber nachdenken, was sie denn eigentlich wollen und was man sinnvollerweise wohl dafür brauchen könnte? Schon der allererste Gedanke könnte ja sein, daß man eine Idee entwickelt, was zum Kuckuck man denn auf einem Display darstellen möchte. Soll es Schrift sein, dann braucht man Schriftzeichen dafür und die fallen nicht vom Himmel, sondern wollen irgendwo im uC in irgendeiner Weise vorgehalten werden. Sollen es andere Dinge sein (Linien, Punkte, Flächen usw) dann braucht man dafür sowohl Werkzeuge (Zeichenroutinen) als auch etwas, worauf man diese Werkzeuge zeichnen lassen kann, also etwas, das dem Blatt Papier entspricht, im Klartext heißt das "RAM". Und dessen nötige Größe sollte man aus den Dimensionen seines gekauften LCD's abschätzen können. Das alles kann man überdenken, bevor man sich an die Details der physischen Schnittstelle macht. Diese richtig zu bedienen ist ein Klacks, das Internet ist voll von Beispielen und die Doku zum Display/Controller kann man lesen. UND MAN SOLLTE DAS AUCH VORHER BEDENKEN, DAMIT MAN WENIGSTENS EIN ERKENNBARES ZIEL VOR AUGEN HAT! So ein "ich will ein Grafik LCD ansteuern" hingegen ist nur Nervensäge für alle Anderen - im Moment grad für mich. Wer qualifizierte Antworten haben will, möge sich mit seiner Frage bitte sehr auch etwas Mühe geben. W.S.
Soweit ich das bisher beurteilen kann, ist der AX6120AA identisch mit dem SED1520 und dieser identisch mit dem SBN1661 Die init sequence ist recht einfach: http://code.google.com/p/u8glib/source/browse/csrc/u8g_dev_sbn1661_122x32.c Das mit dem Takt-Eingang hab ich auch nicht verstanden. Bisherige Nutzer von U8glib und Displays mit diesem Controller berichteten jedenfalls nichts von so einem Eingang. U8glib läuft gerade noch so auf einem ATTiny mit 8K ROM Grüße, Oliver
W.S. schrieb: "Schon der allererste Gedanke könnte ja sein, daß man eine Idee entwickelt, was zum Kuckuck man denn auf einem Display darstellen möchte." Ich will ja auch keine Zeichen oder i-welche Grafen malen, sondern einfach nur mal initialisieren und einen Pixel einschalten da wo ich will! W.S. schrieb: "Sollen es andere Dinge sein (Linien, Punkte, Flächen usw) dann braucht man dafür sowohl Werkzeuge (Zeichenroutinen) als auch etwas, worauf man diese Werkzeuge zeichnen lassen kann, also etwas, das dem Blatt Papier entspricht, im Klartext heißt das "RAM". Und dessen nötige Größe sollte man aus den Dimensionen seines gekauften LCD's abschätzen können." Es ist mir sehr wohl klar das in einen Attiny2313 keine 122x32 Pixel in den RAM passen. Aber erstens habe ich keinen anderen uC auf die schnelle zur Hand, zweitens kann man sich ja auch anders behelfen und drittens geht es mir nicht darum das komplette Display mit einem Bild auszufüllen. W.S. schrieb: "Das alles kann man überdenken, bevor man sich an die Details der physischen Schnittstelle macht. Diese richtig zu bedienen ist ein Klacks" scheinbar nicht.
M. M. schrieb: > Ich bin total am verzweifeln da das Datenblatt i-wie fürn popo ist! Da gibt es einen Trick, man schaut sich das Datenblatt einfach zuerst an. Und wenn man merkt, daß es fürn popo ist, dann kauft man es eben nicht. So würde es jeder vernünftige Mensch machen. Da steht ja nichtmal drin, was es für ein Kontroller ist. Peter
W.S. schrieb: > Warum können und/oder wollen die Leute heutzutage nicht mehr im > > Geringsten darüber nachdenken, was sie denn eigentlich wollen und was > > man sinnvollerweise wohl dafür brauchen könnte? Das liegt meiner Meinung nach an mehreren Faktoren, die dann kombiniert zur von Dir beschriebenen Situation führen: 1) Die Hemmschwelle, einen Thread in diesem Forum zu starten, ist sehr klein. Es ist viel einfacher, schnell "in die Runde" zu fragen, als sich selbst Gedanken machen zu müssen. Das sieht man dann auch daran, dass hier übermäßig hochwertige/komplexe Antworten erwartet/notwendig sind, die auf informationstechnisch schlappen Anfragen basieren sollen. 2) Das "Wie" wird meistens zu schnell behandelt, bevor das "Was" ausreichend geklärt wurde. 3) Es wird in den Schulen genau das Selber-Erarbeiten nicht gefordert. 4) Leute mit sehr wenig Vorkenntnissen wollen Aufgaben in einer bestimmten Zeit lösen, in das das einfach nicht funktioniert. Ob das jetzt Überschätzung von einem selber ist oder von dem Vorgesetzten (o.ä.) ist egal. 5) Wir leben in einer Welt, in der die Leute bunten Krams auf dem iPhone klickern ("Apps") und dann meinen, alles wäre so einfach im Leben (bunten schöne heile Welt). Das das aber bis dahin sehr viel Menpower gekostet hat, sieht man ja so nicht direkt.
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.