Serial & I2C LCD Display Controller (BV4619)
This can form a complete user interface using either Serial or I2C communication it will attach to any LCD display that uses the HD44780 or similar controller. It is user configurable for any type of character display. The user had direct control of the display via either a serial or I2C interface. For example 1x8, 2,8, 1x40, 16x2, 16,2 and 20x4.
The serial interface will also allow more then one device to be connected to the same bus.
Documentation site with the latest information including data sheet.
The is provision for up to a 4x4 (16 key) keypad. The keypad is connected to the controller via the pads provided. There is also an interrupt output that will go low when there is any key in the buffer and goes high when all the values have been removed from the buffer. The host software need not monitor the controller constantly as any key pressed will be captured by the controller.
There are TWO choices of interface, Serial and I2C. The controller firmware will automatically choose the correct mode of operation depending on which interface is connected.
The controller works form 3V to 5V and so is suitable for 3.3V logic, however most displays require 5V. It also comes with the fixing kit and two angled connectors so that either interface can be used.
(Supplied with connectors)
- Serial Input and I2C input
- Baud rate selectable, default 9600
- I2C up to 400KHz
- Addressable serial interface
- Simple commands, full LCD control
- 65 byte input buffer
- 16 byte keypad buffer
- keypad up to 16 switches (4x4)
- Supply voltage 3.3 to 5V DC
- Current: 6mA @ 4.7V
- Size: 55mm x 24mm
The serial interface uses 'Serial Version 3' which is a simple protocol for sending serial information to another device. It works by sending a command and then optionally receiving information. When sending data it is always terminated by CR (13). as an example to get the ID of this device the following bytes are sent and received: 114, 68, 13 // send command 52, 54, 49, 57, 6 // bytes returned.
It looks like this on a terminal, the ID '4619' has been returned.
This also uses a simple command structure. To do the same as above the following would be sent and received:
Send device read address (0x73)
Send read ID command 0xa1
Get 2 bytes.
Using notSMB (Python) the command would be devId = bus(0x39,[0xa1],2)
Using the BV4221 would be s a1 r g-2 p
What you get
The controller can be purchased for connecting to your own LCD display or it can be purchased with a suitable LCD display. The items come as a kit and so some soldering will be needed.