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
write characters on a HD44780 controlled LCD display
Started by ●October 3, 2006
Reply by ●October 3, 20062006-10-03
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.
Reply by ●October 3, 20062006-10-03
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.
Reply by ●October 3, 20062006-10-03
<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
Reply by ●October 3, 20062006-10-03
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.
Reply by ●October 4, 20062006-10-04
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