Quote Originally Posted by mrx23
How can MAXIM swap the Control Byte and a Address byte order?
Isn't that standard?
In reality, nothing is "swaped", its just that PBP has chosen to label the bytes in their software I2C in a "non-standard manner". This is because they use the labels used for EEPROMs. (worth looking at a datasheet)

I2CREAD DataPin,ClockPin,Control,{Address,}[Var{,Var...}]{,Label}

As listed, Control is the first byte sent. Bit 0 of this byte controls the direction of communication, either a read or write operation. In many I2C devices, the first byte sent, with bit 0 as the R/W bit, is called the slave address (but not with EEPROMs).
Address is also confusing, since PBP uses this to refer to the internal register address being accessed in the device, not the actual bus address of the device. It will be the byte/word sent after the slave-address/control byte, and is called different things based on the device, but "command-byte" or "control-byte" are common. (but not with EEPROMs)

You definately need a good understanding of the I2C protocol to translate PBPs I2C commands to a device other than an EEPROM


Quote Originally Posted by mrx23
If I want the 66 slave address (that is 0x42), I will have to set like this:
AD2 GND
AD1 GND
AD0 Vdd
Yes, it looks that way to me.

Hope this clears it up a little more,
Steve