Forum: Mikrocontroller und Digitale Elektronik LCD intialisiert sich nach 1 Minute nicht mehr


von Nette M. (nette-mann)


Lesenswert?

Hallo,


habe das Problem und ich weis BASCOM mögt ihr nicht, aber vielleicht 
könnt ihr trotzdem helfen:

Ich habe an einem Atmega 8 einen 4 Mhz Oszillator und ein LCD

schreibe ich nun Hello z.b. auf das LCD verschwindet HELLO und es 
erscheinen nur noch 4eckige Balken. Also ob es zwar Strom bekommt aber 
keine Daten. Schließ ich eine LED mit an, diese dann im sekunden Takt 
blinken soll, geht das LCD zwar in den 4eck Modus aber die LED blinkt 
weiter. Von daher vermute ich das Problem beim LCD. Kennt ihr solche 
Phänomene? LCD kaputt?


$regfile = "m8def.dat"
$crystal = 4000000

Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.0 , 
Db7 = Portd.1 , E = Portd.4 , Rs = Portd.5
Config Lcd = 24 * 2
Config Lcdbus = 4

Do

Lcd "Hello"
Wait 1
Cls
Loop

von eProfi (Gast)


Lesenswert?

Wie erzeugst Du die Kontrastspannung?

von I. L. (Gast)


Lesenswert?

Dann ist deine Betriebsspannung zu hoch oder der Kontrast passt nicht.



Gruß Knut

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nette Mann schrieb:
> schreibe ich nun Hello z.b. auf das LCD verschwindet HELLO und es
> erscheinen nur noch 4eckige Balken.
Das ist mir irgendwie nicht klar: wenn es verschwindet, dann war es doch 
schon mal da...

Wie sind die Leitungen D0..3 vom LCD beschaltet?
Sind die offen? Dann leg sie mal auf ein definiertes Potential (GND).
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/

von spess53 (Gast)


Lesenswert?

Hi

>Wie sind die Leitungen D0..3 vom LCD beschaltet?
>Sind die offen? Dann leg sie mal auf ein definiertes Potential (GND).
>http://halvar.at/elektronik/kleiner_bascom_avr_kur...

Die Datenleitungen der Displaycontroller haben interne 
Pull-Up-Widerstände. Eine Beschaltung nach GND ist eher kontraproduktiv.

MfG Spess

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

spess53 schrieb:
> Die Datenleitungen der Displaycontroller haben interne
> Pull-Up-Widerstände.
Offenbar nicht alle 44780-Clone:
Ich mußte auf jeden Fall schon welche zur Mitarbeit überreden... :-/
Und: offene Eingänge sind mir prinzipiell ein Gräuel.
Ich hatte da mal einen POL-Wandler (point-of-load), bei dem stand im 
Datenblatt:
1
Enable Input: if this feature is not needed, this pin can be unconnected.
Und beim EMV-Test hat der Wandler dann ab und zu abgeschaltet. Erst mit 
einem definierten Pullup auf den aktiven Pegel war dann ein problemloser 
Betrieb möglich.

> Eine Beschaltung nach GND ist eher kontraproduktiv.
Aus langjähriger Erfahrung hätte ich da auch eher Pullups eingesetzt.

von Nette M. (nette-mann)


Lesenswert?

Also ich muss mal gerade zählen

Pin #   Bezeichnung
1   Vss   GND
2   Vcc   5V
3   Vee   GND
4   RS   Register Select (Befehl/Daten)
5   RW   GND
6   E   Enable
7   DB0   GND
8   DB1   GND
9   DB2   GND
10   DB3   GND
11   DB4   Datenbit 4
12   DB5   Datenbit 5
13   DB6   Datenbit 6
14   DB7   Datenbit 7


Also der Mikrocontroller arbeitet auch wenn das LCD sich abgeschossen 
hat, weiter. Das ganze müsst ihr euch so vorstellen:

Spannung ein, LCD zeigt Hello_ eine Minute (immer genau der selbe 
Zeitraum in etwa nicht mnal 1 Min dann 5 dann 6 wieder 1ne Nein immer 
genau nach ca einer Minute) schwinden das Hello_ und es kommen nur noch 
Balken. Sieht dann so aus als ob es sich nicht intialisert hat. Daten 
werden aber weiterhin geschickt. Zumindest hab ich an DB7 z.B. puls 
artig 5,01V ganz ganz kurz mit dem Multimeter gemessen. Oszi hab ich 
leider nicht.

