LCD i 4-bitars interface mode, irriterande

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

LCD i 4-bitars interface mode, irriterande

Inlägg av mri »

Har lekt några dagar med en 2x16 teckens LCD, styrd från en MCU. LCDn heter YJ-162A och har en KS0066U controller. 44780 kompatibel antar jag. Den fungerar fint. Jag kan skriva text både i 8 och 4 bitars interface mode. Jag tänkte köra den i 4-bitars interface mode via ett skiftregister för att spara på I/O pinnarna på MCUn.

Från power-up är LCDn i 8-bitrs mode och man börjar initieringen med att sätta den i 4-bitars mode. Det här fungerar fint det också. Vad som irriterar mig är att när jag resettar MCUn nästa gång, vilket ju händer ganska ofta när jag debuggar koden i MCUn, utan att ta bort strömmen till LCDn, då är ju LCDn redan i 4-bitars mode och den nya initieriengen går åt skogen. Vad som händer är att initieringskoderna misstolkas så att LCDn bara använder 1 textrad.

Är det här ett känt fenomen? Finns det nåt sätt att komma runt det? Dvs oberoende av om LCD redan är i 8 eller 4 bitars mode, få initieringen korrekt. Och ja, jag är för lat för att knäppa av strömmen till LCDn för varje reset.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Koppla då spänningsmatningen till -MCLR på så sätt att den bryts när du resetter.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Hmm.. ok, där var en ide. Tack! Jag kan ju styra matningsspänningen till LCDn från en ledig pinne på skiftregistret. Bakgrundsbelysning tänkte jag ju styra på samma sätt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Kan du inte i initieringen sätta om den först till 8-bit mode ?
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

När den väl är initierat till 4/8-bit mode kan man inte ändra den till motsatsen utan en reset.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7466
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Om det är en Hitachi-standard modul så uppfattar jag databladet som att man skall kunna göra en softreset. Har aldrig provat att göra det i 4-bit mode eftersom jag inte har använt det läget någon gång, så reservation för att det inte går då.

Reset görs genom att skriva ett reset-kommando 3 gånger och med viss väntan mellan varje gång. Kommandot är utformat så det skall tokas rätt oavsett i vilken mode displayen står. Läs i databladet och prova.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jag ser inget i HD44780 kommandona som skulle hindra att
man från 4-bits mode sätter om den till 8-bits mode, men jag
ser i och för sig inte varför man skulle behöva göra det).

Dessutom, eftersom att sätta om den till 4-bits mode är en
av de första saker man gör i alla fall (före övrigt "initiering"),
vad är det som inte fungerar ?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46967
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

Har aldrig haft problem att ominitiera en LCD i 4-bitars mode.

Däremot bör du kanske tömma skiftregistret innan du påbörjar initieringen
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7466
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Jag gissar på att problemet är att han inte väntar de rätta tiderna mellan reset-kommandona, eller helt har missat denna del av initieringen.

Posta init-koden, det är bästa sättet att kunna få ett tydligt och exakt svar på vad som har blivit fel.
Senast redigerad av Marta 25 mars 2007, 13:06:22, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

sodjan: jag läste databladet igen och det är FORMATET man inte kan ändra.... så tydligen kan man byta friskt mellan 4 och 8-bit interface. My bad.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Hey! Tack för tipsen, nu fungerar det! Jag utgick från databladet till KS0066U. När jag nu kollade på HD44780 ingår där fler steg och lite annan timing i initieringen. Bl.a. att först alltid sätta den i 8 bitars mode och sen gå över till 4 bitars.
Finemang! Där spara jag in 1st FET :D
Skriv svar