Hi all, 1st. I'm succesfully initializing the LCD using the waiting secuence, I mean, not sending tree times some commands. 2nd. I use the BF reading when reading the cursor position, to wait for a write operation's end. 3th. So the Displays was already initialized and written... This display with the KS0066 also does some other weird stuff; I'm putting HH:MM:SS on the display and re-writing everithing each second. It works fine in the old display, but in the new one, it seems to shift the display contents to the right when trying to update the time... Ohhh well, Ill keep on the track! Mauricio Jancic Janso Desarrollos (54) 11 4542 3519 Republica Argentina Microchip Consultant Program Member -----Original Message----- From: pic microcontroller discussion list [mailto:PICLIST@MITVMA.MIT.EDU] On Behalf Of Ian Chapman Sent: Lunes, 09 de Junio de 2003 7:09 To: PICLIST@MITVMA.MIT.EDU Subject: [EE]: Differences betwen KS0066 and HD44780 (changed tag from "[OT]" to "[EE]:" and added some more thoughts below) Mauricio Jancic wrote: >> I'm having some trouble with the Winstar LCDs. I have designed a >>system that uses the WM-C2002M LCD model, made by Winstar. It claims >>to have a HD44780 or compatible controller. >> Now, I have bought another LCD with "the same specs" but with >>another serial number: WH2002A-YGB-JT wich it is suposed to have a >>KS0066 or similar controller. Now, both contrelles are suposed to be >>similar, but I cant make the one with the KS0066 work all right. I >>cant read, for example the BF (busy flag) Ian Chapman wrote: >I used to work for an LCD manufacturer, and this problem is often >reported by people moving on from displays with "original" HD44780 >controllers to "HD44780-compatible" controllers such as the KS0066. > >It *isn't* normally the fault of the new controller. The cause is >usually a timing problem in the design which drives the LCD module. >The old and new modules may have exactly the same specifications, but >experience shows that the "old" HD44780 is more forgiving of improper >timing of the control lines than newer controllers. > >I suggest that you check your design carefully to ensure that the >timing of the control lines adheres to the requirements in the data >sheet under all conditions. Another couple of thoughts, since you mentioned the busy flag: 1. The busy flag may not be valid during early stages of initialisation, so it is important that there is a minimum timing gap between the first few commands after power-up - it is not adequate just to check for BF=0 at this stage. Check out the reference below for a detailed explanation of what to do. Maybe on older controllers you can get away with polling the busy flag after power-up, but this is not "guaranteed" behaviour in the data sheet. 2. I have heard it suggested that a "wait for not busy" loop can be accomplished by setting the control lines to the static state E=1, RS=0, R/W=1, and just waiting for D7 to change. I haven't tried this, but even if it works with some controllers, I don't think it is guaranteed to work on all "HD44780-compatible" controllers. As far as I know, the only reliable way to check the busy flag is with a separate E cycle for each polling attempt. There's a good practical introduction to LCD interfacing (and lots of other helpful stuff) on Myke Predko's Web site at: http://www.myke.com/lcd.htm ... or check out the data sheet for the display module in question. I hope this helps. Best regards. -- Ian Chapman Chapmip Technology, UK -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body