You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
devices/hd44780/README.md

2.6 KiB

Hitachi HD44780 Package

Overview

The Hitachi HD44780 is an LCD driver chip. It's used in a variety of text LCD displays. The datasheet is available here:

https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

Generally, there are three kinds of displays that use this chip.

  1. A raw display. This is a board with a row of pin connectors at the top. It's made for interfacing directly to GPIO pins. This is the most complicated method of using the LCD because you have to wire a minimum of 6 GPIO pins (4 data, 1 reset, 1 enable) and 2 power pins to make it work.

There are also complex initialization routines that have to be performed. This is further complicated by having specific initialization calls depending upon whether the device is connected to 4 data lines, or 8 data lines.

  1. A backpack display. With this type of LCD display, an I2C, serial, or SPI interface is provided. This type of display is easier because there are fewer pins, but the complex intialization remains. Examples of backpack interfaces include The Adafruit I2C/SPI backpack (MCP23008/74HC595D), the generic LCDXXXX/PCF8547T backpack, etc.

  2. The third and final variety is the "Intelligent" display. These displays have a micro-controller that is connected to the LCD chip. Typically these intelligent displays support multiple I/O methods and the micro-controller handles the LCD initialization/communication.

Examples of this kind of display would be the SparkFun SerLCD display, the MatrixOrbital LK2047T, the AdaFruit USB+Serial Backpack etc.

Interfacing Notes

The driver package is designed to use the gpio.Group interface. This allows the LCD driver to be agnostic about the physical connection between the display and the host device. Any host/expander that supports the periph.io/x/conn/v3/gpio.Group interface can be used to easily drive the LCD display.

Hardware Notes

DO NOT attempt to source VCC for the unit backlight, or sink VCC to ground. The backlight draws ~250ma of current which exceeds the current capability of GPIO pins. It will permanently damage your device. If you would like to control the backlight, connect a GPIO pin through a 1K Ohm resistor to a transistor (2N2222 or equivalent).

Troubleshooting

If nothing displays at all, check the contrast. Adjust the contrast control until the 5x7 dot grid on the display is visible.

If the first row contains blocks of dots, and the other rows are blank, then the initialization of the device failed. Check IO pins are connected properly.

If the text is garbled, verify the gpio.Group is configured and the IO Pins are connected to the right pins of the LCD display.