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.

DS90UB940-Q1EVM: DS90UB940: I2C slave not accessible

Part Number: DS90UB940-Q1EVM
Other Parts Discussed in Thread: ALP

Hello,

I'm trying to connect a FPD3 camera to DS90UB940-Q1EVM and access the camera by I2C but this doesn't work for. The camera is the Allied Vision Alvium 1800 C-240C which is connected to J3 connector on the EVM (SMA connector). The configuration of the EVM is:

MODE_SEL0: 1 (4 data lanes, 1 CSI port active)
MODE_SEL1: 4 (HS Back Channel: 20 Mbps, Input Mode: Coax)

This is the current configuration of the registers:

Register Display - ALP Nano 1 - DS90UB940, Connector 1

Register  Data    Name
0x0000    0x58    I2C Device ID
0x0001    0x04    Reset
0x0002    0x00    General Configuration 0
0x0003    0xF8    General Configuration 1
0x0004    0xFE    BCC Watchdog Control
0x0005    0x1E    I2C Control 1
0x0006    0x00    I2C Control 2
0x0007    0x79    REMOTE ID
0x0008    0x78    SlaveID[0]
0x0009    0x00    SlaveID[1]
0x000A    0x00    SlaveID[2]
0x000B    0x00    SlaveID[3]
0x000C    0x00    SlaveID[4]
0x000D    0x00    SlaveID[5]
0x000E    0x00    SlaveID[6]
0x000F    0x00    SlaveID[7]
0x0010    0x78    SlaveAlias[0]
0x0011    0x00    SlaveAlias[1]
0x0012    0x00    SlaveAlias[2]
0x0013    0x00    SlaveAlias[3]
0x0014    0x00    SlaveAlias[4]
0x0015    0x00    SlaveAlias[5]
0x0016    0x00    SlaveAlias[6]
0x0017    0x00    SlaveAlias[7]
0x0018    0x00    MAILBOX_18
0x0019    0x01    MAILBOX_19
0x001A    0x00    GPIO[9] and Global GPIO Config
0x001B    0x00    Frequency Counter
0x001C    0x22    General Status
0x001D    0x60    GPIO0 Config
0x001E    0x00    GPIO1_2 Config
0x001F    0x00    GPIO_3 Config
0x0020    0x00    GPIO_5_6 Config
0x0021    0x00    GPIO_7_8 Config
0x0022    0x00    Datapath Control
0x0023    0x38    RX Mode Status
0x0024    0x08    BIST Control
0x0025    0x00    BIST ERROR COUNT
0x0026    0x83    SCL High Time
0x0027    0x84    SCL Low Time
0x0028    0x00    Datapath Control 2
0x0029    0x00    Reserved
0x002A    0x00    Reserved
0x002B    0x00    I2S Control
0x002C    0x00    Reserved
0x002D    0x00    Reserved
0x002E    0x00    PCLK Test Mode
0x002F    0x00    Reserved
0x0030    0x00    Reserved
0x0031    0x00    Reserved
0x0032    0x90    Reserved
0x0033    0x25    Reserved
0x0034    0x01    DUAL_RX_CTL
0x0035    0x00    AEQ TEST
0x0036    0x00    Reserved
0x0037    0xB8    MODE_SEL
0x0038    0x00    Reserved
0x0039    0x00    Reserved
0x003A    0x00    I2S_DIVSEL
0x003B    0x3F    Reserved
0x003C    0x20    Reserved
0x003D    0xE0    Reserved
0x003E    0x23    Reserved
0x003F    0x00    Reserved
0x0040    0x43    Reserved
0x0041    0x03    LINK ERROR COUNT
0x0042    0x03    Reserved
0x0043    0x00    HSCC_CONTROL
0x0044    0x60    ADAPTIVE EQ BYPASS
0x0045    0x88    ADAPTIVE EQ MIN MAX
0x0046    0x00    Reserved
0x0047    0x00    Reserved
0x0048    0x0F    Reserved
0x0049    0x00    Reserved
0x004A    0x00    Reserved
0x004B    0x08    Reserved
0x004C    0x00    Reserved
0x004D    0x00    Reserved
0x004E    0x63    Reserved
0x004F    0x00    Reserved
0x0050    0x03    Reserved
0x0051    0x10    Reserved
0x0052    0x00    areg12_2
0x0053    0x01    Reserved
0x0054    0x80    Reserved
0x0055    0x00    Reserved
0x0056    0x00    areg12_6
0x0057    0x00    areg12a_f
0x0059    0x7F    Reserved
0x005A    0x20    Reserved
0x005B    0x20    Reserved
0x005C    0x00    Reserved
0x005D    0x00    Reserved
0x005F    0x00    Reserved
0x0060    0x00    Reserved
0x0061    0x00    Reserved
0x0062    0x00    Reserved
0x0063    0x00    Reserved
0x0064    0x10    PGCTL
0x0065    0x00    PGCFG
0x0066    0x00    PGIA
0x0067    0x00    PGID
0x0068    0x00    PGDBG
0x0069    0x00    PGTSTDAT
0x006A    0x00    CSICFG0
0x006B    0x00    CSICFG1
0x006C    0x00    CSIIA
0x006D    0x01    CSIID
0x006E    0x00    GPI Pin Status 1
0x006F    0x00    GPI Pin Status 2
0x0070    0x00    Reserved
0x0071    0x00    Reserved
0x0072    0x00    Reserved
0x0073    0x07    Reserved
0x0074    0x07    Reserved
0x0075    0x08    Reserved
0x0076    0x00    Reserved
0x0077    0x00    Reserved
0x0078    0x00    Reserved
0x0079    0x00    Reserved
0x007A    0x00    Reserved
0x007B    0x00    Reserved
0x007C    0x02    Reserved
0x0080    0x00    Reserved
0x0081    0x00    Reserved
0x0082    0x00    Reserved
0x0083    0x00    Reserved
0x0084    0x00    Reserved
0x0090    0x00    Reserved
0x0091    0x00    Reserved
0x0092    0x00    Reserved
0x0093    0x00    Reserved
0x0094    0x00    Reserved
0x0098    0x00    Reserved
0x0099    0x00    Reserved
0x009A    0x00    Reserved
0x009B    0x00    Reserved
0x009C    0x00    Reserved
0x009D    0x00    Reserved
0x009E    0x00    Reserved
0x009F    0x00    Reserved
0x00A1    0x00    Reserved
0x00A2    0x8C    Reserved
0x00C0    0x00    Reserved
0x00C1    0x00    Reserved
0x00C4    0x00    Reserved
0x00C5    0x00    Reserved
0x00C8    0xC0    Reserved
0x00C9    0x00    Reserved
0x00CA    0x00    Reserved
0x00CB    0x00    Reserved
0x00CC    0x00    Reserved
0x00E0    0x00    Reserved
0x00E1    0x00    Reserved
0x00E2    0x00    Reserved
0x00E3    0x00    Reserved
0x00E8    0x00    Reserved
0x00E9    0x00    Reserved
0x00EA    0x00    Reserved
0x00F0    0x5F    RX_ID0
0x00F1    0x55    RX_ID1
0x00F2    0x42    RX_ID2
0x00F3    0x39    RX_ID3
0x00F4    0x34    RX_ID4
0x00F5    0x30    RX_ID5
0x00F6    0x00    Reserved
0x00F8    0x00    Reserved
0x00F9    0x00    Reserved

