[ELMA I2C] I2C invalid addresses policy
It is necessary to specify a clear policy to specify how to deal with some issues in I2C.
Currently the development is geared towards indirect address writes and reads. This is done by specifying the following structure:
- Byte 1 I2C Address + Instruction
- Byte 2 High Indirect Address Byte
- Byte 3 High Indirect Address Byte
- Bytes 4-7 Data
once a frame with the correct I2C address is received, the VME board will try to access to its internal memory map thanks to bytes 2 and 3.
The ACK issue
I2C acks are related with physical layer acks (byte 1 do not match I2C Address and reception of the rest of the bytes). However, there is no specific control at higher layers. This is important when we try to perform an instruction (RD/WRN) in a certain address which is not retrievable. In that case, the ack at a physical level should be issued and at higher levels, data will be invalid.
To sum up, do we have to acknowledge Indirect Address that are not valid (and continue trx the data bytes)?