hängt quarz mit 16mhz dran? auch in den fuses eingestellt sonst nehm einfach die 1mhz intern und da brauchste bei den 16mhz nur die "6" rausstreichen
Hallo Allesamt,
Vorweg: Ich weiß, dass es schon viele Threads zu diesem Thema und einen RN-Wissen eintrag gibt, doch die konnten mir auch nicht weiterhelfen.
Zurzeit versuche ich ein Lcd (Hd44780 kompatibel , 2 * 16 Zeichen , von Pollin) an einen Atmega 88 anzuschließen.
Ich verwende es im 4bit modus. RW liegt auf Masse.
Die Schaltung habe ich an main Atm18 Board (Elektor) angeschlossen
Ich habe schon Alles versucht aber es funktioniert nicht.
Wenn ich Betriebsspannung anlege kommen nur schwarze Balken.
Meine Hardware ist einwandfrei (kein Kurzschluss und aufbau nach Lehrbuch)
Mein Quellcode ist in Bascom
Ich vermute, dass es an den Fuses liegt (oder mit der Betaktung?), aber da komm ich einfach nicht zurechtCode:$regfile = "m88def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 10 $framesize = 10 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Config Lcd = 16 * 2 Config Lcdbus = 4 Initlcd Cls Locate 1 , 1 Lcd " hallo" End
Ich brauche dringend Hilfe!
Vielen Dank schon mal im voraus
Waldichecker
hängt quarz mit 16mhz dran? auch in den fuses eingestellt sonst nehm einfach die 1mhz intern und da brauchste bei den 16mhz nur die "6" rausstreichen
was gibt es noch zu sagen
Hallo,
auf jeden Fall ist komisch, dass Du einen Takt von 16MHz angibst, und dennoch die Pins B6 und B7 für das LCD verwendest, welche auch für den Quarz gehören.
Wenn Du an den Fuses nix gemacht hast, läuft der mit 1MHz (interner Takt).
Mit welchem Takt läuft der wirklich, und hast Du die XTAL pins verwendet ?
Ich hab nun das Programm geändert.
Es klappt immer noch nichtCode:$regfile = "m88def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 10 $framesize = 10 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.3 , Rs = Portb.2 Config Lcd = 16 * 2 Config Lcdbus = 4 Initlcd Cls Locate 1 , 1 Lcd " hallo" End
Doch in den Fuses find ich kein 1mhz!
Ich benutze AVR studio zum Programmieren.
die 1mhz sind die grundeinstellung beim verkauf
und gehts?
was gibt es noch zu sagen
Ich glaube, dass ich sie mal geändert hatte, was jetzt? Es klappt nicht!
Liegen die Pins DB0-DB3 vom LCD ebenfalls an Masse?
Grüße
Thomas
sicher hattest du das für einen quarz 16mhz eingestellt? wenn ja kannst quarz anlöten/stecken und deine andern leitungen verschieben
kannst ja mal den chip am display anfassen wenn der heis ist kannstes so oderso vergessen
was gibt es noch zu sagen
Stell einfach bei den Fuses ein, um den internen 1MHz Takt zu aktivieren: "Int. RCosc 1MHz, Startup: ..." (oder so ähnlich). Ich habe mit den Pollin-LCDs auch schon schlechte Erfahungen gemacht: Bei mir hat das Display einfach nichts angezeigt. In der gleichen Schaltung hat dann ein etwas teureres von Conrad perfekt getan. Aber wenn in der ersten Hälfte des Displays ein schwarzer Balken angezeigt wird, ist das eigentlich ein Zeichen vom internen Controller, dass er auf die Initialisierung wartet und das Display funktionsbereit ist.
Hallo,
@TomEdl:
Die Pins db0 - db3 liegen über nen wiederstand (10k) auf Masse.
@Thomas$:
Das Display ist in Ordnung der chip wird nich heiß
Das mit den Fuses Kapier ich nicht.
Ich hab ein Häckchen bei:
Boot Flash Size = 1024 words...
Brown-Out detection dissabled
Divide Clock bei 8 internally !!!
Aha, heißt das, dass der Takt den ich da Angebe durch 8 geteilt wird?
Wenn Ja:
Welches Der 3 Obtionen Müsste ich auswählen, wenn ich 1 Mhz intern haben will?
Int. Rc Osc 8Mhz; Startuptime PWRDWN/Reset : 6 ck / 14CK + 0ms
Int. Rc Osc 8Mhz; Startuptime PWRDWN/Reset : 6 ck / 14CK + 4.1ms
Int. Rc Osc 8Mhz; Startuptime PWRDWN/Reset : 6 ck / 14CK + 65ms
Vielen Dank schon mal ich bin schon einen Schritt weiter aber es klappt immer noch nicht.
Lesezeichen