Ik heb een LCD enigzins aan de praat gekregen mbv. een atmel 2313, maar om 1 of andere reden geeft hij niet altijd goed beeld.
Soms als ik hem aan zet blijft het beeld leeg, en moet ik de spanning een paar keer van de schakeling afhalen voordat hij weer normaal beeld geeft, maar vaak doet hij het gewoon normaal. De code van de atmel is in beide gevallen hetzelfde, ook de schakeling wordt niet veranderd...
Weet iemand waar dit aan zou kunnen liggen?
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Niet aan je programma of aan je scherm.
Het ligt gewoon aan je aansluitingen, draden los, slechte soldeerverbindingen of iets dergelijks.
Kan ook zijn dat je initialisatie niet helemaal goed loopt, d.w.z. te snel, het LCD kan het dan soms wel, maar meestal net niet afwerken. m.a.w. pas je wachtvariabelen eens aan.
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 15 augustus 2003 20:19:38 schreef Antoine:
Kan ook zijn dat je initialisatie niet helemaal goed loopt, d.w.z. te snel, het LCD kan het dan soms wel, maar meestal net niet afwerken. m.a.w. pas je wachtvariabelen eens aan.
Dat kan idd ook nog, maar dan zit die wel op het randje.
Probeer eens eerst je scherm spanning te geven en dan pas je controller.
sven
pointers don't kill programs, programmers kill programs
Op 15 augustus 2003 20:19:38 schreef Antoine:
Kan ook zijn dat je initialisatie niet helemaal goed loopt, d.w.z. te snel, het LCD kan het dan soms wel, maar meestal net niet afwerken. m.a.w. pas je wachtvariabelen eens aan.
Ditlijkt mij ook wel het meest logische. probeer al je delay-loops eens dubbel uit te voeren, als het dan wel stabiel werkt, weet je de fout met zekerheid
Dan zal ik die delay wel wat verhogen.
Bedankt voor de antwoorden! 
Edit:
Ik heb de delay flink verhoogd, en tot nu toe gaat alles goed... Maar soms wil ie het een dag goed doen, en dan
heeft ie weer een paar "reboots" nodig voordat ie het scherm aan de gang krijgt.
Wel wazig. In de datasheet stond dat ie maar 10ms nodig zou hebben... De delay loopt nou toch minstens 10x zo lang.
(Ik heb eerst 6x zo lang geprobeerd, maar dan kreeg ik nog af en toe een leeg schermpje. Het vreemde is dat dat schermpje dit dan een tijdje blijft doen, en dan is het in 1 keer weer voorbij en doet ie het weer normaal)
Op 15 augustus 2003 20:15:53 schreef Bastiaan:
Niet aan je programma of aan je scherm.
Het ligt gewoon aan je aansluitingen, draden los, slechte soldeerverbindingen of iets dergelijks.
Ik heb nog niks gesoldeerd, alles zit in zo'n prikbord gepropt. Maar ik weet niet hoe goed die prikborden zijn, misschien geleiden die niet goed genoeg voor dit soort dingen.
[Bericht gewijzigd door elmyst op ]
Ik heb nou nog wat zitten prutsen met die delay, maar soms krijg ik nog steeds een tijdje een leeg scherm, en daarna gaat het in 1 keer weer goed. Het maakt ook niet uit hoelang ik wacht met aansluiten, soms doet ie het als ik wakker wordt bijv. en soms niet.
Ik heb de delay nou op zo'n 100ms staan.
Ik gebruik alleen condensators van 22uF en 0.1uF, zou het
daaraan kunnen liggen? Ik laat de spanning altijd wegvallen voor een minuut ofso, dan zouden ze toch altijd leeg moeten zijn?
Ik las ergens op een site iets over "power coupling" ofso mbv. condensators. Wat is dat precies? Want die site ging er niet echt op in, en met google heb ik niet echt mazzel gehad. Zou dit het probleem kunnen zijn?
Edit:
Als het scherm leeg is, helpt het resetten van de avr ook niet. Ik moet een aantal keer de spanning eraf halen voordat hij het weer goed doet.
[Bericht gewijzigd door elmyst op ]
Confusion
There are only 10 types of people in the world - those who understand binary, and those who don't
De power-up delay is vrij hoog van zo'n display.
probeer eens eerst 500 ms te wacht voordat je het display initialiseerd.
sytse
Euh......
Grappig, ik heb precies het zelfde probleem, AVR 2313, lcd en ook dat ie het soms wel en soms niet doet. Ik heb ondertussen al van alles geprobeerd. 2 seconden startup tijd voor het lcd, lange delay loop tussen de initialisatie stappen, maar nix lijkt te helpen. als ik dan een paar keer de stekker erin en eruit doe dan gaat het ineens wel.
Ik hoop dat het je allemaal lukt dan kan ik misschien ook weer verder.
Sytse
Op 16 augustus 2003 17:53:51 schreef sytse:
Grappig, ik heb precies het zelfde probleem, AVR 2313, lcd en ook dat ie het soms wel en soms niet doet. Ik heb ondertussen al van alles geprobeerd. 2 seconden startup tijd voor het lcd, lange delay loop tussen de initialisatie stappen, maar nix lijkt te helpen. als ik dan een paar keer de stekker erin en eruit doe dan gaat het ineens wel.Ik hoop dat het je allemaal lukt dan kan ik misschien ook weer verder.
Sytse
Das inderdaad precies hetzelfde verhaal als hier.
Zou het misschien aan de avr kunnen liggen?
Ik gebruik trouwens 4bits voor die lcd, zou dat er misschien nog wat mee te maken kunnen hebben?
sytse
Euh......
Op 16 augustus 2003 18:41:15 schreef elmyst:
[...]
Ik gebruik trouwens 4bits voor die lcd, zou dat er misschien nog wat mee te maken kunnen hebben?
Me2
Ik las net een stukkie code waarin er niet met op de busybit gewacht wordt, maar de hele timing via delays verloopt.
http://www.tfs.net/~petek/atmel/freq/lcdrtns.inc
Misschien is dat de oplossing. Gewoon hard timen ipv flexibel met zo'n busywait 
Edit
Het viel me trouwens tijdje terug op dat wachten op die busybit weinig zin had, omdat die niet gezet leek te worden. Ik dacht dat het kwam doordat ik met 4bit zat te prutsen, maar misschien heeft het ook hier wel mee te maken...
[Bericht gewijzigd door elmyst op ]
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 16 augustus 2003 17:53:51 schreef sytse:
Grappig, ik heb precies het zelfde probleem, AVR 2313, lcd en ook dat ie het soms wel en soms niet doet. Ik heb ondertussen al van alles geprobeerd. 2 seconden startup tijd voor het lcd, lange delay loop tussen de initialisatie stappen, maar nix lijkt te helpen. als ik dan een paar keer de stekker erin en eruit doe dan gaat het ineens wel.Ik hoop dat het je allemaal lukt dan kan ik misschien ook weer verder.
Ligt dan toch echt aan jezelf hoor. Zo'n display werkt zoals het moet als je alles doet volgens de specs (datasheet). Ik heb al vaker LCD's aan een microcontroller gehangen (AVR, PIC en 8051) en dat gaat altijd perfect. Het is even proberen met die wachtlussen maar dan werkt het goed.
Op 16 augustus 2003 18:41:15 schreef elmyst:
Ik gebruik trouwens 4bits voor die lcd, zou dat er misschien nog wat mee te maken kunnen hebben?
Heeft er niks mee te maken.
Als je trouwens voor de 1e keer een display wilt aansturen kan je het beste gewoon met de 8 bits mode beginnen. Als je die werkend hebt en je hebt je code goed geschreven dan kun je heel makkelijk het omzetten naar een 4bits aansturing.
[Bericht gewijzigd door Bastiaan op ]
...tijdens de intitialisatie-routine kun je GEEN gebruik maken van 't busy-bitje. Dat begint pas betrouwbaar te werken als de hele init voltooid is... 
Weet je zeker dat je de initialisatie-volgorde van de registers juist hebt geprogg'd?
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 16 augustus 2003 19:29:48 schreef MNM(tm):
...tijdens de intitialisatie-routine kun je GEEN gebruik maken van 't busy-bitje. Dat begint pas betrouwbaar te werken als de hele init voltooid is...
Weet je zeker dat je de initialisatie-volgorde van de registers juist hebt geprogg'd?
Ik denk dat hij helemaal geen gebruik maakt van dat bitje. Ik gebruik zelf ook altijd een grote lus, zonder naar het bitje te kijken.
Weet niet of het er mee te maken heeft?
In de HG van 2003 (schakeling 095) staat een stukje over vreemde fouten met LCD's met een HD44780 controller in 4-bits mode.
Om deze fouten op te lossen leggen ze de 4 niet gebruikte datalijnen (D0..D3) via een 10k R aan de GND en niet rechtstreeks aan de GND of laten zweven.
sytse
Euh......
Op 16 augustus 2003 19:30:56 schreef Bastiaan:
[...]
Ik denk dat hij helemaal geen gebruik maakt van dat bitje. Ik gebruik zelf ook altijd een grote lus, zonder naar het bitje te kijken.
Dat bitje gebruik ik wel zal wel eens proberen om het weg te laten
Op 16 augustus 2003 19:59:37 schreef Hugo Welther:
-knip-
Om deze fouten op te lossen leggen ze de 4 niet gebruikte datalijnen (D0..D3) via een 10k R aan de GND en niet rechtstreeks aan de GND of laten zweven.
Hmm, ik laat inderdaad die 4 draden draden zweven,
ik zal wel even kijken of ik nog ergens een paar 10k weerstanden heb liggen
Edit
Het probleem is in ieder geval veranderd 
In plaats van een leeg scherm, krijg ik nou 4x een '<' in beeld, helemaal aan de rechterkant van het scherm(pje).
Moet er toch wel iets in mijn code fout zitten lijkt me.
Zal nog wel even spitten.
[Bericht gewijzigd door elmyst op ]
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 16 augustus 2003 21:49:02 schreef elmyst:
[...]
Edit
Het probleem is in ieder geval veranderd
In plaats van een leeg scherm, krijg ik nou 4x een '<' in beeld, helemaal aan de rechterkant van het scherm(pje).Moet er toch wel iets in mijn code fout zitten lijkt me.
Zal nog wel even spitten.
Bij het opstarten zie je de bovenste regel (of bovenste 2) wat donkerder worden dan de onderste, maar verder blijft het leeg. Totdat je zelf data neerzet.
Dat is iig de bedoeling 
Aedolon
Just face it: sometimes nobody envies you. There has to be a bottom and that bottom is probaly you. // http://www.amazon.com/o/registry/VWZ93N4Y6XQT
Op 16 augustus 2003 23:47:37 schreef Bastiaan:
[...]
Bij het opstarten zie je de bovenste regel (of bovenste 2) wat donkerder worden dan de onderste, maar verder blijft het leeg. Totdat je zelf data neerzet.
Dat is iig de bedoeling
^^ idd