Ik ben een klokje aan het maken met een PIC16F628 en een LCD Module 2x20.
Als ik gegevens wijzig op het display, dan gaat dat een tijdje goed.
Na enkele tijd (15....120 Sec) loopt het display (of de verbinding) vast, en wordt de tekst op dit display niet meer bijgewerkt !
Soms staan er wat rare tekens op...
Display wordt met 4 Datalijnen (4...7) aangestuurd.
Ik heb al van alles geprobeerd:
-kabels tussen de PIC en het Display ingekort
-Diverse wachttijden ingebouwd.
-Condensatortjes geplaatst.
-Datalijn 0 t/m 3 aan de massa gehangen.
-Datalijn 0 t/m 3 aan de 5v gehangen.
-van Datalijn 0 t/m 3 de kabels verwijderd.
-Pot.meter van 1 K gebruikt t.b.v. Contrast.
-Contrast aan massa gehangen.
-Ctje van 330nf MKT op voeding aansluiting van Display. module geplaatst.
Maar het probleem blijft !
Kent iemand dit probleem of nog mooier de oplossing ?
Heeft iemand ASM code die goed werkt, zodat ik kan testen of daar het probleem zit ?
Jonathan
"Theorie is alleen te rechtvaardigen als 'n vorm van praktijk. De praktijk staat niet terecht voor 't hooggerechtshof van de theorie" (Stephan Toulmin)
heb ik ook nog meermaals gehad
problemen
- een van de datalijnen gebruik je opeens voor iets anders
- databyte komt door fout in code uit een register die niet bestaat of een vast geheugenregister
EDIT
schrijf-lees tijden niet respecteren
[Bericht gewijzigd door Jonathan op ]
weerstand van de datalijn naar de gnd ?
stoptekens voor de lcd die niet worden verzonden in bepaalde situatie ?
ingekorte draden ? Hoe lang zijn die dan nog ?
Omdat ik nog nooit met een LCD display gewerkt heb, en het klokje al bestaande (en geteste) code is.
Twijfel ik aan 2 dingen:
-LCD code is niet juist, of ik gebruik deze niet op de juiste manier
-Hardware, maar daar heb ik al vanalles geprobeerd.
De draadjes zijn nou ca. 10cm. lang
Weerstand van de datalijn naar de gnd ?
Nee, de data lijnen zitten zonder weerstanden aangesloten.
Edit:
Weerstanden van 10K geplaatst tussen de datalijnen en GND,
maar helaas het display/PIC/Verbinding loopt nog vast.
[Bericht gewijzigd door MMSoft op ]
Ook nog even weerstanden (10K) geplaatst tussen:
Enable - GND
R/W - GND
RS - GND
Helaas, het probleem is er nog...
Wie heeft een goed stuk ASM code, zodat ik in die hoek eens kan testen ?
Turbokeu
Golden Member
I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"
fout zoek trucje wat ik vaaak gebruik:
zet een paar leds op vrije poortjes.
en zet aan het begin en einde van je routine waarvan je denkt
dat het fout gaat BSF led en BCF led de led zal opflitsen als hij de routine in gaat en uitgaan als hij deze verlaat.
zo weet je of de pic de routine nog uitvoert, of dat je het elders moet zoeken.
succes.
Dat kan ik inderdaad ook nog proberen !
Turbokeu: Graag ook wat aansluit gegevens, ben al het een en ander aan het proberen, maar werkt nog niet !
Je moet in ieder geval geen lcd poorten die niet op de microcontroller zitten direct op de voedingsspanning zetten, maar altijd via weerstanden (aangezien ze ook uitgang kunnen worden en er dan bij het opstarten dus vervelende dingen kunnen gebeuren). Ik zou 1K nemen, 10K heb ik al eens problemen mee gehad (trok de poorten niet hard genoeg naar beneden).
Misschien is het ook handig om even dmv een led bijvoorbeeld of je uC nog wel data verstuurt naar het lcd.
[Bericht gewijzigd door Bliksem op ]
Als ik schema's waar een LCD op de 4 databit manier wordt gebruikt bekijk, dan zijn de overige datalijnen niet aangesloten.
Dus ik heb ze nu ook maar los hangen.
Maar je hebt natuurlijk gelijk gewoon aansluiten op de 5v of de 0v is niet verstanding.
Maar als je al vele uren aan het hobby bent dan probeer je op een gegeven moment alles....
Ik probeer nu de hex file die ik van Turbokeu heb gehad aan de praat te krijgen, maar omdat ik geen aansluit gegevens heb, schiet dat helaas ook niet erg op.
Is er nog iemand die aan stuk werkende code heeft ?
Ganzz
-
Op 5 februari 2006 18:07:22 schreef MMSoft:
Als ik schema's waar een LCD op de 4 databit manier wordt gebruikt kijk, dan zijn de overige datalijnen niet aangesloten.
Dus ik heb ze nu ook maar los hangen.
Maar je hebt natuurlijk gelijk gewoon aansluiten op de 5v of de 0v is niet verstanding.
Maar als je al vele uren aan het hobby bent dan probeer je op een gegeven moment alles....Ik probeer nu de hex file die ik van Turbokeu heb gehad aan de praat te krijgen, maar omdat ik geen aansluit gegevens heb, schiet dat helaas ook niet erg op.
Is er nog iemand die aan stuk werkende code heeft ?
wat voor iets wil je dat de code laat zien, steed iets anders om de xx aanstal sec?
Ganzz
-
Ik maak wel effe een hexje die om de 5sec het scherm update en 2 ledjes
EDIT1 oeps paste niet in de pic, effe wat dingen veranderen
EDIT2 is nu aan het testen of hij werkt...
EDIT3 Het werkt
porta.1 een led naar 5v (weerstand is niet nodig als je led 25mA leuk vind)
PortB.2 = Enable LCD
PortB.3 = RS LCD
PortB.4 = DB4 LCD
PortB.5 = DB5 LCD
PortB.6 = DB6 LCD
PortB.7 = DB7 LCD
en HIER kun je de hex file downloaden
EDIT 4 kies save target as.
als hij klaar is blijft led branden, hij test 2,5 minuten llang
[Bericht gewijzigd door Ganzz op ]
Wat doe ik met 'RW' ?
Op 5 februari 2006 19:02:01 schreef Ganzz:
[...]wat voor iets wil je dat de code laat zien, steed iets anders om de xx aanstal sec?
Het gaat om een Klokje:
De tijd, datum, de dag van de Week, Jaartal.
Wel/geen DCF ontvangst.
Edit:
RW aan de massa dus !
Display werkt prima.....
Klok software is ook goed (getest met LED display)
Blijft alleen de LCD aanstuur code over...
Wie wil er een stukje 'Goede' ASM Code posten/sturen ?
[Bericht gewijzigd door MMSoft op ]
Wat wil je hebben? Gewoon een stukje asm die in 4 bit een lcd aanstuurt? Dat heb ik nog wel liggen voor een 16F628.
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
De poorten D0 t/m D3 kun je beter niet laag maken maar hoog.
Sterker nog, helemaal niet aansluiten want de HD44780 heeft een pull-up van zichzelf (meet de pinnen maar eens als ie in WRITE mode staat.)
Bliksem: Zou je dat willen posten of sturen ? (Alvast bedankt).
Frits Kieftenbelt: Niet aansluiten werkt inderdaad goed !
Ik moet nog veel leren over deze Display's.
Ben al druk aan het zoeken geweest, en heb vanalles gevonden, maar begrijp nog niet goed waarom ik iets UIT het display moet lezen.
Als ik er toch iets naar toe stuur, en lang genoeg wacht, dan mag je er toch vanuit gaan dat het verwerkt is !
Of denk ik nu te simpel ?
En hoe vaak/snel mag ik er iets naar toe sturen ?
Nu stuurde ik er erg vaak data naar toe, zovaak dat wat ik er naar toe stuurde er al stond.
Waarschijnlijk kan ik beter controleren of iets 'Nieuw' is er er dan pas naar toe sturen, wat is jullie mening hierover ?
[Bericht gewijzigd door MMSoft op ]
zekerf is het beter om alleen te schrijven als er iets te schrijven valt.
Nutteloze info versturen is zonde van je controller tijd.
schrijf tijden. in theory zou je als je de timing respecteerd er mee weg moeten kunnen komen door alleen maar te wachten.
de veiligste methode is echter om de busy bit te pollen zo kan je heel snel schrijven zonder dat je display overspannin raakt.
Turbokeu
Golden Member
I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"
Op 5 februari 2006 18:07:22 schreef MMSoft:
Als ik schema's waar een LCD op de 4 databit manier wordt gebruikt kijk, dan zijn de overige datalijnen niet aangesloten.
Dus ik heb ze nu ook maar los hangen.
Maar je hebt natuurlijk gelijk gewoon aansluiten op de 5v of de 0v is niet verstanding.
Maar als je al vele uren aan het hobby bent dan probeer je op een gegeven moment alles....Ik probeer nu de hex file die ik van Turbokeu heb gehad aan de praat te krijgen, maar omdat ik geen aansluit gegevens heb, schiet dat helaas ook niet erg op.
Is er nog iemand die aan stuk werkende code heeft ?
Mario,
Ik heb je ondertussen een PDF'je met het schema én de ASM-code opgestuurd.
Heb je het al ontvangen?
De 4 ongebruikte datalijnen sluit ik ook niet aan.
De LCD-code die ik gebruik polt het busy bit, dus geen timing problemen.
CD 
Turbokeu: Er ontbreekt LCD4.ASM, ik heb het idee dat daar de LCD routines inzitten.
Het wordt trouwens nog een hele klus om uit deze code het LCD aanstuur deel te filteren heb ik het idee.
Heeft iemand niet de losse LCD aanstuur code met een klein voorbeeldje hoe ik iets naar de LCD stuur met busy controle ?
Turbokeu
Golden Member
I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"
Op 6 februari 2006 20:30:37 schreef MMSoft:
Turbokeu: Er ontbreekt LCD4.ASM, ik heb het idee dat daar de LCD routines inzitten.
Het wordt trouwens nog een hele klus om uit deze code het LCD aanstuur deel te filteren heb ik het idee.Heeft iemand niet de losse LCD aanstuur code met een klein voorbeeldje hoe ik iets naar de LCD stuur met busy controle ?
Heb juist alle ontbrekende routines opgestuurd via mail.
Er zijn feitelijk maar drie te gebruiken LCD commando's in mijn routines:
- LCD_INIT: éénmalig te gebruiken in je initialisatieroutine om het LCD te initialiseren.
- SEND_CMD: om een commando naar het LCD te versturen
- SEND_CHAR: om een karakter naar het LCD te versturen
Al de rest wordt door LCD4.ASM verzorgd.
CD 
PS: Sorry, 't was al een tijdje geleden dat ik deze routines gebruikt en ontwikkeld heb...
[Bericht gewijzigd door Turbokeu op ]