THE DESIGN CYCLE
at a maximum speed of 115,200 bps using RS-232 and
400 Kbps utilizing the I2C protocol. An industry standard
RS-232 interface IC converts the AVR USART TTL signals
to EIA levels. The panel also allows the AVR USART to
speak directly with another microcontroller USART using
TTL signals only. The selection of RS-232, TTL, or I2C
communication links falls under the control of the
Protocol Select Jumpers. As you can see in Photo 2, the
panel is jumpered for RS-232 operation.
The firmware contained within the ATMEL AVR micro-controller provides programmatic control of the fonts,
backlight, and contrast. The GLK240128-25 also features a
25-key matrix keypad interface. A quick look at Photo 3
shows us that the communications and power intercon-nects can terminate at either a standard nine-pin D-shell
connector or at a four-pin diskette drive power interface.
Multiple power supply voltage levels are available and
depend on the model you order. The hardware you see in
Photo 3 includes an optional voltage regulator that allows
operation between 7 VDC and 15 VDC (V model).
Models that operate at 5 VDC are standard with a higher
voltage model variant (VPT model) available that can
operate at voltages up to 35 VDC.
The use of the four-pin diskette interface and the
nine-pin D-shell connector as power inputs is mutually
exclusive. A jumper must be installed to allow power to
flow into the panel via pin 9 of the nine-pin D-shell
connector. The controller circuitry will typically draw
about 31 mA. If you use the integral backlight, plan on
supplying an additional 160 mA of current.
Look again at Photo 2. The keypad matrix interface —
which consists of a column of pins — is located just to the
right of the AVR ATMEGA164 microcontroller. We can
employ a single key or mix and match any number of keys
up to the maximum number of keys the 25 key ( 5 x 5)
matrix will physically handle. The output character of each
key is programmable. All we need to do to use the keypad
feature with RS-232 is simply short a row pin to a column
pin. The character associated with the row and column
short will be transmitted from the RS-232 TX line. If we
lose our way, or the GLK240128-25 goes bonkers,
shorting the row 5 and column 1 pins will reset the unit
to factory defaults. In that the panel “remembers” user
settings via the save command, the factory default values
must be saved in order for the factory default settings to
become the configuration settings at the next power-up.
I would venture to guess that the GLK240128-25’s
128 byte communications buffer is located within the
AVR’s internal SRAM. The user manual states that there is
a 16 KB chunk of bitmap and font space available to the
user. When converted to bits, 16 KB is equivalent to 128
■ PHOTO 3. Note that the PC diskette drive power
connector is not wired as a standard PC connector. Also,
the nine-pin D-shell connector and the four-pin diskette
drive connector cannot be used simultaneously. A jumper
must be installed to allow the Matrix Orbital GLK240128-25
input power to flow through the nine-pin D-shell connector.
The optional voltage regulator is mounted just above the
data and power interface connectors.
■ PHOTO 2. An extended temperature range
STMicroelectronics ST232EB RS-232 interface IC is just to
the left of the Protocol Select Jumpers. A Catalyst
Semiconductor 128-Kbit I2C Serial CMOS EEPROM sits to
the right of the Protocol Select Jumper area. The AVR in
command is an ATMEGA164. I suspect that the bitmaps
and fonts are kept within the EEPROM, as 128 Kbits
equates to the 16 Kbytes of bitmap and font memory the
Matrix Orbital GLK240128-25 claims to contain.
Kbits. The Catalyst Semiconductor 24C128WI I2C CMOS
EEPROM just happens to be a 128 Kbit device. Hmmmm
...
As for the panel’s configuration bits, they can either
be stored in part of the ATMEGA164’s internal EEPROM
or blasted into a reserved portion of the ATMEGA164’s
program Flash. There may even be just enough byte area
within the EEPROM to squeeze in the configuration data.
In the grand scheme of things, where and how the
LCD panel stores the configuration and graphical data
doesn’t matter to us. All we care about is that the storage
areas exist and are available to us. With that, limber up
those fingers and let’s stuff some configuration bits,
graphical code, and data into those special-purpose
memory blocks we’ve just discussed.
November 2008 71