von Karl H. (kbuchegg)


Lesenswert?

Überprüf mal das ganze drumherum.
Netzteil, Kabel, Lötstellen

von Nette M. (nette-mann)


Lesenswert?

Platine ist geätzt. Spannung bleibt stabil bei 5,01 kein Zucken nach 
5,02 oder 5 oder sonst was. Ein Relais hängt noch mit drauf und ein 
Darlington Transistor sowie 2 Taster und ein 10K Poti. Platine ist im 
Tonertransferverfahren geätzt und alle Leiterbahnen haben Durchgang. 
Lötstellen von µC zu Wannenbuchse hab ich nachgelötet --> Problem bleibt

Habe 2 mal 100nF Wima Kondis zum glätten drauf, zu wenig? Strom liefert 
der

LM 2576 T5,0

mit 100 µF Elko am Eingang einer Spule von 100µH und 1000µF am Elko 
Ausgang

Also genauso wie im Datenblat als Bsp gezeigt.

von John (Gast)


Lesenswert?

Nette Mann schrieb:
> 3   Vee   GND

Wenn Du hier ein Poti anschließt, dann kannst Du den Kontrast einstellen 
(Poti zwischen GND und 5V, Schleifer auf Vee). Mit GND auf Pin3 hast Du 
maximalen Kontrast: Schwarze Balken.

Gruß
John

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

John schrieb:
> Mit GND auf Pin3 hast Du maximalen Kontrast: Schwarze Balken.
Das kommt aber auf das Diplay an: Displays mit erweitertem 
Temperaturbereich brauchen evtl. sogar negative Kontrastspannungen 
(bezogen auf GND)...

Aber das könnte schon darauf hindeuten, dass irgendwann mal was zu lesen 
ist, und später nur noch schwarze Kästchen da sind.

von Nette Mann (Gast)


Lesenswert?

früher giung das mit nem anderen ATmel problemlos und länger als 1 std

von Karl H. (kbuchegg)


Lesenswert?

Ich denke nach wie vor, dass dein LCD aus irgendeinem Grund resettet 
wird. Da ist ja ebenfalls ein Controller drauf, der resettet werden 
kann.


> Platine ist geätzt. Spannung bleibt stabil bei 5,01 kein Zucken
> nach 5,02 oder 5 oder sonst was. Ein Relais hängt noch mit drauf

Es ist nicht zufällig so, dass dein LCD immer dann ausfällt, wenn das 
Relais schaltet?


Probier mal 100nF an die Versorgungsspannung des LCD.

von Nette Mann (Gast)


Lesenswert?

Nein

Relais schaltet wenns LCD an ist, und wenns aus ist auch.

LCD bleibt an wenns Relais schaltet

Sperrdiode beim Relais ist gesetzt.

Relais hängt an 2 BC547 die als Darlington mit Dioden und Widerständen 
zusammen aufgelötet sind. 10K am Pin des Atmels zur Basis natürlich auch 
vorhanden. Aber LCD kann an sein und Relais schaltet im sek Takt und es 
bleibt an. Es geht nur immer nach einer Minute genau aus. Kann auch 55 
sec oder 1 Min 10 sein aber so in der Ecke. LCD zählt die Sekunden. Also 
Timer im Atmel erhöht immer um 1 und im Display steht dann XX sec XX 
min. Soll mal ne Schaltuhr werden. Vorher hatte ich es auf Lochraster 
ohne Darlington und mit 7805 das Relais schaltete 3 mal und der ATmel 
resette sich. Von daher hat ich nu versucht, weil ich auch die Pullup am 
Taster weggelassen hatte und auf Software gesetzt hatte, alles doppelt 
abzusicher. 7805 ist murks hat man mier im Forum gesagt und desweiteren 
sollte ich nen Regler ne Spule 2 Elkos nehmen und hätt nen super 
Netzteil was ich nu auch gemacht habe.

von Karl H. (kbuchegg)


Lesenswert?

Nette Mann schrieb:

> vorhanden. Aber LCD kann an sein und Relais schaltet im sek Takt und es
> bleibt an. Es geht nur immer nach einer Minute genau aus. Kann auch 55
> sec oder 1 Min 10 sein aber so in der Ecke. LCD zählt die Sekunden.

