Just letting everyone know of a problem that I had interfacing an LCD with an STK500 board.
I initially tried taling to the LCD via the 4-bit mode. This attempt failed. Thinking that it may have been my cabling i made a new connector using the 8 bit mode. I managed to get this working relatively successfully, however it occassionaly didnt initialise properly and had to get reset a couple times to get it working.
With this success, I then dropped back to the 4-bit mode because I knew there was no point in wasting IO's. I carefully made a new 4-bit cable. I tried using CodeVisions built in LCD library but it still didnt work, so I wrote my own routines being very generous with the delays in between the comands. I managed to initialise it but it was still unstable. At this point I was getting rather frustrated ( as you do ) but determined to get to the bottom of it, because I knew the CodeVision libraries worked.
After much checking and rechecking, I found that the data going to the LCD was switching from 0.8V to 5.8V relative the the LCD's ground. I was using a backlit LCD so i powered it seperately not wanting to overload my new STK500 board.
Upon seeing this 0.8V difference I tried powering the LCD directly from the STK500's power supply. I worked first time. Even though the specs of the LCD say that this offset voltage swing should work, it didnt. Another leson for me not to take spec sheets for gospel.