Forum: Mikrocontroller und Digitale Elektronik LCD Ansteuerung mit ATtiny 2313


von Dominik P. (s-line)


Angehängte Dateien:

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

von Sabberlotte (Gast)


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 !

von holger (Gast)


Lesenswert?

>In dem Schaltplan sind D0-D3 nicht auf GND gelegt !

Und das sollte man auch nicht tun.

von Cyblord -. (cyblord)


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.

von Blende22 (Gast)


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.

von Martin N. (emsen)


Lesenswert?

Ich vermisse da eine LCD-Initialisierung:

.
.
.
Config Lcdpin  ....
Initlcd

Do
.
.
.

von Dominik P. (s-line)


Angehängte Dateien:

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?

von Martin N. (emsen)


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.

von Dominik P. (s-line)


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.

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Probier mal die HEX Datei im Anhang.
Wenn die auch nicht geht ist die Wahrscheinlichkeit
hoch das dein Display falsch angeschlossen ist.

Mach mal ein Foto von deinem Aufbau.

von Sabberlotte (Gast)


Lesenswert?

CONFIG LCD = LCDtype , CHIPSET=KS077

> Ich habe nämlich so was ähnliches schonmal irgendwo gelesen.

Hast du schon die Hilfe-Funktion gefunden ?
Da gibt es auch Beispiele..............

von Blende22 (Gast)


Lesenswert?

Hängt Dein Enable (PORTD.5) auch wirklich am Pin 6 von Deinem Display?
(sofern Du wirklich auch Deine von Dir angegebene LCD_Ansteuerung nach 
Bild 3 verwendest)

von Dominik P. (s-line)


Lesenswert?

@ holger

habe gerade deine hex datei ausprobiert.
Es funktioniert :-)

Das LCD Modul zeigt mir
Line 1
Line 2

SUPER!!!

Aber da ich persönlich die Hex Datei nicht lesen kann, erzähl mir bitte 
was du da gemacht hast.

von Wegstaben V. (wegstabenverbuchsler)


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).

: Bearbeitet durch User
von Dominik P. (s-line)


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.

von Dominik P. (s-line)


Lesenswert?

So aber nun habe ich immer noch mein LCD Problem.

Das Programm von Holger (siehe Hex datei) funktioniert mein Programm 
aber nicht.


Hat jemand noch eine Idee?

Wäre super von Dir Holger wenn du mir erklären könntest was du anders 
gemacht hast als ich.

Mfg.

von Blende22 (Gast)


Lesenswert?

Schmeiss mal die Schleife raus.

von Dominik P. (s-line)


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,

von spess53 (Gast)


Lesenswert?

Hi

>Vielleicht kann mir mal einer mal BITTE eine Bascom-Muster Datei
>schicken (anhängen)

Hast du eigentlich schon mal in der Bascom-Hilfe nachgesehen?

MfG Spess

von Luca E. (derlucae98)


Lesenswert?

Probiere mal
1
 $regfile = "ATtiny2313.dat"
 statt
1
 $regfile = "Attiny2313.dat"

: Bearbeitet durch User
von Kay (Gast)


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.

von Martin N. (emsen)


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.

: Bearbeitet durch User
von MWS (Gast)


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.

von Martin N. (emsen)


Lesenswert?

Dominik P. schrieb:
> Meine Datenleitungen liegen wie im Programm configuriert auf Port D

Ok, hat sich erledigt.

von Hubert G. (hubertg)


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

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

Hab mir auch noch dein erstes Programm angesehen.
Das "Do - Loop" ist da sehr kontraproduktiv, du beschreibst das LCD und 
löscht es sofort wieder. Da ist kaum was sichtbar.
In meinem Teil fehlt das. Wenn du es unbedingt haben willst musst du ein 
"Wait x" einfügen.

von Dominik P. (s-line)


Angehängte Dateien:

Lesenswert?

Hier ein paar Anhänge.

Vielen Dank,

Ich hoffe Ihr könnt damit was anfangen.

von Land-Ei (Gast)


Lesenswert?

Geil....7MB grosse Bilder.

....und das mit meiner 1000er DSL-Leitung.

von Luca E. (derlucae98)


Lesenswert?


von Uwe S. (de0508)


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.

von Dominik P. (s-line)


Lesenswert?

Ja ein sorry für diese ungünstigen Bildformate.

Die Datenleitungen D0-3 sind deshalb verbunden da ich diese zuerst auf 
GND liegen hatten.

von NaNa_JaJa (Gast)


Lesenswert?

Immer wieder gern > www.halvar.at

von Dominik P. (s-line)


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.

von Martin N. (emsen)


Lesenswert?

Der Strich heisst "Cursor" und den schaltet man vor Textausgabe mit dem 
Befehl "CURSOR OFF" ab.

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.