1 -------------------------------------------------------------------------------
2 Hitachi HD44780 display controller, 4-bit mode, initialization sequence
3 -------------------------------------------------------------------------------
5 This capture contains the initialization sequence of an Hitachi HD44780
6 display controller which is very popular for 2x16, 4x20, and similar
7 character oriented display modules.
9 The specific hardware setup that got recorded uses 4-bit mode, which
10 means that data gets communicated on lined D4-D7 only, and D0-D3 are
17 The capture was taken with an ASIX Sigma2 logic analyzer, sampling 8
18 logic channels at a rate of 50MHz:
22 1 IR (infrared remote control, idle, not HD44780 related)
23 2 RS (selects "commands" and "display data" mode)
24 3 RW (read/write, always low for write, fixed in HW)
25 4 E (enable, falling edge clocks data transfers)
35 See https://en.wikipedia.org/wiki/Hitachi_HD44780_LCD_controller for a
36 list of display controller commands, and especially the 'Mode Selection'
37 section which discusses the synchronization phase.
39 The sequence demonstrates the following steps:
40 - Synchronize to the LCD controller, cope with it being in any arbitrary
41 state from previous execution.
42 - Configure the LCD controller hardware to 4-bit mode, clear the screen
43 and setup other parameters.
44 - Print two text labels: "Hello LCD" and "counter", start printing
47 When a dedicated HD44780 decoder is not available, the 'parallel' decoder
48 can extract the most basic information: Clock on E (falling edge), D4-D7
49 of the display corresponds to D0-D3 of the decoder (D4-D7 of the decoder
50 are not connected). Words consist of 8 bits (span 2 bus cycles), and are