Printing and typographical errors reserved.
ELECTRONIC ASSEMBLY reserves the right to change specifications without prior notice.
Page 10
EA eDIPTFT32-A
DATA TRANSFER PROTOCOL (SMALL PROTOCOL)
The protocol has an identical structure for all 3 interface types: RS-232, SPI and I²C. Each data
transfer is embedded in a fixed frame with a checksum (protocol package). The EA eDIPTFT32-A
acknowledges this package with the character <ACK> (=$06) on successful receipt or <NAK> (=$15)
in the event of an incorrect checksum or receive buffer overflow. In the case of <NAK>, the entire
package is rejected and must be sent again.
Receiving the <ACK> byte means only that the protocol package is ok,
there is no syntax check for the command.
Note: it is neccessary to read the <ACK> byte in any case. If the host
computer does not receive an acknowledgment, at least one byte is
lost. In this case, the set timeout has to elapse before the package is
sent again. The raw data volume per package is limited to 255 bytes
(len <= 255). Commands longer than 255 bytes (e.g. Load image ESC
UL...) must be divided up between a number of packages. All data in
the packages are compiled again after being correctly received by the
EA eDIP.
DEACTIVATING THE SMALL PROTOCOL
For tests the protocol can be switched off with an L level at
pin 17 = DPROT. In normal operation, however, you are urgently advised
to activate the protocol. If you do not, any overflow of the receive buffer
will not be detected.
>
<DC1>
len
data...
bcc
<
<ACK>
>
<DC2>
1
S
bcc
<
<ACK>
<
<DC1>
len
data...
bcc
Command/data to the display
Request for content of send buffer
BUILDING THE SMALL PROTOCOL PACKAGES
<DC1> = 17(dez.) = $11
<ACK> = 6(dez.) = $06
len = count of user data (without <DC1>, without checksum bcc)
bcc = 1 byte = sum of all bytes incl. <DC1> and len, modulo 256
The user data is transferred framed by <DC1>,
the number of bytes (len) and the checksum
(bcc). The display responds with <ACK>.
The command sequence <DC2>, 1, S, bcc
empties the display’s send buffer. The display
replies with the acknowledgement <ACK> and
the begins to send all the collected data such
as touch keystrokes.
<DC2> = 18(dez.) = $12
1 = 1(dez.) = $01
S = 83(dez.) = $53
<ACK> = 6(dez.) = $06
len = count of user data (without <DC1>, without checksum bcc)
bcc = 1 byte = sum of all bytes incl. <DC1> and len, modulo 256
void
SendData(
unsigned char
*buf,
unsigned char
len)
{
unsigned char
i, bcc;
SendByte(
0x11
);
// Send DC1
bcc =
0x11
;
SendByte(len);
// Send data length
bcc = bcc + len;
for
(i=
0
; i < len; i++)
// Send buf
{ SendByte(buf[i]);
bcc = bcc + buf[i];
}
SendByte(bcc);
// Send checksum
}
C-Code to transmit data package
Clear display and draw a line from 0,0 to 319,239
>
<DC1>
len
ESC
D
L
ESC
G
D
0
0
319
239
bcc
$11
$0E
$1B
$44
$4C
$1B
$47
$44
$00
$00
$00
$00
$3F
$01
$EF
$00
$9F
<
<ACK>
$06
Example for a complete datapackage