Was nun?
Dein im Eingangsposting gezeigtes Programm macht das alles nicht.
Das beschreibt das LCD einfach nur im Sekundentakt und macht sonst 
nichts weiter.

Wenn du dieses Programm laufen lässt, und zwar ganz genau 100% dieses 
Programm, kommt des dann immer noch zu LCD-Ausfällen?

Also nichts weiter: Einfach nur in einer Schleife jede Sekunde LCD 
löschen und neu beschreiben.



> Also
> Timer im Atmel erhöht immer um 1 und im Display steht dann XX sec XX
> min. Soll mal ne Schaltuhr werden. Vorher hatte ich es auf Lochraster
> ohne Darlington und mit 7805 das Relais schaltete 3 mal und der ATmel
> resette sich. Von daher hat ich nu versucht, weil ich auch die Pullup am
> Taster weggelassen hatte und auf Software gesetzt hatte, alles doppelt
> abzusicher. 7805 ist murks hat man mier im Forum gesagt und desweiteren
> sollte ich nen Regler ne Spule 2 Elkos nehmen und hätt nen super
> Netzteil was ich nu auch gemacht habe.

Deine Beschreibungen stärken in mir nicht gerade das Vertrauen in einen 
vernünftigen Aufbau. Dass ein 7805 Murks wäre, kann ich so nicht sagen. 
Meine 7805 haben noch nie Probleme gemacht. Aber darf natürlich mit 
Blockkondensatoren an den IC nicht geizen. Da kann aber der 7805 nichts 
dafür.

Aber egal. Wie ist das mit dem Softwaretest?
Nur das primitvste, einfachste Beispiel. Nichts schalten, nichts 
drücken.

von Nette Mann (Gast)


Lesenswert?

Ja und genau nach 55-75 sekunden


Zwecks 7805/LM317:

Beitrag "Erstes Netzteil mit LM317. Klappt das so?"

:
Beitrag "Re: Erstes Netzteil mit LM317. Klappt das so?"

Autor: Michelle Konzack (Firma: electronica@tdnet UG i.G.) 
(michellekonzack) Benutzerseite
Datum: 20.08.2009 00:32

Oh weia....

Dafür nimmt man eine National Semiconductor LM2677T-5.0 (gibt es auch in
3,3V, 12V und ADJ) dan noch ne Spule, zwei widerstaäne und zwei
Kondensatoren

Die LM2677-ADJ habe ich hier massenweise rumliegen weil sie 5A
Aushalten.

Beitrag melden | Bearbeiten | Löschen |

von Karl H. (kbuchegg)


Lesenswert?

Nette Mann schrieb:
> Ja und genau nach 55-75 sekunden
>
>
> Zwecks 7805/LM317:
>
> Beitrag "Erstes Netzteil mit LM317. Klappt das so?"
>
> :
> Beitrag "Re: Erstes Netzteil mit LM317. Klappt das so?"


Wenn ich die Threads lese, dann kommt da meiner Meinung nach eigentlich 
eines klar zum Ausdruck:
Alles ausser einem 7805 (oder allgemeiner: ein popeliger Linarregler) 
ist nicht wirklich das, was du willst

>
> Dafür nimmt man eine National Semiconductor LM2677T-5.0 (gibt es auch in
> 3,3V, 12V und ADJ) dan noch ne Spule, zwei widerstaäne und zwei
> Kondensatoren
>
> Die LM2677-ADJ habe ich hier massenweise rumliegen weil sie 5A
> Aushalten.

Ja, es gibt immer wieder Profis die einem Anfänger etwas möglichst 
kompliziertes einreden, weil sie selber keine Probleme damit haben und 
ihre Lager gefüllt sind.

Hast du es denn schon probiert, deinen Mega + LCD mal über einen 
popeligen 7805 oder sonstiges Linearnetzteil zu versorgen? Und wenns nur 
ein paar Akkus sind. Auf jeden Fall halt mit irgendetwas so dass du 100% 
sicher weißt: das Netzteil ist es nicht.

von Nette Mann (Gast)


Lesenswert?

