]> sigrok.org Git - sigrok-dumps.git/blame - display/hd44780/README
hd44780: Add 9 additional dumps
[sigrok-dumps.git] / display / hd44780 / README
CommitLineData
3093302b
GS
1-------------------------------------------------------------------------------
2Hitachi HD44780 display controller, 4-bit mode, initialization sequence
3-------------------------------------------------------------------------------
4
5This capture contains the initialization sequence of an Hitachi HD44780
6display controller which is very popular for 2x16, 4x20, and similar
7character oriented display modules.
8
9The specific hardware setup that got recorded uses 4-bit mode, which
10means that data gets communicated on lined D4-D7 only, and D0-D3 are
11not connected.
12
13
6ace47bf
B
14Logic analyzer setup (hd44780-reset-init-hello.sr)
15--------------------------------------------------
3093302b
GS
16
17The capture was taken with an ASIX Sigma2 logic analyzer, sampling 8
18logic channels at a rate of 50MHz:
19
20 Probe HD44780
21 -------------------
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)
26 5 D4 (data lines ...)
27 6 D5
28 7 D6
29 8 D7
30
31
6ace47bf
B
32hd44780-reset-init-hello.sr
33---------------------------
3093302b
GS
34
35See https://en.wikipedia.org/wiki/Hitachi_HD44780_LCD_controller for a
36list of display controller commands, and especially the 'Mode Selection'
37section which discusses the synchronization phase.
38
39The 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
45 counter values.
46
47When a dedicated HD44780 decoder is not available, the 'parallel' decoder
48can extract the most basic information: Clock on E (falling edge), D4-D7
49of the display corresponds to D0-D3 of the decoder (D4-D7 of the decoder
50are not connected). Words consist of 8 bits (span 2 bus cycles), and are
51in big endian format.
6ace47bf
B
52
53
54Logic analyzer setup (other files)
55----------------------------------
56
57The capture was taken with a Saleae Logic clone (mostly at 200kHz):
58
59 Probe HD44780
60 -------------------
61 1 RS (selects "commands" and "display data" mode)
62 2 E (enable, falling edge clocks data transfers)
63 3 D4 (data lines...)
64 4 D5
65 5 D6
66 6 D7
67
68
69hd44780-blink.sr
70----------------
71
72Arduino firmware based on the LiquidCrystal example Arduino Sketch.
73
74This is what the decoded data should look like:
75
76 - initialization
77 - write "hello, world!"
78 - toggle blinking every 3 seconds
79
80
81hd44780-cursor.sr
82-----------------
83
84Arduino firmware based on the LiquidCrystal example Arduino Sketch.
85
86This is what the decoded data should look like:
87
88 - initialization
89 - write "hello, world!"
90 - toggle cursor every 0.5 seconds
91
92
93hd44780-customcharacter.sr
94--------------------------
95
96Arduino firmware based on the LiquidCrystal example Arduino Sketch.
97
98This is what the decoded data should look like:
99
100 - initialization
101 - define special characters: heart, smiling face, unhappy face, stickman
102 with arms low, stickman with arms up
103 - write "I {heart} Arduino {smiling face}" and " {stickman with arms low}"
104 - toggle second line between " {stickman with arms low}" and
105 " {stickman with arms up}" about (!) every 0.9 seconds
106
107
108hd44780-font.sr
109---------------
110
111Arduino firmware based on the LiquidCrystal example Arduino Sketch.
112
113This is what the decoded data should look like:
114
115 - initialization
116 - define special characters: heart, smiling face, unhappy face, stickman
117 with arms low, stickman with arms up
118 - every about 250ms a set of 2 * 16 characters are written to the display,
119 starting at 0
120
121
122hd44780-power.sr
123----------------
124
125Arduino firmware based on the LiquidCrystal example Arduino Sketch.
126
127This is what the decoded data should look like:
128
129 - initialization
130 - write "hello, world!"
131 - toggle display power every 0.5 seconds
132
133
134hd44780-shift.sr
135----------------
136
137Arduino firmware based on the LiquidCrystal example Arduino Sketch.
138
139This is what the decoded data should look like:
140
141 - initialization
142 - write "hello, world!"
143 - repeats:
144 - shift text to the left until it is outside the view
145 - shift text to the right until it is outside the view
146 - shift text to the left until it is where it was before shifting
147
148
149hd44780-shiftcursor_204.sr
150--------------------------
151
152This is what the decoded data should look like:
153
154 - initialization
155 - write "hello, world!"
156 - using cursor shifts it replaces the ! by ?, w by W and h by H, so it is
157 "Hello, World?" in the end
158
159
160hd44780-textdirection.sr
161------------------------
162
163Arduino firmware based on the LiquidCrystal example Arduino Sketch.
164
165This is what the decoded data should look like:
166
167 - initialization
168 - write "abcdefghijklm"
169 - continue to the left until "s"
170 - continue to the right until "z"