LCD Ansteuerung mit ATtiny 2313

#3463153
Lesenswert?

Hallo Leute,

Ich bins wieder der Neue, heute habe ich ein weiteres Problem für euch 
auch wenn ich weiss dass Ihr dass schon nicht mehr hören könnt, da das 
Thema hier wahrscheinlich schon 1000 mal besprochen wurden ist aber ich 
habe bei der Suche nix passendes gefunden.

Tipp von mir: Man sollte die Suchfunktion hier mal stark verbessern mit 
einer ordendlichen Suchmaske (z.b. Suche mit Trennung der 
Programmiersprachen chips, etc)). Das wäre gut für alle Anfänger (wie 
mich). Weil als Neuling ist es echt kompliziert hier nach schon 
behandelten Sachen zu suchen.

Nun zu meinen Problem:

Ich habe den ATtiny 2313 und ein LCD (162C/mit KS0066u)und programmiere 
über BASCOM. (4-BIT mode ohne Busy flag, KS0066U soll meines Wissens 
nach kompartibel sein)

Habe es genau so gemacht wie im Anhang beschrieben und ausserdem alle 
freien Pins des LCDs auf GND gelegt.

Aber es passiert nix auf dem LCD habe den Poti so eingestellt das der 
graue Balken erkennbar ist (aber nicht zu stark).

Außerdem habe ich auch schon ein paar Messungen vorgenommen :

Versorgungsspannung LCD, Chip = 5,15 V
R/S Leitung am LCD = 5,00 V
Datenleitungen D4 bis D7 = 5,10V
Reset vom Chip = 5,15V
Bei der Messung von der Enable Leitung habe ich festgestellt das dort 
0,14V anliegen ich glaub das ist der Fehler Nr. 1 da man ja dort 5V 
benötigt für die LCD Freischaltung.
Da ich diesen Wert auch direkt am Pin des Chips gemessen habe gehe ich 
davon aus dass es ein Programmfehler ist oder?

Meine Datenleitungen liegen wie im Programm configuriert auf Port D .


Aber vielleicht habt ihr ja noch ein paar Tipps bzw. Vorschläge die ich 
Versuchen könnte.

Wäre super wenn einer mal ein Auge auf das Programm hätte obwohl ich das 
auch nur kopiert habe. Aber bin mir da nicht immer sicher (manchmal 
sieht man den Wald vor lauter Bäumen nicht, kennt Ihr ja bestimmt 
selber)
Habe unten auch noch mal ein paar Links nach dennen ich es Nachgebaut 
habe.


Vielen Dank schon mal .
Mfg. D.P

Guten Rutsch :-)


Meine Quellen:
http://www.rn-wissen.de/index.php/LCD-Modul_am_AVR
http://www.stefan-buchgeher.info/elektronik/lcd/lcd_kap2.html#Kap2
http://www.stefan-buchgeher.info/elektronik/lcd/lcd_kap4.html#Kap4
Angehängte Dateien:
Gast #3463204
Lesenswert?

Ich vermisse :

$regfile =
$crystal =

Dein Tiny läuft mit 1MHz.


> Da ich diesen Wert auch direkt am Pin des Chips gemessen habe gehe ich
> davon aus dass es ein Programmfehler ist oder?

Wie gemessen (womit) ?
Enable steht doch nicht dauerhaft an.

In dem Schaltplan sind D0-D3 nicht auf GND gelegt !
#3463208
Lesenswert?

Sabberlotte schrieb:
> Ich vermisse :
>
> $regfile =
> $crystal =
>
> Dein Tiny läuft mit 1MHz.
>
>
>> Da ich diesen Wert auch direkt am Pin des Chips gemessen habe gehe ich
>> davon aus dass es ein Programmfehler ist oder?
>
> Wie gemessen (womit) ?
> Enable steht doch nicht dauerhaft an.
>
> In dem Schaltplan sind D0-D3 nicht auf GND gelegt !

