C communications – Matrix Orbital LCD0821 Legacy User Manual
Page 11

LCD0821 rev 2
11
19200
5CH out
in
in
out
19200
5EH out
in
in
in
60H in
out
out
out
1200
62H in
out
out
in
64H
in out in out
2400
66H
in out in in
68H in
in
out
out
9600
6AH in
in
out
in
6CH
in in in out
6EH
in in in in
2.1.5 I
2
C Communications
I²C communications runs at 100 kBps and supports up to 16 units on a single communications line. The
I2C data line operates on 5 volt CMOS levels.
The idea of ACK is to indicate when the data has been received correctly. ACK does not indicate data
incorrectly received. ACK simply fails to indicate when data is correctly received. Clearly, this is of limited
usefulness and even less so with Matrix Orbital modules. Matrix orbital modules are not capable of failing
to acknowledge an incorrectly received byte in response to that bytes transition. They are only capable of
failing to acknowledge the bytes following the byte, which was not received. To fully understand the
reasons for this one needs to understand something about how a Matrix Orbital module processes data.
Basically the reason why a Matrix Orbital module might fail to receive a byte correctly is that it was unable
to process the byte previous before the failed byte was transmitted. Because the module cannot possibly
know that it would be unable to store the byte before the next byte was received it cannot know to not ACK.
The reason for this situation in deference to situations you might be familiar with (i.e. memory chips, etc…)
is that the Matrix Orbital module employs a microprocessor to perform these data storage functions. A
memory chip takes care of these things entirely with in hardware subsystems that operate at the same speed
as the transmission themselves.
The LCD0821 uses a standard Phillips 7bit address as defined by Phillips. How ever, we at Matrix Orbital
specify I
2
C address in 8bits. The 8
th
bit, least significant bit (LSB or Low Order Bit) of the 8bit address is
read/write bit. If we take a standard Phillips 7bit address of 45hex this would be in binary 1000101. This is
7bits. If one adds the read write bit to this 7bit address and you assume that you are writing one gets
10001010. Matrix Orbital would describe the Philips I
2
C address of 45hex as 8Ahex. The read address
would be 8Bhex.
For more information on Phillips I
2
C please visit…
http://www.ping.be/~ping0751/i2cfaq/i2cindex.htm