I2C where write addr differs from read addr

Hi there - trying to use the FEZ T18 (Tiny v1) with the MAX14830. That chip has a different I2C address for reading vs writing. The manual states that a read should do:
START : I2C-write-addr : reg-to-read : START-REPEAT : I2C-read-addr : : STOP

So far I’ve done the following:

`var controller = I2cController.FromName(FEZ.I2cBus.I2c1);
var i2CDevice_uart0_rd = controller.GetDevice(new I2cConnectionSettings(UART0_RD, I2cAddressFormat.SevenBit, I2cBusSpeed.StandardMode));
var i2CDevice_uart0_wr = controller.GetDevice(new I2cConnectionSettings(UART0_WR, I2cAddressFormat.SevenBit, I2cBusSpeed.StandardMode));

byte[] singleByteBufferB = new byte[1];
i2CDevice_uart0_wr.WritePartial(new byte[] { 0x25 });
i2CDevice_uart0_rd.Read(singleByteBufferB);`

I always get an InvalidOperationException - 0x00000000 in WriteRead which I’m not even calling.

What am I missing?

I have never seen a device with 2 addresses. Your device has the one address but then the read and write bit is what is confusing you.

So, when they say the address is 0xD8 0xD9 then the address is really just 0xD8. TinyCLR automatically sets bit0 to 1 to make 0xD9 when necessary.

You get an exception because you have the wrong address.

Thanks. Clearly my first time on I2C. That also explains why some examples showed address >> 1.

Yes sir that is correct.