Soll man auch nicht tun, da die Pins PullUp Widerstände haben. Offen 
lassen ist besser. Aber ja, seine Aussage stimmt nicht mit dem 
Schaltplan überein.
Gast #3463327
Lesenswert?

> Aber es passiert nix auf dem LCD habe den Poti so eingestellt das der
> graue Balken erkennbar ist (aber nicht zu stark).

Ich würde ein Päuschen nach "Helle World" einlegen (Wait 2 oder so), 
sonst kommste mit dem Lesen nicht so recht mit, wenn der Text in der 
Schleife sofort wieder gelöscht wird. Oder, schmeiss das CLS zum Testen 
raus.
#3463430
Lesenswert?

moin,
Also ich habe das Programm verändert (siehe Anhang).

Datenleitung die nicht benötigt werden, sind nun nicht mehr auf Masse !!

Muss ich HW, Soft stack und Framesize angeben ?

Und kann ich mit irgendwelchen "Haushaltsmitteln" feststellen ob der LCD 
kaputt ist? wenn ja wie?


Ist der crystal richtig , diese 9,6 MHZ habe ich irgendwo aus Netz.
Weiss aber nicht ob es richtig ist und muss ich nicht bei so einer 
Angabe auch irgendwas bei den fused and lockbits verändern?
Angehängte Dateien:
#3463461
Lesenswert?

Dominik P. schrieb:
> Muss ich HW, Soft stack und Framesize angeben ?

Momentan noch nicht.

Dominik P. schrieb:
> Ist der crystal richtig , diese 9,6 MHZ habe ich irgendwo aus Netz.

Nein. Schauen wir mal deine Fuses an. Da steht "Int RC Osc. 8Mhz".
D.H. interner Oszillator ist deine eingestellte Taktquelle, mit 8MHz.
Dann steht etwas oberhalb noch "Divide clock by 8 enabled". Dein Takt 
aus dem internen Oszillator wird also noch durch 8 geteilt.
Dein Controller läuft also mit 1MHz. Bitte das bei "crystal" eintragen. 
Sonst stimmen die Timings für's Display nämlich sowieso nicht.
#3463518
Lesenswert?

So habe es jetzt nochmal umgeschrieben.

crystal = 1000000

Funktioniert aber leider immer noch nicht.

Muss ich noch eine Datei ins Programm einfügen für das LCD Modul da er 
ja nicht den HD44780 chip hat sondern den KS0066u ?

Ich habe nämlich so was ähnliches schonmal irgendwo gelesen.
#3463676
Lesenswert?

Dominik P. schrieb:
> mit
> einer ordendlichen Suchmaske (z.b. Suche mit Trennung der
> Programmiersprachen chips, etc)). Das wäre gut für alle Anfänger (wie
> mich).

Das würde voraussetzen, daß die Beiträge entsprechend strukturiert oder 
indiziert sind. Sind sie aber nicht. Manchmal sind solche Angaben auch 
nicht wichtig (z.B. bei einer allgemeinen algorithmischen Fragestellung, 
oder einem zu diskutiernenden Lösungsansatz).
#3463748
Lesenswert?

Ja naturlich hast du Recht demnach müsste man auch bei der Erstellung 
neuer Beiträge zusätzliche Angaben machen aber warum nicht?

Z.B:

Neuer Beitrag

Name: ...

Betreff: ...

Chip: ... "(ATtiny 2313)"

Programmiersprache: ... "(Basic, C,C+ usw.)"

Weitere Hardware: ... "(LCD Modul)"

Kurze Fehlerbeschreibung: ... "(LCD Modul funktioniert nicht)"

Text: ... "(genau Beschreibung wie gehabt)"

Ob man dann die weiteren Angaben macht kann ja auch jeder selber 
entscheiden.


Demnach könnte man auch eine zuverlässige Suchmaske erstellen.

Aber das ist nur ein Vorschlag von mir. Ich wollte mich ja damit nicht 
beschweren nur ein Vorschlag einwerfen.
#3464503
Lesenswert?

