Forum: Mikrocontroller und Digitale Elektronik LCD Fusebits für Atmega32


von Killerawft (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

Ich habe mir gestern mal zu meinen Atmel Evaluations Board von Pollin 
das Addon-Board mit dem LCD zugelegt. Dazu habe ich mir auch einen 
Atmel32 16PU gekauft und wollte das LCD gleich mit dem µC mit Bascom 
ansteuern.
Jedoch habe ich das Problem, dass das LCD nichts anzeigt, ausser einen 
Schwarzen Balken über die komplette erste Zeile. Ich habe dann im 
Internet gesucht und gelesen, dass das bedeutet, dass das LCD nicht 
richtig Initialisiert wurde. Also habe ich das Programm so geschrieben, 
dass nach dem Initialisieren und nachdem er den Text zum LCD geschickt 
haben sollte eine LED leuchtet. DIese LED's leuchten auch beide, d.h. 
das µC müsste eigentlich das LCD initialisiert haben. Das LCD zeigte 
aber immernoch den selben Balken. Dann habe ich weiter gesucht und 
gefunden, dass man vielleicht mal das FUsebit für JTAG ausschalten muss. 
Also habe ich auch das gemacht und es gab keine verändereung.
Mittlerweile bin ich am verzweifeln. ich habe die vermutung, dass ich 
entweder die Falschen Fusebites gesetzt habe oder ich bei dem Timing des 
programmes was falsch gemacht habe.

Mein bisheriges "Test" Progamm und die datenblätter zu den Boards sind 
oben.
Die brücken auf dem Addon-Board von Pollin habe ich gesetzt ;)

von Düsendieb (Gast)


Lesenswert?

Hallo,
bei Fuses im Auslieferungszustang läuft der Controller bei 1Mhz auf 
internerm RC Oscillator.

Jtag abzuschalten war schon richtig.

Mach mal die LED´s an den Port an dem das LCD Hängt und lass sie dort 
Blinken, dann weißt Du ob das Abschalten des JTAG erfogreich war.
An der Blinkfrequenz kannst Du dann Rückschlüsse aus die Taktfrequenz 
schließen und Du weißt ob das Fuses Setzen erfogreich war.


Axel

von Wissender (Gast)


Lesenswert?

Hallo!

Ich würde Config Lcd 16*2 unter die Pin Config Zeile setzen.
Das Lcdbus=4 brauchst nicht.
Und abschließend würde ich noch am Kontrastpoti drehen,
bis die Kästchen fast verschwunden sind.
Hoffe geholfen zu haben.

MfG

P.S. An alle die hier lesen: Frohen Weihnachten und ein
     gesegnetes neues Jahr!

von Wissender (Gast)


Lesenswert?

Hallo!

Hab ich doch glatt vergessen: R/W auf GND legen!

Mfg

von Killerawft (Gast)


Lesenswert?

so ich finde es super, dass hier so viele antworten und allen ein frohes 
fest.

Ich habe das Programm so geändert, wie wissender gesagt hat und zum ich 
glaube 100 mal am kontrast poti gedreht. Ergebnis: keine Veränderung. 
Die Balken ändern nur ihren Kontrast.

Dann habe ich R/W und DB0 bis DB3 auf GND gesetzt und eine LED an Db7 
gehängt. Ergebnis: Das LCD zeigt immernoch Balken an. Aber die LED 
Blinkt, einmal kurz wenn das LCD initialisiert wird und ein paar mal 
mehr wenn der Text geschriben werden soll, also wird auch etwas an das 
LCD gesendet.

Ich werde heute abend mal ein paar LED's zusammen kramen und an jeden 
Pin des LCD's der mit dem µC verbunden ist eine LED hängen und schauen 
was die mir zeigen und dann mal mit dem Datenblatt vergleichen, was sie 
zeigen müssten.

Vielleicht fällt euch ja noch irgendwas zu meinem Problem ein.

von Jörn P. (jonnyp)


Lesenswert?

Kontrast des LCD wurde hier schon erwähnt.LCDs sind gegenüber µCs 
Lahmärsche.
Deshalb werden sie oft mit viel zu schnellem timing angesteuert. Check 
dein timing mit dem Datenblatt des LCD.
Und auch wenn es ein alter Hut ist:Das Display muss in den 4-Bit Modus 
geschaltet werden und die Befehle bzw. Zeichen 2 mal als Nibble 
übertragen werden.
Vielleicht klingelt ja jetzt etwas bei dir ;-)

von Killerawft (Gast)


Lesenswert?

Also nach langem habe ich mal wieder zeit und habe auch nach Nibble 
geschaut. Aber ich finde zu dem Thema nichts. Ich weiss nicht was das 
sein soll. könntest du mir vielleicht ein paar links zu erklärungen 
schicken oder das selbst erklären?

von Justus S. (jussa)


Lesenswert?

Killerawft schrieb:
> Aber ich finde zu dem Thema nichts.

Schon mal was von Wikipedia gehört? Oder Google?

von Killerawft (Gast)


Lesenswert?

Also ich sags mal anders. zu nibble finde ich etwas ich weiss auch was 
das ist, jedoch nicht wie ich das bei Bascom Programmiere, dass er das 
als Nibble zum LCD sendet. Eigentlich müsste das Bascom doch auch im 
4-Bit Modus von selbst machen oder?

von Jörn P. (jonnyp)


Lesenswert?

Nun ja, der erste Suchbegriff führt gleich zu 
http://de.wikipedia.org/wiki/Nibble
Ein Byte besteht also aus 2 Nibbles. Es ist doch auch logisch: Wenn ich 
beim Datenbus zum LCD 4 Strippen weglasse, dann landen diese Bits im 
Nirwana. Also muss ich dem display ja erst mal mitteilen (Modus), das 
jetzt 2 halbe bytes ankommen an Stelle eines ganzen Byte ;-)

von Karl H. (kbuchegg)


Lesenswert?

Der Mega32 läuft auch sicher mit 16Mhz?

Gib in deinem BASCOM Programm mal 1Mhz als Taktfrequenz an. 
Schlimmstenfalls wird das Timing dadurch langsam. Aber langsam ist bei 
LCD nichts schlechtes. Zu schnelles Timing aber schon.

@Jörn
Er programmiert mit BASCOM. Da brauchst du dich um den ganzen Kram nicht 
kümmern. Man muss nur dem BASCOM das Lcd richtig bekannt machen, dann 
macht es das alles schon von ganz von alleine richtig.

von Jörn P. (jonnyp)


Lesenswert?

@kbuchegg
Da hast du schon Recht. Nur wird das Bekanntmachen zu oft vergessen.
Das führt dann zu kilometerlangen threads. Mir gefällt dein Hinweis mit 
dem 1Mhz Takt. Selbst wenn die Info nur auf das LCD "tröpfelt" ist es 
imho besser, als wenn sich gar nix tut weil user das "Gaspedal" zu weit 
durchgedrückt haben ;-)

von Killerawft (Gast)


Lesenswert?

was nibbles sind wusste ich jedoch nicht, wie mir das weiterhelfen 
sollte, da ich davon ausgehe dass bascom das alles selbst macht. Ich 
habe in Bascom auch gesagt, dass das Display im 4-bit modus läuft und 
die Pins auch definiert. Ich habe auch schon das Display mit 1Mhz laufen 
lassen und auch schon mit 2Mhz und mit 12Mhz und ich habe schon viele 
verschiedene Pin-Varianten ausprobiert. Dann habe ich in der Bibliotek 
"Lcd4e2" eine Pinbelegung gefunden die dort vordefiniert ist. Die habe 
ich auch benutzt ,mit der bibliotek natürlich, aber es zeigt immer nur 2 
schwarze Balken an.

Ich habe auch schon im Internet Programmcodes für Bascom gefunden, mit 
dem Leute genau mein LCD mit einem Atmega32 betrieben haben und es 
funktionierte. Jedoch weiss ich nicht, welche Fusebits die dann gesetzt 
haben, da das nie dabei stand. und es Funktionierte bei mir wieder 
nichts.

In den nächsten Tagen bastel ich nach einer Anleitung einen USB adapter 
für das LCD und lasse es mal mit einer software über den PC laufen. Dann 
werde ich ja sehen, was das LCD anzeigt.

Link zu der Anleitung: 
http://heringshome.bplaced.net/selbstgebautes/usb-lpt-adapter.html

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
Noch kein Account? Hier anmelden.