Could you please confirm if all the registers are set the correct value? You need to check the I2C communication with a logic analyzer or read registers value back after writting.
Thanks for the reply.
Yes, I have used a logic analyzer to verify that the sensor acks all of the writes. I will try reading back the registers to verify their content although I don't believe this is the issue.
At yyca's suggestion I added read-after-write checking code to the initialization routines and am more confused! In the stream of resister initialization messages, most registers verify after programming. That is their content matches the written values. But well over 100 registers don't. These registers seem to fall into two categories: undocumented registers, those not listed in the OmniVision data sheet, and registers where all the bits are not documented (again, in the OV data sheet).
Any thoughts on why there would be writes to undocumented registers? and why some unused bits are being set?
Have you checked the configuration with OmniVision FAE? We expect you
1. get correct configuration from OmniVision.
2. All the registers are set correctly.
It's is acceptable that some of the registers are not documented in datasheet but all the registers must be written correctly.