Initial Setup (only needs to be performed once):
These sequences are fairly close to those of the OV511/OV511+, except that the control register is now 0x47 instead of 0x40. There is also a conspicuous lack of status checking, which indicates to me that the control register no longer acts as a status register at all. It looks like the only way to determine if the slave device is responding is to read from a subadress that has a known value (such as the manufacturer IDs in registers 0x1C and 0x1D).
Here is a summary of the I2C registers:
|Reg||OV511/OV511+ function||OV518+ function|
|40h||Control bits and status bits||[unknown]|
|41h||I2C write slave ID||[unchanged]|
|42h||Subaddress for write cycles||[unchanged]|
|43h||Subaddress for read cycles||[unchanged]|
|44h||I2C read slave ID||[unchanged]|
|46h||I2C clock prescaler||Apparently not used anymore.|
|47h||Time out counter||Control bits are the same as in OV511 reg 40h;
Probably not a status register any more
|48h||Subaddress for snapshot write cycles||Probably no longer used|
|49h||Data port for snapshot write cycles||Probably no longer used|
NOTE: It appears that all of the snapshot-specific registers (19h-1fh, 48h, 49h) are no longer used. The snapshot button seems to only be used for launching a vendor's application.