Habe jetzt ma die do , loop Schleife entfernt.

Aber funktioniert auch nicht.

Vielleicht kann mir mal einer mal BITTE eine Bascom-Muster Datei 
schicken (anhängen)
die bei Ihm funktioniert.
Damit ich weiß wie ein "Musterprogramm aussieht).

Werde dann auch ma Bilder senden mit dem Versuchsaufbau.

Danke,
Gast #3464550
Lesenswert?

Luca E. schrieb:
> Probiere mal $regfile = "ATtiny2313.dat" statt "Attiny2313.dat"

Das ändert nichts. Es gibt aber eine andere DAT Datei für den 
Attiny2313A. Wird aber auch nichts ändern. Ich tippe auf einen 
Verdrahtungsfehler. Bisher haben wir auch kein Bild vom Aufbau gesehen.
#3464569
Lesenswert?

Kay schrieb:
> Verdrahtungsfehler

Glaube ich weniger, da das Display mit dem Code "LCD_test.hex" von 
holger ja lief.
Es gibt bei BASCOM auch noch den schönen Befehl "Config Lcdbus = 4", 
vielleicht hilft's?
Oder stimmt da doch die Portzuordnung nicht?
Im Schaltplan ganz oben geht E auf PC5.
In seinem Programm steht "E=PORTD.5"?

Ich möchte jetzt auch erst mal Bilder sehen.
Gast #3464584
Lesenswert?

Könnte es sein, dass auf dem png ein $baud = ... nicht zu sehen ist? Das 
würde das UART aktivieren und dieses wiederum belegt PD1..0

Dominik P. schrieb:
> Vielleicht kann mir mal einer mal BITTE eine Bascom-Muster Datei
> schicken (anhängen)
> die bei Ihm funktioniert.
> Damit ich weiß wie ein "Musterprogramm aussieht).

Andersrum wird ein Schuh draus: Du hängst Dein Programm an, und zwar als 
Originaldatei und nicht als Bildchen.
#3464607
Lesenswert?

1
$regfile = "Attiny2313.dat"
2
$crystal = 9600000
3
'$hwstack = 100
4
'$swstack = 100
5
'$framesize = 100
6

7
Config Lcd = 16 * 2
8
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , _
9
   Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
10
Initlcd
11

12

13
Cls
14
Locate 1 , 1
15
Lcd "Hello Welt"
16

17

18
End
Das läuft bei mir einwandfrei
#3464747
Lesenswert?

Hallo,

Warum sind den die vier LCD-Datenleitungen verbunden ?

Steht das so im Datenblatt deines LCD ? - ich denke nicht.

Dann würde ich die Zuleitungen zum LCD so kurz als möglich ausführen.

Abblock 100nF Kondensatoren direkt an den Baugruppen verteilen.
#3464920
Lesenswert?

So jetzt läuft es :::---))))

Und nun die große Auflösung:
Aber eigentlich weiß ich das selber nicht so richtig ich habe mein 
Ursprungprogramm  was ich hier ganz am Anfang angehängt habe aus dem 
Internet kopiert und bei Bascom nur eingefügt, ich glaub das war Fehler 
Nr.:1

Fehler Nr. 2 :

Ich habe beim Programmieren nie vorher manuell erased sondern immer 
gleich auf write dann bekomme ich zwar eine Meldung "writen to flash" 
aber es passiert einfach nix.

(Und ja ich weiß normalerweise erased er autom. aber habe das ein paar 
mal mit meinen LED blink, blink Programme ausprobiert da ist das auch 
so, vielleicht ist das auch nur mit meinem Diamex USB so umständlich)

 Dank Euer Hilfe


Eine Frage habe ich noch, auf dem LCD steht nach meiner Nachricht immer 
noch so ein Leerzeichen Strich.

Z.B AUF dem LCD wird:

HALLO WELT_

angezeigt, wofür ist der Strich nach Welt und wie bekommt man den weg.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren