Date: Fri, 31 Oct 1997 17:32:32 +0530 (GMT+5:30) From: "INTERFACE DESIGN ASSOCIATES PVT. LTD." To: ganswijk@xs4all.nl Dear Jaap, We had received a mail from one Mr. Chiel De Jong asking us for some details. I am enclosing a small write-up on the serial port based LCD display controller developed by us. Regards. iyer K.S. ============================================================================ INTERFACE DESIGN ASSOCIATES PVT. LTD ( Your position control partner ) 302, ANKUR, GREENFIELDS, SECTOR 16A, VASHI, NAVI MUMBAI 400 705. INDIA. CONTACT : TEL 91-22-7655702,7655904 FAX 91-22-7650519 E-MAIL : intface@bom2.vsnl.net.in ============================================================================ Description of Serial Port based LCD Driver The LCD displays are commonly provided with standard controller with a parallel interface. This parallel interface generally consists of a 8 or 4 bit data bus, and signals for strobing, addressing and read/write selection. However, this parallel interface has many shortcomings as under: 1. The number of i/o lines required for interfacing to the cpu is large. 2. The distance of the lcd display from the main cpu should be necessarily short so that bus timing requirements are not violated. 3. The parallel interface is noise prone and the lcd display may hang or display arbitrary characters once in a while. 4. A delay has to be provided between each instruction passed on to the display controler. During this period the cpu is busy waiting out this delay. All these problems are sorted out by the simple mechanism of providing an additional controller on the parallel bus at the LCD end and interfacing this controller (called the controller from now on) to the main cpu (called the cpu from now on) through a serial port. The serial interface discussed here is a unidirectional bus, with data flowing from the cpu to the controller. Electrical specs are the same as standard RS232-C. The cpu directs the controller and hence the display through a series of command messages which allow: 1. Initialising the display - clear the display and take the cursor to the 0,0 position. 2. Setting cursor position - Set the cursor at the required row and column. 3. Display a single character - Display a single character at current cursor position. 4. Display a string - Display a string of characters from current cursor position. 5. Set cursor type - Standard lcd display controllers offer two cursor types - an underscore or a square. All the command messages are framed with a check sum byte to minimise errors. Driver software on an IBM PC is also available as a standard obj file for all of these functions. The LCD Displays we use are driven by HD44780 controller.