allo zusammen!! Hab ein "kleines" Problem mit einem mega16 und einem gLCD mit T6963C-Controller!! Mein mega16 läuft einwandfrei, habe ein Programm geschrieben, dass einen Port abwechselnd von "Null" auf "Eins" setzt, und somit ein Relais "klackern" lässt, damit ich weiß das der Controller noch läuft. hintergrundbeleuchtung funktioniert ebenfalls!! stecke ich nun meine Flachbandleitung zur Verbindung des Controllers mit den Pins an meinem Controller ein, so sehe ich dort alles "schwarze Punkte". Jedoch hört dann auch plötzlich mein Relais auf zu klackern!! Das heißt irgendwas stimmt nicht so 100%!! Ich kann auch den Kontrast verstellen, alles kein Problem!! Woran könnte es liegen? Falsche Verdrahtung irgendwie? Programmierfehler schließe ich mal aus, habe es mit Bascom gemacht, und so ziemlich alles aus dem Beispiel übernommen... Die Leitung ist relativ lang, ist ein altes Floppy-Kabel...so ca. 35cm... Danke schonmal für eure Hilfe!!!
Hier noch ein paar mehr Infos: Das Programm lautet: $regfile = "m16def.dat" $crystal = 3686400 '(fuse bits habe ich in Bascom auf 1111 1111 gesetzt, scheint auch zu laufen) Config Portd.2 = Output 'Relais über ULN2003 an Port D.2 Config Graphlcd = 240 * 64, Dataport = Portc, Controlport = Portb, Ce = 4, Cd = 1 , Wr = 2 , Rd = 3 , Reset = 0 , FS = 5 , Mode = 8 Cls Wait 1 Cursor Off wait 1 Do Portd.2 = 1 waitms 500 Locate 1 , 1 Lcd "GMB" Locate 2 , 1 Lcd "GLCD" Portd.2 = 0 waitms 500 Loop Habe alles wie oben angeschlossen, jedoch habe ich die "Font-Select"-Leitung direkt auf Masse gelegt, und nicht an den Port-Pin (ist das evtl. sogar schon der Fehler?!?! Der Port-Pin dem ich "FS" zugewiesen hab, ist aber "frei" in der Luft) , gemäß Datenblatt meines "Powertip PG24064LRU-ET A-H-SB" habe ich dann "8x8 dots font"... D0 ist an PC0, D1 ist an PC1, D2 an PC2 und so weiter Kontrast lässt sich über das Poti regeln, also die Punkte werden alle schwarz... Beim einstecken der Spannungsversorgung ist für den Bruchteil einer Sekunde ein Balken quer auf dem Display zu sehen, danach wird alles "schwarz", je nach Kontrast halt Wie kann ich testen ob der mega16 auch wirklich mit dem 3.6864Mhz-Quarz läuft? Lese ich die Fuse-Bits aus, liest er "1111 1111" aus, also das sollte ja passen soweit, richtig?
Ich hab jetzt schon alles ausprobiert, habe auch mal "FS" direkt an den zugeordneten Portpin gelegt, funktioniert alles nicht!! Mitlerweile klackert das Relais gar nicht mehr.... :-/ Woran liegt es?!?
Habe mal die Leitung gekürzt, ist jetzt ca. 10cm nur noch lang, es tut sich aber immer noch nichts!! Liegt es an der Programmierung? Habe alle Pins durchgemessen, es kommt so an, wie oben beschrieben!! Habe direkt an den Pins am Controller gemessen!!
Ich habe jetzt mal ein Programm geschrieben, das auf das Display gar nicht zugreift, nun bekomme ich "Hyroglyphen" angezeigt auf dem display, die wild umherblinken!! Schreibe ich wieder "Config Graphlcd = 240 * 64" etc. in das Programm, dann hängt er sich auf an der Stelle, und auf dem Display ist ein schwarzer Balken zu sehen...der sieht aber auch nicht ganz "normal" aus, sondern irgendwie merkwürdig (kann man schwer beschreiben) Hat denn niemand einen Tip für mich? Ich bin mit meinem Latein am Ende!!!!!!!!!!!!!!!
Schwarzer Balken? Sieht nach einem Reset von dem Display aus. Sieht man, wenn der Reset zu lange ansteht. Der Rest funktioniert wohl nicht, weil das Programm nicht auf das Display zugreifen kann. Nutze kein BASCOM. Aber der T6963C hat ein Status-Register, was vor dem Beschreiben ausgelesen wird. Solange das nicht paßt, wird das nichts an Dsiplay geschickt. Ansonsten siehe mal im Anhang. Da ist ein Source für WINAVR. Mfg Sascha
Hallo!! Wie gesagt, solange kein Zugriff auf das Display erfolgt, sehe ich wilde "Hyroglyphen", wenn ich dann in Bascom das Display initialisiere, kommen 2 Fehlerarten vor: Einmal hatte ich es so, das ich kurz einen schwarzen Balken sehe, der dann direkt wieder verschwindet, und danach bleibt das Display leer. Und einmal ist es so, das ich auch erst Hyroglyphen sehen, und nach der Initialiserung in Bascom sehe ich dann einen schwarzen Streifen, der sogar bis zum "Rand" geht, und dann nach abschalten der Spannung erst gaaaanz langsam wieder verschwindet...
"Einmal hatte ich es so, das ich kurz einen schwarzen Balken sehe, der dann direkt wieder verschwindet, und danach bleibt das Display leer. " Gut, Reset hat dann funktioniert. "Einmal hatte ich es so, das ich kurz einen schwarzen Balken sehe, der dann direkt wieder verschwindet, und danach bleibt das Display leer. " Nicht gut, da bleibt der RESET an. Das Problem kenne ich. "wilde "Hyroglyphen" Ist normal, wenn das Display einegschaltet ist und noch nicht initialisiert/Resetet wurde. Mfg Sascha
Mmmmh...also, Reset "funktioniert" dann schonmal, aber warum bekommt das Display keine Zeichen? Was ich ja auch schon erwähnte: der mega16 hört auf zu arbeiten, nach der Initialisierung ist eine Schleife, die das Relais mit 1Hz "klackern" lässt, ziehe ich die Leitung zum Display heraus, geht der Controller weiter...erwartet er evtl. eine "Rückmeldung" vom Display? Ohne die er nicht weiter macht? Wenn ja, auf welcher Leitung wäre das?
Hatte ich doch schon geschrieben: Aber der T6963C hat ein Status-Register, was vor dem Beschreiben ausgelesen wird. Solange das nicht paßt, wird das nichts an Dsiplay geschickt. void lcd_status(void) { DATA_DIR_IN(); LCD_CD_H(); // Commando High LCD_RD_L(); // Read Low LCD_CE_L(); // Chip Enable Low LCD_STATUS = LCD_READ; // Status lesen LCD_CE_H(); // Chip Enable High LCD_RD_H(); // Read High LCD_STATUS &= (0x03); // Bits ausmaskieren } So sieht es bei mir in GCC aus. Es wird auf 0x03 verglichen. Kommt was anderes vom Display, ist es nicht bereit vom ATmega Daten zu empfangen. Mfg Sascha
Mmmmmh...dann werde ich mal versuchen, das mit GCC zu machen, ich hoffe nur ich bekomme das hin...ist dann wohl ein Fehler in Bascom? Bzw. mein Display nicht kompatibel dazu (obwohl es den T6963C-Controller hat)!?!?! Was könnte es denn noch für ein Fehler sein? Und warum macht der mega16 nicht weiter mit seiner "Arbeit"?!?!
Er macht nicht weiter, weil er auf den passenden Status vom Display wartet. Hast du JTAG abgeschaltet? Weil sonst geht der Port C nicht so! Mfg Sascha
Mmmmh...ich habe da "wissentlich" nichts an/abgeschaltet...könnte es denn daran liegen? Steht wahrscheinlich im Datenblatt, wie ich JTAG abschalte, oder?
Ja, per FUSEBIT. Und daran kann es dann wesentlich liegen....... Sollte bei BASCOM beim Programmier-Menu aber auch stehen. Mfg Sascha
Hab in Bascom mal die Fuses gelesen, und JTAG ausgeschaltet, er zeigt mir beim schreiben des Programmes immer "Difference at 0040", aber das gLCD läuft jetzt!! Woher könnte die Fehlermeldung kommen? Wobei, es läuft ja...*lach* Du bist mein Held!! :-P
Schon gut, bin damals selber darauf mal reingefallen. "Difference at 0040" Ev. mal den Mega16 ein paar mal löschen bevor du ihn wieder progst. Könnte nen Fehler im Flash sein. Mfg Sascha
Mmmmh...habe keine Ahnung woran es liegt, muss erstmal gucken ob ich das mit Bascom überhaupt machen kann, das löschen...aber das soll mich nicht weiter stören, hauptsache das gLCD läuft erstmal!! Danke auf jeden Fall für die Hilfe!! Direkt der erste "Tip" passte!! Das nenne ich mal Effizienz!! Und dazu noch der erste, der überhaupt geholfen hat!!
Bei Bascom gibt es im Verzeichnis SAMPLES eine Datei mit dem Namen t6963v3.bas diese habe ich als Basis genommen. Guckst Du hier http://www.db9xq.de/tacho.php
Ich hab den Fehler schon gefunden, man sollte einen mega8 nicht parallel dazu im Programmiergerät sitzen haben...*Kopf auf Tisch schlag* Na egal, Danke nochmal vielmals an alle, besonders an Sascha für den Tip mit dem JTAG!!!!!
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.