EmbeddedRelated.com
Forums

write characters on a HD44780 controlled LCD display

Started by Unknown October 3, 2006
hi there

i'm writing data to a HD44780 controlled LCD display with a PLD
programmed in VHDL. but no data appears at all. the timing must be ok,
as when i push the reset button on the development kit, the data
appears on the screen, but only while i push the button.

after the initialization cycle (write "00111000" three times with
appropriate timing, then "00111000" "00001111" "00000001" "00000110") i
just write the data (rs high and rw low).

has anyone had the same problem? do i have to finish the instruction
somehow with an instruction before the characters are shown on the
display?

thanks in advance for any help, which is very much appreciated. have a
nice day


toto

tthurnherr@gmail.com schrieb:
timing must be ok,
> as when i push the reset button on the development kit, the data > appears on the screen, but only while i push the button. >
How is the LCD connected - 4 bit interface? As far as I remembember you have the option of using an RW line or wait for a certain timeout. Do you use this RW line? /Roland -- In a perfect world, spammers would get caught, go to jail, and share a cell with many men who have enlarged their penisses, taken Viagra and are looking for a new relationship.
Roland Zitzke wrote:
> tthurnherr@gmail.com schrieb: > timing must be ok, > > as when i push the reset button on the development kit, the data > > appears on the screen, but only while i push the button. > > > > How is the LCD connected - 4 bit interface? As far as I remembember you have > the option of using an RW line or wait for a certain timeout. Do you use > this RW line? >
it is connected with an eight bit interface, the RW line is kept low, as i'm only writing to the lcd and don't need to read. to fulfill the timing requirements, i introduce some clock cycles, during which the pld doesn't do anything. the only thing i can imagine that i'm doing wrong is that my initialization sequence is not right, or that after writing the data in the internal DDRAM of the display, i have to send one more command to make it appear on the display.
<tthurnherr@gmail.com> wrote in message
news:1159917760.818809.271530@e3g2000cwe.googlegroups.com...
> it is connected with an eight bit interface, the RW line is kept low, > as i'm only writing to the lcd and don't need to read. to fulfill the > timing requirements, i introduce some clock cycles, during which the > pld doesn't do anything.
Some clock cycles? Without reading the busy flag, you need at least 40us delay between each write!!
> the only thing i can imagine that i'm doing wrong is that my > initialization sequence is not right, or that after writing the data in > the internal DDRAM of the display, i have to send one more command to > make it appear on the display.
No you don't. Every character appears immediately. But you need to observe a) the write cycle timing ( roughly speaking: 1us per write cycle) AND b) a delay of at least 40us between each write cycle. And during initialisation, there are a few 15ms delays necessary. Meindert
tthurnherr@gmail.com wrote:
> Roland Zitzke wrote: > > tthurnherr@gmail.com schrieb: > > timing must be ok, > > > as when i push the reset button on the development kit, the data > > > appears on the screen, but only while i push the button. > > > > > > > How is the LCD connected - 4 bit interface? As far as I remembember you have > > the option of using an RW line or wait for a certain timeout. Do you use > > this RW line? > > > it is connected with an eight bit interface, the RW line is kept low, > as i'm only writing to the lcd and don't need to read. to fulfill the > timing requirements, i introduce some clock cycles, during which the > pld doesn't do anything. > > the only thing i can imagine that i'm doing wrong is that my > initialization sequence is not right, or that after writing the data in > the internal DDRAM of the display, i have to send one more command to > make it appear on the display.
First you say the data appears and then you say it doesnt! Make up your mind or nobody can help you.
problem solved, thanks for your help. and for all those who use an
altera development kit: you need to set the power supply enable pin to
high to make the display work. i think that's not obvious if you don't
read the user's manual very carefully.


Meindert Sprang wrote:
> <tthurnherr@gmail.com> wrote in message > news:1159917760.818809.271530@e3g2000cwe.googlegroups.com... > > it is connected with an eight bit interface, the RW line is kept low, > > as i'm only writing to the lcd and don't need to read. to fulfill the > > timing requirements, i introduce some clock cycles, during which the > > pld doesn't do anything. > > Some clock cycles? Without reading the busy flag, you need at least 40us > delay between each write!! > > > the only thing i can imagine that i'm doing wrong is that my > > initialization sequence is not right, or that after writing the data in > > the internal DDRAM of the display, i have to send one more command to > > make it appear on the display. > > No you don't. Every character appears immediately. But you need to observe > a) the write cycle timing ( roughly speaking: 1us per write cycle) AND b) a > delay of at least 40us between each write cycle. And during initialisation, > there are a few 15ms delays necessary. > > Meindert