I2C Transactions Authentication

NVIDIA DRIVE OS SIPL camera software communicates with camera sensors over i2c during Init and Runtime (streaming) steps:

  • At init time, default settings are pushed to a sensor over i2c bus before streaming can start.
  • At runtime, image quality autocontrol algorithm in SIPL core can periodically decide to change sensor settings over i2c (exposure, white balance, and so on) based on changing lighting conditions.

Initialization time i2c transactions are performed when application calls the INvSIPLCamera::Init() method. Any failure to authenticate i2c transactions during Init stage is seen by application as a failure of INvSIPLCamera::Init() call, and streaming will not start.

At runtime (after camera streaming starts) SIPL manages optimal camera sensor settings internally by controlling sensor via i2c bus, transparently to camera user application. If i2c transactions fail,application is be notified through SIPL notification queue. Refer to nvsipl::NvSIPLPipelineNotifier::NotificationType by NOTIF_ERROR_CDI_SET_SENSOR_CTRL_FAILURE event. I2C authentication failure is treated like any other type of I2C transaction error and is reported by the same event.

Application monitors the SIPL notification queue for NOTIF_ERROR_CDI_SET_SENSOR_CTRL_FAILURE events and performs actions required to recover the camera link when failure occurs.