lophtware

Logo

lophtware projects

GitHub Profile

I2C - Slave Configuration

Report Type: IN / OUT
Report Size: 13 Bytes
Acknowledged By: Command Acknowledgement

Report ID Unlock Key Address Flags Address Address Mask Flags Address Mask
0000100 I 8 bytes u i 000000 aaaaaaa u i 000 s 00 mmmmmmm

Report ID

HID Report ID. Always 0x08 for OUT Reports.

IN Reports can use the I flag to indicate whether the Host should receive the immediate values of the Master peripheral (when I is 1) or whether the Host should receive the configuration settings (when I is 0).

Unlock Key

An 8-byte key that is used to prevent accidental changes to certain configuration values. If the supplied key does not match the stored key then this report is ignored.

For IN Reports the field is set as all zeroes.

Common Flags

These flags are common across multiple fields and have the same semantics for each:

Bits Direction Meaning
u OUT Update the field; 1 if the field is to be updated, 0 if no change is to be made (any supplied values will be ignored). For IN Reports this will be set to 0.
i OUT Immediate update; 1 if an update is to be applied immediately, 0 if the change will be stored in the configuration to be applied later. Note that no configuration changes are persisted until Store Current Configuration is issued. This flag makes no sense if u is 0, so will be ignored. For IN Reports this will be set to 0.

Address

The 7-bit bus address of the device when operating as a Slave.

Address Mask Flags

Bits Direction Meaning
s IN / OUT Whether ‘strict addressing’ is enforced; 0 to allow the slave to respond to reserved I2C addresses, or 1 to ignore them.

Address Mask

A 7-bit mask that allows the Slave to respond to more than one address. When there is a 1 then it means that bit of the address is ignored and the slave will respond if the rest of the address matches. For example, if a device has an Address of 0x31 and an Address Mask of 0x01 then the Slave will respond to any Master that directs its requests to either 0x30 or 0x31.