This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB936-Q1: CSI ERROR

Part Number: DS90UB936-Q1

Hello,

The following figure is a partial block diagram of the product:

During normal operation of the product, the MCU resets the SOC.Then the SOC will turn off the POC power supply of the camera and then power on (TI935 and image sensor will be powered off and powered on). However, during this process, the power supply of TI936 has been normal and there is no software reset. At this time, TI935 will report a fault CSI ERROR(as following figure), and TI936 have no MIPI signal output.
So, SOC can not detect the MIPI signal and  reset the camera again. TI935 will not report a fault CSI ERROR, but TI936 still have no MIPI signal output. Now, if the SOC sends a reset command to TI936 , the MIPI signal output is normal.
May I ask what are the possible causes of the above problem?

  • Hello,

    From my understanding of the issue, the DS90UB936 is reporting a CSI error after the DS90UB935 is powered on again. CSI errors may occur at startup however, these do not reflect the device operation. CSI errors occurring at start up are recommended to be cleared. 

    With the reset to the DS90UB936, do these CSI errors reoccur? Would you be able to provide a complete register dump of the DS90UB936 and DS90UB935 when the device is in operation and experiencing the issue? This will help confirm the configuration of the devices. 

    Best,

    Zoe

  • Hi Zoe,

    With the reset to the DS90UB936, CSI errors don't reoccur.

    And the following .txt files are register dump of the DS90UB936 and DS90UB935 when the device is in operation and experiencing the issue.

     [[1970-01-01 00:00:08:238] [INFO] [main.cpp:676] [DS935]General_CFG reg:0x02 value: 0x13
     [[1970-01-01 00:00:08:238] [INFO] [main.cpp:676] [DS935]MODE_SEL reg:0x03 value: 0x58
     [[1970-01-01 00:00:08:239] [INFO] [main.cpp:676] [DS935]BC_MODE_SELECT reg:0x04 value: 0x00
     [[1970-01-01 00:00:08:239] [INFO] [main.cpp:676] [DS935]PLLCLK_CTRL Register reg:0x05 value: 0x03
     [[1970-01-01 00:00:08:240] [INFO] [main.cpp:676] [DS935]CLKOUT_CTRL0 reg:0x06 value: 0x9B
     [[1970-01-01 00:00:08:241] [INFO] [main.cpp:676] [DS935]CLKOUT_CTRL1 reg:0x07 value: 0xFA
     [[1970-01-01 00:00:08:241] [INFO] [main.cpp:676] [DS935]BCC_WATCHDOG reg:0x08 value: 0xFE
     [[1970-01-01 00:00:08:242] [INFO] [main.cpp:676] [DS935]I2C_CONTROL1 reg:0x09 value: 0x1E
     [[1970-01-01 00:00:08:242] [INFO] [main.cpp:676] [DS935]SCL_HIGH_TIME reg:0x0B value: 0x7F
     [[1970-01-01 00:00:08:243] [INFO] [main.cpp:676] [DS935]SCL_LOW_TIME reg:0x0C value: 0x7F
     [[1970-01-01 00:00:08:243] [INFO] [main.cpp:676] [DS935]LOCAL_GPIO_DATA reg:0x0D value: 0xF0
     [[1970-01-01 00:00:08:244] [INFO] [main.cpp:676] [DS935]GPIO_INPUT_CTRL reg:0x0E value: 0x0F
     [[1970-01-01 00:00:08:244] [INFO] [main.cpp:676] [DS935]DVP_CFG reg:0x10 value: 0x00
     [[1970-01-01 00:00:08:245] [INFO] [main.cpp:676] [DS935]DVP_DT reg:0x11 value: 0x00
     [[1970-01-01 00:00:08:246] [INFO] [main.cpp:676] [DS935]FORCE_BIST_ERR reg:0x13 value: 0x00
     [[1970-01-01 00:00:08:246] [INFO] [main.cpp:676] [DS935]REMOTE_BIST_CTRL reg:0x14 value: 0x00
     [[1970-01-01 00:00:08:247] [INFO] [main.cpp:676] [DS935]SENSOR_VGAIN reg:0x15 value: 0x20
     [[1970-01-01 00:00:08:247] [INFO] [main.cpp:676] [DS935]SENSOR_CTRL0 reg:0x17 value: 0x3C
     [[1970-01-01 00:00:08:248] [INFO] [main.cpp:676] [DS935]SENSOR_CTRL1 reg:0x18 value: 0x80
     [[1970-01-01 00:00:08:248] [INFO] [main.cpp:676] [DS935]SENSOR_V0_THRESH reg:0x19 value: 0x62
     [[1970-01-01 00:00:08:249] [INFO] [main.cpp:676] [DS935]CSI_POL_SEL reg:0x20 value: 0x00
     [[1970-01-01 00:00:08:250] [INFO] [main.cpp:676] [DS935]CSI_PKT_HDR_TINIT_CTRL reg:0x31 value: 0x20
     [[1970-01-01 00:00:08:251] [INFO] [main.cpp:676] [DS935]BCC_CONFIG reg:0x32 value: 0x29
     [[1970-01-01 00:00:08:251] [INFO] [main.cpp:676] [DS935]DATAPATH_CTL1 reg:0x33 value: 0x07
     [[1970-01-01 00:00:08:252] [INFO] [main.cpp:676] [DS935]REMOTE_PAR_CAP1 reg:0x35 value: 0x11
     [[1970-01-01 00:00:08:252] [INFO] [main.cpp:676] [DS935]BC_CTRL reg:0x49 value: 0x00
     [[1970-01-01 00:00:08:253] [INFO] [main.cpp:676] [DS935]Device STS reg:0x51 value: 0xC0
     [[1970-01-01 00:00:08:253] [INFO] [main.cpp:676] [DS935]GENERAL_STATUS reg:0x52 value: 0x45
     [[1970-01-01 00:00:08:254] [INFO] [main.cpp:676] [DS935]GPIO_PIN_STS reg:0x53 value: 0x03
     [[1970-01-01 00:00:08:254] [INFO] [main.cpp:676] [DS935]BIST_ERR_CNT reg:0x54 value: 0x00
     [[1970-01-01 00:00:08:255] [INFO] [main.cpp:676] [DS935]CRC_ERR_CNT1 reg:0x55 value: 0x00
     [[1970-01-01 00:00:08:256] [INFO] [main.cpp:676] [DS935]CRC_ERR_CNT2 reg:0x56 value: 0x00
     [[1970-01-01 00:00:08:256] [INFO] [main.cpp:676] [DS935]SENSOR_STATUS reg:0x57 value: 0x00
     [[1970-01-01 00:00:08:257] [INFO] [main.cpp:676] [DS935]CSI_ERR_CNT reg:0x5C value: 0x00
     [[1970-01-01 00:00:08:257] [INFO] [main.cpp:676] [DS935]CSI_ERR_STATUS reg:0x5D value: 0x00
     [[1970-01-01 00:00:08:258] [INFO] [main.cpp:676] [DS935]CSI_ERR_DLANE01 reg:0x5E value: 0x00
     [[1970-01-01 00:00:08:258] [INFO] [main.cpp:676] [DS935]CSI_ERR_DLANE23 reg:0x5F value: 0x00
     [[1970-01-01 00:00:08:259] [INFO] [main.cpp:676] [DS935]CSI_ERR_CLK_LANE reg:0x60 value: 0x00
     [[1970-01-01 00:00:08:259] [INFO] [main.cpp:676] [DS935]CSI_PKT_HDR_VC_ID reg:0x61 value: 0x12
     [[1970-01-01 00:00:08:260] [INFO] [main.cpp:676] [DS935]PKT_HDR_WC_LSB reg:0x62 value: 0x80
     [[1970-01-01 00:00:08:261] [INFO] [main.cpp:676] [DS935]PKT_HDR_WC_MSB reg:0x63 value: 0x07
     [[1970-01-01 00:00:08:261] [INFO] [main.cpp:676] [DS935]CSI_ECC reg:0x64 value: 0x03
     [[1970-01-01 00:00:08:262] [INFO] [main.cpp:676] [DS935]IND_ACC_CTL reg:0xB0 value: 0x04
     [[1970-01-01 00:00:08:262] [INFO] [main.cpp:676] [DS935]IND_ACC_ADDR reg:0xB1 value: 0x4A
     [[1970-01-01 00:00:08:263] [INFO] [main.cpp:676] [DS935]IND_ACC_ADDR reg:0xB1 value: 0x4A
     [[1970-01-01 00:00:08:263] [INFO] [main.cpp:676] [DS935]IND_ACC_DATA reg:0xB2 value: 0x3F
     [[1970-01-01 00:00:08:264] [INFO] [main.cpp:676] [DS935]IND_ACC_DATA reg:0xB2 value: 0x3F
     [[1970-01-01 00:00:08:265] [INFO] [main.cpp:686] [DS936]General Configuration reg:0x02 value: 0x1E
     [[1970-01-01 00:00:08:266] [INFO] [main.cpp:686] [DS936]DEVICE_STS reg:0x04 value: 0xDF
     [[1970-01-01 00:00:08:266] [INFO] [main.cpp:686] [DS936]PAR_ERR_THOLD_HI reg:0x05 value: 0x01
     [[1970-01-01 00:00:08:267] [INFO] [main.cpp:686] [DS936]PAR_ERR_THOLD_LO reg:0x06 value: 0x00
     [[1970-01-01 00:00:08:267] [INFO] [main.cpp:686] [DS936]I2C Control 1 reg:0x08 value: 0x1C
     [[1970-01-01 00:00:08:268] [INFO] [main.cpp:686] [DS936]I2C Control 2 reg:0x09 value: 0x20
     [[1970-01-01 00:00:08:269] [INFO] [main.cpp:686] [DS936]RX_PORT_CTL reg:0x0C value: 0x96
     [[1970-01-01 00:00:08:269] [INFO] [main.cpp:686] [DS936]IO_CTL reg:0x0D value: 0xB9
     [[1970-01-01 00:00:08:270] [INFO] [main.cpp:686] [DS936]GPIO_INPUT_CTL reg:0x0F value: 0x70
     [[1970-01-01 00:00:08:270] [INFO] [main.cpp:686] [DS936]GPIO0_PIN_CTL reg:0x10 value: 0x05
     [[1970-01-01 00:00:08:271] [INFO] [main.cpp:686] [DS936]FS_CTL reg:0x18 value: 0x00
     [[1970-01-01 00:00:08:271] [INFO] [main.cpp:686] [DS936]FWD_CTL1 reg:0x20 value: 0x10
     [[1970-01-01 00:00:08:272] [INFO] [main.cpp:686] [DS936]FWD_CTL2 reg:0x21 value: 0x01
     [[1970-01-01 00:00:08:272] [INFO] [main.cpp:686] [DS936]FWD_STS reg:0x22 value: 0x00
     [[1970-01-01 00:00:08:273] [INFO] [main.cpp:686] [DS936]INTERRUPT_CTL reg:0x23 value: 0x81
     [[1970-01-01 00:00:08:273] [INFO] [main.cpp:686] [DS936]INTERRUPT_STS reg:0x24 value: 0x02
     [[1970-01-01 00:00:08:274] [INFO] [main.cpp:686] [DS936]TS_CONFIG reg:0x25 value: 0x00
     [[1970-01-01 00:00:08:275] [INFO] [main.cpp:686] [DS936]TS_CONTROL reg:0x26 value: 0x00
     [[1970-01-01 00:00:08:275] [INFO] [main.cpp:686] [DS936]TS_STATUS reg:0x29 value: 0x00
     [[1970-01-01 00:00:08:276] [INFO] [main.cpp:686] [DS936]CSI_CTL reg:0x33 value: 0x01
     [[1970-01-01 00:00:08:276] [INFO] [main.cpp:686] [DS936]CSI_CTL2 reg:0x34 value: 0x40
     [[1970-01-01 00:00:08:277] [INFO] [main.cpp:686] [DS936]CSI_STS reg:0x35 value: 0x00
     [[1970-01-01 00:00:08:277] [INFO] [main.cpp:686] [DS936]CSI_TX_ICR reg:0x36 value: 0x00
     [[1970-01-01 00:00:08:278] [INFO] [main.cpp:686] [DS936]CSI_TX_ISR reg:0x37 value: 0x10
     [[1970-01-01 00:00:08:278] [INFO] [main.cpp:686] [DS936]AEQ_CTL1 reg:0x42 value: 0x71
     [[1970-01-01 00:00:08:279] [INFO] [main.cpp:686] [DS936]AEQ_CTL1 reg:0x43 value: 0x01
     [[1970-01-01 00:00:08:279] [INFO] [main.cpp:686] [DS936]FPD3_CAP reg:0x4A value: 0x00
     [[1970-01-01 00:00:08:280] [INFO] [main.cpp:686] [DS936]FPD3_PORT_SEL reg:0x4C value: 0x12
     [[1970-01-01 00:00:08:280] [INFO] [main.cpp:686] [DS936]RX_PORT_STS1 reg:0x4D value: 0x53
     [[1970-01-01 00:00:08:281] [INFO] [main.cpp:686] [DS936]RX_PORT_STS2 reg:0x4E value: 0x55
     [[1970-01-01 00:00:08:282] [INFO] [main.cpp:686] [DS936]SENSOR_STS_3 reg:0x54 value: 0x00
     [[1970-01-01 00:00:08:282] [INFO] [main.cpp:686] [DS936]RX_PAR_ERR_HI reg:0x55 value: 0x00
     [[1970-01-01 00:00:08:283] [INFO] [main.cpp:686] [DS936]RX_PAR_ERR_LO reg:0x56 value: 0x00
     [[1970-01-01 00:00:08:283] [INFO] [main.cpp:686] [DS936]BIST_ERR_COUNT reg:0x57 value: 0x00
     [[1970-01-01 00:00:08:284] [INFO] [main.cpp:686] [DS936]BCC_CONFIG reg:0x58 value: 0x5E
     [[1970-01-01 00:00:08:284] [INFO] [main.cpp:686] [DS936]DATAPATH_CTL1 reg:0x59 value: 0x03
     [[1970-01-01 00:00:08:285] [INFO] [main.cpp:686] [DS936]PORT_CONFIG reg:0x6D value: 0x7C
     [[1970-01-01 00:00:08:285] [INFO] [main.cpp:686] [DS936]BC_GPIO_CTL0 reg:0x6E value: 0x88
     [[1970-01-01 00:00:08:286] [INFO] [main.cpp:686] [DS936]CSI_RX_STS reg:0x7A value: 0x00
     [[1970-01-01 00:00:08:286] [INFO] [main.cpp:686] [DS936]CSI_ERR_COUNTER reg:0x7B value: 0x00
     [[1970-01-01 00:00:08:287] [INFO] [main.cpp:686] [DS936]PORT_CONFIG2 reg:0x7C value: 0x38
     [[1970-01-01 00:00:08:288] [INFO] [main.cpp:686] [DS936]PORT_PASS_CTL reg:0x7D value: 0x00
     [[1970-01-01 00:00:08:288] [INFO] [main.cpp:686] [DS936]MODE_IDX_STS reg:0xB8 value: 0xFC
     [[1970-01-01 00:00:08:289] [INFO] [main.cpp:686] [DS936]LINK_ERROR_COUNT reg:0xB9 value: 0x33
     [[1970-01-01 00:00:08:289] [INFO] [main.cpp:686] [DS936]FPD3_ENC_CTL reg:0xBA value: 0x83
     [[1970-01-01 00:00:08:290] [INFO] [main.cpp:686] [DS936]AEQ_CTL2 reg:0xD2 value: 0x94
     [[1970-01-01 00:00:08:290] [INFO] [main.cpp:686] [DS936]AEQ_STATUS reg:0xD3 value: 0x02
     [[1970-01-01 00:00:08:291] [INFO] [main.cpp:686] [DS936]ADAPTIVE EQ BYPASS reg:0xD4 value: 0x60
     [[1970-01-01 00:00:08:291] [INFO] [main.cpp:686] [DS936]AEQ_MIN_MAX reg:0xD5 value: 0xF2
     [[1970-01-01 00:00:08:292] [INFO] [main.cpp:686] [DS936]PORT_ICR_HI reg:0xD8 value: 0x00
     [[1970-01-01 00:00:08:292] [INFO] [main.cpp:686] [DS936]PORT_ICR_LO reg:0xD9 value: 0x01
     [[1970-01-01 00:00:08:293] [INFO] [main.cpp:686] [DS936]PORT_ISR_HI reg:0xDA value: 0x00
     [[1970-01-01 00:00:08:294] [INFO] [main.cpp:686] [DS936]PORT_ISR_LO reg:0xDB value: 0x10
     [[1970-01-01 00:00:08:294] [INFO] [main.cpp:686] [DS936]FC_GPIO_STS reg:0xDC value: 0x03
     [[1970-01-01 00:00:08:295] [INFO] [main.cpp:686] [DS936]FC_GPIO_ICR reg:0xDD value: 0x00
     [[1970-01-01 00:00:08:295] [INFO] [main.cpp:686] [DS936]SEN_INT_RISE_STS reg:0xDE value: 0x00
     [[1970-01-01 00:00:08:296] [INFO] [main.cpp:686] [DS936]SEN_INT_FALL_STS reg:0xDF value: 0x00
     [[1970-01-01 00:00:03:350] [INFO] [main.cpp:676] [DS935]General_CFG reg:0x02 value: 0x13
     [[1970-01-01 00:00:03:350] [INFO] [main.cpp:676] [DS935]MODE_SEL reg:0x03 value: 0x58
     [[1970-01-01 00:00:03:351] [INFO] [main.cpp:676] [DS935]BC_MODE_SELECT reg:0x04 value: 0x00
     [[1970-01-01 00:00:03:352] [INFO] [main.cpp:676] [DS935]PLLCLK_CTRL Register reg:0x05 value: 0x03
     [[1970-01-01 00:00:03:352] [INFO] [main.cpp:676] [DS935]CLKOUT_CTRL0 reg:0x06 value: 0x9B
     [[1970-01-01 00:00:03:353] [INFO] [main.cpp:676] [DS935]CLKOUT_CTRL1 reg:0x07 value: 0xFA
     [[1970-01-01 00:00:03:353] [INFO] [main.cpp:676] [DS935]BCC_WATCHDOG reg:0x08 value: 0xFE
     [[1970-01-01 00:00:03:354] [INFO] [main.cpp:676] [DS935]I2C_CONTROL1 reg:0x09 value: 0x1E
     [[1970-01-01 00:00:03:354] [INFO] [main.cpp:676] [DS935]SCL_HIGH_TIME reg:0x0B value: 0x7F
     [[1970-01-01 00:00:03:355] [INFO] [main.cpp:676] [DS935]SCL_LOW_TIME reg:0x0C value: 0x7F
     [[1970-01-01 00:00:03:355] [INFO] [main.cpp:676] [DS935]LOCAL_GPIO_DATA reg:0x0D value: 0xF0
     [[1970-01-01 00:00:03:356] [INFO] [main.cpp:676] [DS935]GPIO_INPUT_CTRL reg:0x0E value: 0x0F
     [[1970-01-01 00:00:03:356] [INFO] [main.cpp:676] [DS935]DVP_CFG reg:0x10 value: 0x00
     [[1970-01-01 00:00:03:357] [INFO] [main.cpp:676] [DS935]DVP_DT reg:0x11 value: 0x00
     [[1970-01-01 00:00:03:358] [INFO] [main.cpp:676] [DS935]FORCE_BIST_ERR reg:0x13 value: 0x00
     [[1970-01-01 00:00:03:358] [INFO] [main.cpp:676] [DS935]REMOTE_BIST_CTRL reg:0x14 value: 0x00
     [[1970-01-01 00:00:03:359] [INFO] [main.cpp:676] [DS935]SENSOR_VGAIN reg:0x15 value: 0x20
     [[1970-01-01 00:00:03:359] [INFO] [main.cpp:676] [DS935]SENSOR_CTRL0 reg:0x17 value: 0x3C
     [[1970-01-01 00:00:03:362] [INFO] [main.cpp:676] [DS935]SENSOR_CTRL1 reg:0x18 value: 0x80
     [[1970-01-01 00:00:03:362] [INFO] [main.cpp:676] [DS935]SENSOR_V0_THRESH reg:0x19 value: 0x62
     [[1970-01-01 00:00:03:364] [INFO] [main.cpp:676] [DS935]CSI_POL_SEL reg:0x20 value: 0x00
     [[1970-01-01 00:00:03:364] [INFO] [main.cpp:676] [DS935]CSI_PKT_HDR_TINIT_CTRL reg:0x31 value: 0x20
     [[1970-01-01 00:00:03:365] [INFO] [main.cpp:676] [DS935]BCC_CONFIG reg:0x32 value: 0x29
     [[1970-01-01 00:00:03:365] [INFO] [main.cpp:676] [DS935]DATAPATH_CTL1 reg:0x33 value: 0x07
     [[1970-01-01 00:00:03:366] [INFO] [main.cpp:676] [DS935]REMOTE_PAR_CAP1 reg:0x35 value: 0x11
     [[1970-01-01 00:00:03:366] [INFO] [main.cpp:676] [DS935]BC_CTRL reg:0x49 value: 0x00
     [[1970-01-01 00:00:03:367] [INFO] [main.cpp:676] [DS935]Device STS reg:0x51 value: 0xC0
     [[1970-01-01 00:00:03:368] [INFO] [main.cpp:676] [DS935]GENERAL_STATUS reg:0x52 value: 0x45
     [[1970-01-01 00:00:03:368] [INFO] [main.cpp:676] [DS935]GPIO_PIN_STS reg:0x53 value: 0x03
     [[1970-01-01 00:00:03:369] [INFO] [main.cpp:676] [DS935]BIST_ERR_CNT reg:0x54 value: 0x00
     [[1970-01-01 00:00:03:369] [INFO] [main.cpp:676] [DS935]CRC_ERR_CNT1 reg:0x55 value: 0x00
     [[1970-01-01 00:00:03:370] [INFO] [main.cpp:676] [DS935]CRC_ERR_CNT2 reg:0x56 value: 0x00
     [[1970-01-01 00:00:03:370] [INFO] [main.cpp:676] [DS935]SENSOR_STATUS reg:0x57 value: 0x00
     [[1970-01-01 00:00:03:371] [INFO] [main.cpp:676] [DS935]CSI_ERR_CNT reg:0x5C value: 0xFF
     [[1970-01-01 00:00:03:371] [INFO] [main.cpp:676] [DS935]CSI_ERR_STATUS reg:0x5D value: 0x0E
     [[1970-01-01 00:00:03:372] [INFO] [main.cpp:676] [DS935]CSI_ERR_DLANE01 reg:0x5E value: 0x00
     [[1970-01-01 00:00:03:372] [INFO] [main.cpp:676] [DS935]CSI_ERR_DLANE23 reg:0x5F value: 0x00
     [[1970-01-01 00:00:03:373] [INFO] [main.cpp:676] [DS935]CSI_ERR_CLK_LANE reg:0x60 value: 0x00
     [[1970-01-01 00:00:03:373] [INFO] [main.cpp:676] [DS935]CSI_PKT_HDR_VC_ID reg:0x61 value: 0x12
     [[1970-01-01 00:00:03:374] [INFO] [main.cpp:676] [DS935]PKT_HDR_WC_LSB reg:0x62 value: 0x80
     [[1970-01-01 00:00:03:375] [INFO] [main.cpp:676] [DS935]PKT_HDR_WC_MSB reg:0x63 value: 0x07
     [[1970-01-01 00:00:03:375] [INFO] [main.cpp:676] [DS935]CSI_ECC reg:0x64 value: 0x83
     [[1970-01-01 00:00:03:376] [INFO] [main.cpp:676] [DS935]IND_ACC_CTL reg:0xB0 value: 0x04
     [[1970-01-01 00:00:03:376] [INFO] [main.cpp:676] [DS935]IND_ACC_ADDR reg:0xB1 value: 0x4A
     [[1970-01-01 00:00:03:377] [INFO] [main.cpp:676] [DS935]IND_ACC_ADDR reg:0xB1 value: 0x4A
     [[1970-01-01 00:00:03:377] [INFO] [main.cpp:676] [DS935]IND_ACC_DATA reg:0xB2 value: 0x3F
     [[1970-01-01 00:00:03:378] [INFO] [main.cpp:676] [DS935]IND_ACC_DATA reg:0xB2 value: 0x3F
     [[1970-01-01 00:00:03:379] [INFO] [main.cpp:686] [DS936]General Configuration reg:0x02 value: 0x1E
     [[1970-01-01 00:00:03:379] [INFO] [main.cpp:686] [DS936]DEVICE_STS reg:0x04 value: 0xDF
     [[1970-01-01 00:00:03:380] [INFO] [main.cpp:686] [DS936]PAR_ERR_THOLD_HI reg:0x05 value: 0x01
     [[1970-01-01 00:00:03:380] [INFO] [main.cpp:686] [DS936]PAR_ERR_THOLD_LO reg:0x06 value: 0x00
     [[1970-01-01 00:00:03:381] [INFO] [main.cpp:686] [DS936]I2C Control 1 reg:0x08 value: 0x1C
     [[1970-01-01 00:00:03:381] [INFO] [main.cpp:686] [DS936]I2C Control 2 reg:0x09 value: 0x20
     [[1970-01-01 00:00:03:382] [INFO] [main.cpp:686] [DS936]RX_PORT_CTL reg:0x0C value: 0x96
     [[1970-01-01 00:00:03:382] [INFO] [main.cpp:686] [DS936]IO_CTL reg:0x0D value: 0xB9
     [[1970-01-01 00:00:03:383] [INFO] [main.cpp:686] [DS936]GPIO_INPUT_CTL reg:0x0F value: 0x70
     [[1970-01-01 00:00:03:383] [INFO] [main.cpp:686] [DS936]GPIO0_PIN_CTL reg:0x10 value: 0x05
     [[1970-01-01 00:00:03:384] [INFO] [main.cpp:686] [DS936]FS_CTL reg:0x18 value: 0x00
     [[1970-01-01 00:00:03:384] [INFO] [main.cpp:686] [DS936]FWD_CTL1 reg:0x20 value: 0x10
     [[1970-01-01 00:00:03:385] [INFO] [main.cpp:686] [DS936]FWD_CTL2 reg:0x21 value: 0x01
     [[1970-01-01 00:00:03:386] [INFO] [main.cpp:686] [DS936]FWD_STS reg:0x22 value: 0x00
     [[1970-01-01 00:00:03:386] [INFO] [main.cpp:686] [DS936]INTERRUPT_CTL reg:0x23 value: 0x81
     [[1970-01-01 00:00:03:387] [INFO] [main.cpp:686] [DS936]INTERRUPT_STS reg:0x24 value: 0x02
     [[1970-01-01 00:00:03:387] [INFO] [main.cpp:686] [DS936]TS_CONFIG reg:0x25 value: 0x00
     [[1970-01-01 00:00:03:388] [INFO] [main.cpp:686] [DS936]TS_CONTROL reg:0x26 value: 0x00
     [[1970-01-01 00:00:03:388] [INFO] [main.cpp:686] [DS936]TS_STATUS reg:0x29 value: 0x00
     [[1970-01-01 00:00:03:389] [INFO] [main.cpp:686] [DS936]CSI_CTL reg:0x33 value: 0x01
     [[1970-01-01 00:00:03:389] [INFO] [main.cpp:686] [DS936]CSI_CTL2 reg:0x34 value: 0x40
     [[1970-01-01 00:00:03:390] [INFO] [main.cpp:686] [DS936]CSI_STS reg:0x35 value: 0x00
     [[1970-01-01 00:00:03:390] [INFO] [main.cpp:686] [DS936]CSI_TX_ICR reg:0x36 value: 0x00
     [[1970-01-01 00:00:03:391] [INFO] [main.cpp:686] [DS936]CSI_TX_ISR reg:0x37 value: 0x13
     [[1970-01-01 00:00:03:391] [INFO] [main.cpp:686] [DS936]AEQ_CTL1 reg:0x42 value: 0x71
     [[1970-01-01 00:00:03:392] [INFO] [main.cpp:686] [DS936]AEQ_CTL1 reg:0x43 value: 0x01
     [[1970-01-01 00:00:03:392] [INFO] [main.cpp:686] [DS936]FPD3_CAP reg:0x4A value: 0x00
     [[1970-01-01 00:00:03:393] [INFO] [main.cpp:686] [DS936]FPD3_PORT_SEL reg:0x4C value: 0x12
     [[1970-01-01 00:00:03:393] [INFO] [main.cpp:686] [DS936]RX_PORT_STS1 reg:0x4D value: 0x53
     [[1970-01-01 00:00:03:394] [INFO] [main.cpp:686] [DS936]RX_PORT_STS2 reg:0x4E value: 0x5D
     [[1970-01-01 00:00:03:394] [INFO] [main.cpp:686] [DS936]SENSOR_STS_3 reg:0x54 value: 0x00
     [[1970-01-01 00:00:03:395] [INFO] [main.cpp:686] [DS936]RX_PAR_ERR_HI reg:0x55 value: 0x00
     [[1970-01-01 00:00:03:396] [INFO] [main.cpp:686] [DS936]RX_PAR_ERR_LO reg:0x56 value: 0x00
     [[1970-01-01 00:00:03:396] [INFO] [main.cpp:686] [DS936]BIST_ERR_COUNT reg:0x57 value: 0x00
     [[1970-01-01 00:00:03:397] [INFO] [main.cpp:686] [DS936]BCC_CONFIG reg:0x58 value: 0x5E
     [[1970-01-01 00:00:03:397] [INFO] [main.cpp:686] [DS936]DATAPATH_CTL1 reg:0x59 value: 0x03
     [[1970-01-01 00:00:03:398] [INFO] [main.cpp:686] [DS936]PORT_CONFIG reg:0x6D value: 0x7C
     [[1970-01-01 00:00:03:398] [INFO] [main.cpp:686] [DS936]BC_GPIO_CTL0 reg:0x6E value: 0x88
     [[1970-01-01 00:00:03:399] [INFO] [main.cpp:686] [DS936]CSI_RX_STS reg:0x7A value: 0x0C
     [[1970-01-01 00:00:03:399] [INFO] [main.cpp:686] [DS936]CSI_ERR_COUNTER reg:0x7B value: 0x13
     [[1970-01-01 00:00:03:400] [INFO] [main.cpp:686] [DS936]PORT_CONFIG2 reg:0x7C value: 0x38
     [[1970-01-01 00:00:03:400] [INFO] [main.cpp:686] [DS936]PORT_PASS_CTL reg:0x7D value: 0x00
     [[1970-01-01 00:00:03:401] [INFO] [main.cpp:686] [DS936]MODE_IDX_STS reg:0xB8 value: 0xFC
     [[1970-01-01 00:00:03:401] [INFO] [main.cpp:686] [DS936]LINK_ERROR_COUNT reg:0xB9 value: 0x33
     [[1970-01-01 00:00:03:402] [INFO] [main.cpp:686] [DS936]FPD3_ENC_CTL reg:0xBA value: 0x83
     [[1970-01-01 00:00:03:402] [INFO] [main.cpp:686] [DS936]AEQ_CTL2 reg:0xD2 value: 0x94
     [[1970-01-01 00:00:03:403] [INFO] [main.cpp:686] [DS936]AEQ_STATUS reg:0xD3 value: 0x02
     [[1970-01-01 00:00:03:403] [INFO] [main.cpp:686] [DS936]ADAPTIVE EQ BYPASS reg:0xD4 value: 0x60
     [[1970-01-01 00:00:03:404] [INFO] [main.cpp:686] [DS936]AEQ_MIN_MAX reg:0xD5 value: 0xF2
     [[1970-01-01 00:00:03:405] [INFO] [main.cpp:686] [DS936]PORT_ICR_HI reg:0xD8 value: 0x00
     [[1970-01-01 00:00:03:405] [INFO] [main.cpp:686] [DS936]PORT_ICR_LO reg:0xD9 value: 0x01
     [[1970-01-01 00:00:03:406] [INFO] [main.cpp:686] [DS936]PORT_ISR_HI reg:0xDA value: 0x00
     [[1970-01-01 00:00:03:406] [INFO] [main.cpp:686] [DS936]PORT_ISR_LO reg:0xDB value: 0x10
     [[1970-01-01 00:00:03:407] [INFO] [main.cpp:686] [DS936]FC_GPIO_STS reg:0xDC value: 0x03
     [[1970-01-01 00:00:03:407] [INFO] [main.cpp:686] [DS936]FC_GPIO_ICR reg:0xDD value: 0x00
     [[1970-01-01 00:00:03:408] [INFO] [main.cpp:686] [DS936]SEN_INT_RISE_STS reg:0xDE value: 0x00
     [[1970-01-01 00:00:03:408] [INFO] [main.cpp:686] [DS936]SEN_INT_FALL_STS reg:0xDF value: 0x00

  • Hi Zoe,

    Is it normal for CSI error to occur at start up?

  • Hello, 

    Yes, this is normal. Errors can be received by the device depending on the start time of the camera in comparison to the device however, this does not reflect errors during operation. The first recommendation is to power up the serializer first before powering up the deserializer. Also, you can check for the lock flag and the trigger a reset of the devices after that or clear the error counts after that initial lock.

    By reading the register at the end of initialization, the error count register will be cleared. If the error counts are seen increasing during operation, the register 0x4E will provide guidance on what the root cause is.

    Since other errors beyond CSI errors are being reported as well, have you verified if all errors reported in 0x4E remain cleared after initialization? 

    Best,

    Zoe

  • Hello, 

    I wanted to follow up on this E2E. Please let me know if there are any remaining questions. 

    Best,

    Zoe

  • Hello Zoe,

    May I ask how many errors  in DS90UB936 ERROR counter will stop output MIPI signal?

  • Hello,

    The CSI errors would not necessarily stop the CSI-2 output however, the data received by the SoC would not be recognized. In the register dump provided, errors are asserted while the device is in operation and when the issue is experienced. These included buffer errors, line length change, and parity errors. These errors create a TX Port Pass value of 0 in both register dumps. To verify the CSI signal is output from the DS90UB936, the output signals should be measured. 

    Best,

    Zoe

  • Hi Zoe,

    What situation may cause the CSI of TI936 stop output? And, could the TI935 CSI ERROR cause the TI936 stop CSI output?(The lock pin is always high when the TI936 stop CSI output)
    Tested with an oscilloscope, the CSI-2 of TI936 did not output. Dump the register(as the .txt files above), TI935 and TI936 reported CSI ERROR.

  • Hello,

    In register 0x7C, it was selected to truncate frames if there is a change in frame size, line size, or parity errors. If any of these conditions are observed the data will not be output. Both line length change and line count change are observed in register 0x4E when the issue is experienced. I recommend setting 0x7C to the default 0x20 so that only frames with parity errors will be truncated, and verify if the CSI output is observed. 

    Additionally, 0x6D will create additional criteria for forwarding if configured. This had been left at the default to forward with errors. 

  • Hi Zoe,

    The issue of MIPI signal output stopping occurs when the SOC reboots each time (however 935/936 are not repowered this time). After the SOC reboots, the configuration register parameters for 935 and 936 are rewritten. The steps are:
    1. Configure 936
    2. Configure 935
    3. Configure sensor
    *Will reconfiguring 935 and 936 according to the above steps lead to MIPI signal output stopping?
    * Does the MIPI output stopping happen immediately upon reconfiguring 936, or only after 935 and the sensor are also reconfigured? 

    Solution: Based on the issue, our current modification is to first write 0x5 to register 0x01 before configuring the other 936 registers each time. Then wait 10ms before configuring the other 936 registers. The issue no longer occurs with this. Does this configuration help resolve the MIPI signal output stopping issue, or are there better suggestions for improvement?

  • Hi Zoe,

    There is another question, are the CSI-2 errors that occur after reconfigure the serializer and deserializer normal?

  • Hello, 

    The behavior being experienced with the 936 and 935 is still unclear without any scripts provided. 

    The output of the deserializer is controlled by the CSI-2 forwarding registers. Frames can be selected to not output based on certain error conditions which is set in register 0x6D and 0x7C. CSI-2 forwarding is also controlled by registers 0x1F - 0x21. If these registers are being changed upon configuration, the CSI-2 output would need to be disabled for changes to be made. 

    In the solution currently being used, a soft reset and auto load restart is executed to the 936 which will create a loss of lock and reinitialize the connection between the 935 and 936. Additionally, this will clear any expectations for the received video, such as line length and frames. 

    CSI-2 error should not occur after the serializer, deserializer, and sensor are configured. To ensure the errors are properly cleared following the initialization, please read registers 0x4D, 0x4E, 0x55, 0x56, 0x7A, and 0x7B. If the CSI-2 errors are incrementing, there is a problem with the set-up. 

    Best,

    Zoe

  • Hello Zoe,

    What scripts are needed?

    Best Regards

    Yuan Da

  • Hi Zoe,

    The following picture shows the scripts of 935&936.

  • Hello, 

    From reviewing the register writes here, I recommend enabling forwarding as the last steps of this configuration and using the following sequence. 

    board.WriteI2C(devAddr, 0x1F, 0x00)
    board.WriteI2C(devAddr,0x20,0x30) #disable forwarding  before enabling CSI
    board.WriteI2C(devAddr, 0x33, 0x01) # Enable CSI ports 0, continuous clock disabled
    board.WriteI2C(devAddr,0x20,0x10) #Enable forwarding of port 0
    board.WriteI2C(devAddr,0x21,0x01) #Enable round robin forwarding 
    Best,
    Zoe
  • Hi Zoe,

    Could you help review the following configuration? Thanks.

  • Hello,

    I will provide updated comments on the init sequence tomorrow. 

    The issue of MIPI signal output stopping occurs when the SOC reboots each time (however 935/936 are not repowered this time). After the SOC reboots, the configuration register parameters for 935 and 936 are rewritten. The steps are:
    1. Configure 936
    2. Configure 935
    3. Configure sensor

    To confirm, is there a disruption in power to the serializer and deserializer that requires this reconfiguration? If there is no power disruption, the reconfiguration is not necessary.

    Best,

    Zoe

  • Hi Zoe,

    When MIPI is working normally, neither 935 nor 936 is powered off; when there is a fault(no MIPI), 935 will be powered off, and then both 935 and 936 will be reconfigured. According to the previous situation, when 936 did not add soft reset, MIPI would still have no output.

  • Hello Zoe,

    Actually in our project, 935&936 are still power on during SOC resets. In this case, should we not reconfigure the registers?

    Best Regards

    Yuan Da

  • Hello Yuan Da, 

    The 935 and 936 do not need to be reconfigured during SOC resets since the power is not disrupted. If it is desired in the system to do a reset of the serializer and deserializer when the SoC is reset, a soft reset is the best way of doing this as it will reinitialize lock between the serializer and deserializer.  The soft reset will also clear the status registers on the serializer and deserializer, maintaining the configured settings. 

    Best,

    Zoe

  • Hello Zoe,

    We have two questions.

    1> Below steps is our current improved solution. We tried more than 300 times SOC resets in vehicle, the problem did not recur. Can we use this solution, or soft reset 935 as well?

    SOC Reset --> 936 Soft rest --> 936 Register Config -->935 Register Config --> Sensor Register Config

    2> Was the previous problem caused by 936 not pausing MIPI output before the configuration was completed? In other words, Was it caused by incorrect register configuration order?

    Best Regards

    Yuan Da

  • Hi Yuan, 

    I'm looking into this while Zoe is OOO through early next week. 

    1> Below steps is our current improved solution. We tried more than 300 times SOC resets in vehicle, the problem did not recur. Can we use this solution, or soft reset 935 as well?

    SOC Reset --> 936 Soft rest --> 936 Register Config -->935 Register Config --> Sensor Register Config

    This looks like a reasonable/valid approach, however  as Zoe mentioned above - this would be optional and not required since SoC is further downstream device. A reset to the SoC would not impact the devices upstream towards camera. 

    2> Was the previous problem caused by 936 not pausing MIPI output before the configuration was completed? In other words, Was it caused by incorrect register configuration order?

    If I'm following the iterations correctly above, it seems like this could be the case, or otherwise conflicts with initialization due to relocking time after resets.

    Regards, 

    Logan

  • Hello Logan and Zoe,

    Could you support to review the new register settings?

    Best Regards

    Yuan Da

  • Hello Yuan,

    I would like to suggest the following restructuring of the code to improve ease of use.

    0x01,0x05

    0xc, 0x16

    0x4C, 0x12

    0x09,0x20 #Default value of device, I2C

    ### GPIO ###

    0x0f,0x70

    0x10,0x05

    0x13, 0x65

    ### INTERRUPT ###

    0x23,0x81

    0xd9, 0x01

    ### PORT CONFIG ###

    0x6d, 0x7c

    0x7c, 0x38

    0x5c, 0x30

    0x5d,0x20

    0x5e, 0x60

    0x66, 0x60

    0x65, 0x20

    0x71, 0x2c can remove as default value

    0x58, 0x5d #I2C pass through enabled

    ### CSI-2 Transmission Settings ###

    0x1f,0x00

    0x20,0x30 

    0x33,0x01

    0x20,0x10 #RX port 1 is enabled

    0x21,0x01

    Following these configurations, it is recommended to read the status registers to clear any errors. In this configuration, the CSI output will stop and restart however, data may still be input to the system creating errors. The errors to read following this configuration includes 0x4D, 0x4E, 0x55, 0x56, 0x7A, 0x7B. 

    Best,

    Zoe