How to work with the Small Protocol

Question:
We are going to use EA’s eDIP240-7 in our products. We have connected the module using the SPI interface clocked at 75 kHz.
The messages are exchanged by means of the small protocol. We have the following questions:

1. After sending the command (with the DC1 header) we send an additional 0xff byte to get the ACK/NACK. In spite of conforming to the 6µs time of clock inactivity EA eDIP sometimes sends a byte of unknown value (it’s not an ACK and not a NACK).
In UART mode the eDIP sends the ACK/NACK when it’s ready to send it, but in SPI mode eDIP is a slave, and the master dictates the moment for sending the acknowledgement. What value is output when this is done too early?
Answer:
This is not specified.

2. We suspect there’s some time needed to allow eDIP calculate the checksum of a received message and prepare the ACK/NACK byte. How long must it be?

Furthermore, this time seems to be dependent on the current eDIP CPU load, i.e. processing of previously received messages.
Answer:
The calculation takes max.  6µs after receiving the last byte (bcc).
It does not depend on the current CPU load because the receive interrupt has the highest priority.

3. Can the -SS be asserted throughout the message transfer or must it return high between subsequent bytes (as is shown in the datasheet)?
Answer: 
No, it’s not necessary but we recommend it.

4. Please clarify the meaning of timeout when receiving a command. Is it the time for receiving a complete message, and if it’s not received within this limit it’s dropped?
Answer:
Yes.

5. How can we upgrade the firmware in the eDIP?
Answer:
It is not possible to upgrade the firmware.