And this is the information tab in ALP:

When I click on "Scan Connected Devices" I just see the EVM itself.

When I try to access the camera by I2C (e.g. reading out serial number at register address 0x198) it seems like the camera is not accessible:

board.ReadI2C(0x78, 0x198, 64)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Did I forget to configure anything to access the camera as an I2C slave?

Thanks,
Best regards.
Tanzou

  • Hi Tanzou,

    Although the addressing and aliasing of the registers would be correct for an I2C communication, the configuration of the Serializer is equally as important for establishing the path from DES -> SER. Remote SER ID appears to be 0x79. Could you provide which Serializer is being used in this application?

    Best,

    Miguel

  • Hi Miguel,

    Thanks for responding. The serializer within the camera is the DS90UB953. I found that the DS90UB953 I2C address is given in the camera user guide: 0x30 (8-bit address) / 0x18 (7-bit address). Therefore I changed the value of register REMOTE ID to 0x30 (because the register expects a 7-bit address but bit[0] is used for "freezing device ID").

    The camera itself has the I2C address 0x78 which I already configured in registers SlaveID[0] and SlaveAlias[0].

    I expect that in the "Information" tab I can see the partner information of the serializer but it is always greyed out.

  • Hi Tanzou,

    I expect that in the "Information" tab I can see the partner information of the serializer but it is always greyed out.

    Yes, this would be the case.

    If the partner information is greyed out, it may indicate that lock is not established. I see you have connected to J3 of the 940 EVM, may I confirm what type of cabling is being used here?

    There could be a loss of lock due to the termination impedance - if you are using a single-ended cabling connection, the R50 must be populated at 50-ohms, same for the 953 side of the connection.

    Would you mind sharing the block diagram/cabling types of your configuration?

    Best,

    Miguel