C transaction example – Matrix Orbital LK204-25 Legacy User Manual
Page 20

The unit does not respond to general call address ($00).
When communicating in I
2
C the LK204-25 will send an ACK on the 9th clock cycle when addressed.
When writing to the display module, the display will respond with a ACK when the write has successfully
been completed. However if the buffer has been filled, or the module is too busy processing data it will
respond with a NAK. When performing a multiple byte read within one I
2
C transaction, each byte read from
the slave should be followed by an ACK to indicate that the master still needs data, and a NAK to indicate
that the transmission is over.
The LK204-25 has some speed limitations, especially when run in I
2
C mode. Here are some considera-
tions when writing I
2
C code:
* to be able to read the replies of query commands (eg. cmds 54, 55) the following command must be
sent (only needs to be sent once, so this can be done somewhere in init): 254 / 160 / 0 this command puts
the reply data in the I
2
C output buffer instead of the RS232 output buffer. Please note that due to a 16 byte
output buffer, query commands that reply with more than 16 bytes cannot be read (eg cmd Get FileSystem
Directory)
* 3ms delay between the read commands
* 625us delay in between data bytes within a transaction is necessary
* 375us between transactions is necessary
NOTE
These delays are consrevative, and may be decreased based on performance
4.1.2
I
2
C Transaction Example
The typical I
2
C transaction contains four parts: the start sequence, addressing, information, and stop
sequence. To begin a transaction the data line, SDA, must toggle from high to low while the clock line, SCL,
is high. Next, the display must be addressed using a one byte hexadecimal value, the default to write to the
unit is 0x50, while read is 0x51. Then information can be sent to the unit; even when reading, a command
must first be sent to let the unit know what type of information it is required to return. After each bit is sent,
the display will issue an ACK or NACK as described above. Finally, when communication is complete, the
transaction is ended by toggling the data line from low to high while the clock line is high. An example of
the use of this algorithm to write a simple “HELLO” message can be seen in 2.
Table 2: I
2
C Transaction Algorithm
START
Toggle SDA high to low
Address
0x50
Information
0x48 0x45 0x4C 0x4C 0x4F
STOP
Toggle SDA low to high
Matrix Orbital
LK204-25
16