Also weil der Lienear oder Schaltoder wat weis ich Regler mit ner zu 
hohem Frequenzregelt, erträgt das mein LCD zwar ne Minuter aber danach 
ist Sabbat? So wie das man die Hand über ner Flamme zwar verträgt aber 
nach nen paar sek wegzieht? MUSS ich nu mir was neues einfallen lassen? 
Alles neu ätzen? Ich bekomm noch nen Anfall her mit der Habmichliebjacke

von Nette Mann (Gast)


Lesenswert?

sry für die Tippfehler

von Karl H. (kbuchegg)


Lesenswert?

Nette Mann schrieb:
> Also weil der Lienear oder Schaltoder wat weis ich Regler mit ner zu
> hohem Frequenzregelt, erträgt das mein LCD zwar ne Minuter aber danach
> ist Sabbat?

Kann sein, muss nicht sein.
Kann auch sein, dass im Schaltregler irgendwas faul ist, oder die Spule 
schön langsam in die Sättigung geht oder irgendsowas.

Daher: probiers aus!
3 Stück Batterien in Serie, Mega + LCD drann und laufen lassen.
Wenn da nach 1 Minute nichts passiert, verdichten sich die Hinweise dass 
es was mit der Spannungsversorgung zu tun hat.

Warum ich drauf komme:
Es gibt softwaretechnisch keinen Grund, warum sich das LCD nach in etwa 
immer der gleichen Zeit aufhängt.


> So wie das man die Hand über ner Flamme zwar verträgt aber
> nach nen paar sek wegzieht? MUSS ich nu mir was neues einfallen lassen?

Jetzt geh erst mal auf Fehlersuche.
Solange du nicht weißt, was denn nun genau das Problem ist, hat es 
keinen Sinn schon auf Abhilfe zu sinnen. Erst mal muss die Baugruppe 
feststehen, die alles verursacht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nette Mann schrieb:
> Sperrdiode beim Relais ist gesetzt.
Nur zur Terminologie: du meinst sicher eine Freilaufdiode...

von Nette M. (nette-mann)


Lesenswert?

3 Batterien  = 4,3 Volt

Zeigt er gar nichts an

Atmega macht auch nichts

100nF bringen ebenfalls nichts direkt am LCD

von Stulle (Gast)


Lesenswert?

moin

vielleicht solltest du mal bei MCS vorbeischauen und dir die Bascom 
Hilfe reinziehen !
Denn du hast da was vergessen bei deinem code Fragment ,z_Bsp, den 
Befehl

Initlcd
....

von Karl H. (kbuchegg)


Lesenswert?

Stulle schrieb:
> moin
>
> vielleicht solltest du mal bei MCS vorbeischauen und dir die Bascom
> Hilfe reinziehen !
> Denn du hast da was vergessen bei deinem code Fragment ,z_Bsp, den
> Befehl

Ausnahmsweise dürfte er sogar die Doku gelesen haben (oder einfach nur 
Glück gehabt haben)

>
> Initlcd
> ....
1
Initializes the LCD display.
2
3
Syntax
4
5
INITLCD
6
7
Remarks
8
9
The LCD display is initialized automatic at start up when LCD statements are used by your code.
10
If fore some reason you would like to initialize it again you can use the INITLCD statement.

von Nette M. (nette-mann)


Lesenswert?

Zitat:

INITLCD

Dieser Befehl initialisiert das Display. INITLCD braucht man im 
Normalfall nicht, da Bascom das Display automatisch beim Start 
initialisiert. Aber INITLCD bietet sich an, um zwischendurch das Display 
zurück zu setzen, falls etwas (z.B. ein Relais) die Displayausgabe 
gestört hat. Das Initialisieren dauert ein wenig und sieht manchmal auch 
nicht besonders gut aus. Deshalb sollte man es nicht übertreiben und das 
Display nur nur im Notfall alle paar Minuten und im Normalfall nur alle 
paar Stunden neu initialisieren. Wie oft du INITLCD wirklich einsetzt, 
musst du natürlich selber entscheiden. Wenn Störungen öfter auftreten, 
dann solltest du dir vielleicht lieber Gedanken über eine bessere 
Entstörung der Schaltung machen.

Zu deutsch und in der Praxis:

Das LCD wird komplett leer und das öfters die Sekunde, ich kenne den 
Befehl aber bei Bascom ist das automatisiert. ERst informieren dann 
rumklugsscheißen ;) flackert dann nur

Habs LCD getauscht, funktioniert nun 1A

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.