How to work with the Small Protocol
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 DC1 header) we send additional 0xff byte to get the ACK/NACK. In spite of conforming to the 6us 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 it's done to 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 us after receiving the last byte (bcc).
It depends not 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 recommended 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?
5. How can we upgrade the firmware in the eDIP?
Answer: it is not possible to upgrade the firmware.