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.

TDA2PXEVM: Fusion board single camera demo i2c error

Part Number: TDA2PXEVM
Other Parts Discussed in Thread: DS90UB953-Q1EVM, , ALP

Hi, 

I am developing on the TDA2PXEVM with fusion board and DS90UB953-Q1EVM, running the Vision SDK v.3.03 demo program from SD card.

When I reach the UART demo menu, I first input s->2->3 to set my image sensor to be OV10640 via CSI2 to match the specs of the DS90UB953-Q1EVM. 

Once I am returned to the main menu, I input 5->1 to select the single channel camera via fusion board mode. When I do this, I get an "i2c4 transfer to slave address 0x32 failed" error. Is the program expecting the 953 serializer to be at that address, or the 10640 image sensor itself? Which would be the relevant files I need to modify to resolve this issue? I have tried setting registers on the 953 EVM via ALP, but that always leads to the registers keeping their default values, or being reset to 0. 

Attached is the serial terminal log: 

[IPU1-0]  Vision SDK Usecases,
[IPU1-0]  --------------------
[IPU1-0]  1: Single Camera Usecases
[IPU1-0]  2: Multi-Camera LVDS Usecases
[IPU1-0]  3: AVB RX Usecases, (TDA2x & TDA2Ex ONLY)
[IPU1-0]  4: Dual Display Usecases, (TDA2x EVM ONLY)
[IPU1-0]  5: ISS Usecases, (TDA3x ONLY)
[IPU1-0]  6: TDA2x Stereo Usecases
[IPU1-0]  7: Network RX/TX Usecases
[IPU1-0]  a: Miscellaneous test's
[IPU1-0]  f: TIDL Usecase
[IPU1-0]
[IPU1-0]  s: System Settings
[IPU1-0]
[IPU1-0]  x: Exit
[IPU1-0]
[IPU1-0]  Enter Choice:
[IPU1-0]
[HOST  ]     23.412645 s:  NETWORK_CTRL: Starting Server (port=5000) !!!
[HOST  ]     23.412676 s:  NETWORK_CTRL: Starting Server ... DONE (port=5000) !!!
[IPU1-0]     30.206033 s:
[IPU1-0]     30.206094 s:
[IPU1-0]
[IPU1-0]  ===============
[IPU1-0]  System Settings
[IPU1-0]  ===============
[IPU1-0]
[IPU1-0]  1: Display Settings
[IPU1-0]  2: Capture Settings
[IPU1-0]  3: ISS Settings (TDA3x ONLY)
[IPU1-0]  4: Enable Charging via USB2 Port (TDA2x EVM ONLY)
[IPU1-0]  5: Print PRCM Statistics
[IPU1-0]  6: Show Memory/CPU/DDR BW usage
[IPU1-0]  7: Calibration Settings
[IPU1-0]
[IPU1-0]  x: Exit
[IPU1-0]
[IPU1-0]  Enter Choice:
[IPU1-0]
[IPU1-0]     30.206368 s:
[IPU1-0]     32.318154 s:
[IPU1-0]
[IPU1-0]  ==============
[IPU1-0]  Capture Source
[IPU1-0]  ==============
[IPU1-0]
[IPU1-0]  1: OV10635 Sensor 720P30
[IPU1-0]  2: HDMI Capture 1080P60 (Not Supported in TDA2x/TDA2Ex Multi-serdes board)
[IPU1-0]  3: OV10640 Sensor 720P30 - CSI2 (TDA3x ONLY)
[IPU1-0]  4: OV10640 Sensor 720P30 - Parallel (TDA3x ONLY)
[IPU1-0]  5: AR0132  Sensor 720P60 - Parallel (TDA3x ONLY)
[IPU1-0]  6: AR0140  Sensor 720P60 - Parallel (TDA3x ONLY)
[IPU1-0]  7: IMX224  Sensor 1280x960 - CSI2 (TDA3x ONLY)
[IPU1-0]  8: AR0140  Sensor for SV - TIDA00262 (TDA3x ONLY)
[IPU1-0]  9: OV10640 Sensor for SV - IMI (TDA3x ONLY)
[IPU1-0]  a: OV10635 Sensor for Mosaic Display - SAT0088/OV10635 (TDA2PX, TDA2EX & TDA3x)
[IPU1-0]  b: OV2775 Sensor 1080p30 (TDA3x ONLY)
[IPU1-0]  c: AR143 MARS Camera (TDA3x ONLY)
[IPU1-0]  d: Skip Sensor configuration
[IPU1-0]  e: OV2775 Sensor 1080p30 - TIDA001130
[IPU1-0]  f: IMX390 Sensor 1080p30 - D3
[IPU1-0]
[IPU1-0]  x: Exit
[IPU1-0]
[IPU1-0]  Enter Choice:
[IPU1-0]
[IPU1-0]     32.318825 s:
[IPU1-0]     34.476880 s:
[IPU1-0]     34.476941 s:  Current System Settings,
[IPU1-0]     34.477185 s:  ========================
[IPU1-0]     34.477246 s:  Display Type   : HDMI 1920x1080 @ 60fps
[IPU1-0]     34.477307 s:  Capture Source : Sensor OV10640 1280x720  @ 30fps - ISS CSI2, Bayer (TDA3x EVM ONLY)
[IPU1-0]     34.477398 s:  My IP address  : 0.0.0.0
[IPU1-0]     34.477459 s:  ISS Settings   : LDC=[OFF] VTNF=[OFF] WDR=[OFF]
[IPU1-0]     34.477551 s:
[IPU1-0]     34.477581 s:  ============
[IPU1-0]     34.477642 s:  Usecase Menu
[IPU1-0]     34.477673 s:  ============
[IPU1-0]     34.477734 s:
[IPU1-0]
[IPU1-0]  Vision SDK Usecases,
[IPU1-0]  --------------------
[IPU1-0]  1: Single Camera Usecases
[IPU1-0]  2: Multi-Camera LVDS Usecases
[IPU1-0]  3: AVB RX Usecases, (TDA2x & TDA2Ex ONLY)
[IPU1-0]  4: Dual Display Usecases, (TDA2x EVM ONLY)
[IPU1-0]  5: ISS Usecases, (TDA3x ONLY)
[IPU1-0]  6: TDA2x Stereo Usecases
[IPU1-0]  7: Network RX/TX Usecases
[IPU1-0]  a: Miscellaneous test's
[IPU1-0]  f: TIDL Usecase
[IPU1-0]
[IPU1-0]  s: System Settings
[IPU1-0]
[IPU1-0]  x: Exit
[IPU1-0]
[IPU1-0]  Enter Choice:
[IPU1-0]
[IPU1-0]     36.634356 s:
[IPU1-0]     36.634508 s:
[IPU1-0]
[IPU1-0]  ISS Usecases (TDA3x ONLY)
[IPU1-0]  ---------------------------
[IPU1-0]  1: 1CH ISS capture + ISS ISP + ISS LDC+VTNF + Display
[IPU1-0]  2: 4CH ISS capture + ISS ISP + Simcop + Surround View (DSP1) +  Display
[IPU1-0]  4: 3D SRV 4CH ISS capture + ISS ISP + DeWarp + Synthesis (DSP1) + Display
[IPU1-0]  5: Surround View Calibration
[IPU1-0]  6: 3D + 2D SRV 4CH ISS capture + ISS ISP + DeWarp + Synthesis (DSP1) + Display
[IPU1-0]  c: 4 Channel (2 ch per CSI2 Inst) ISS Capture (OV2775 Sensor) Display
[IPU1-0]
[IPU1-0]  x: Exit
[IPU1-0]
[IPU1-0]  Enter Choice:
[IPU1-0]
[IPU1-0]     37.708869 s:
[IPU1-0]     37.708930 s:  Entered Chains_issIspSimcop_Display
[IPU1-0]     39.067681 s:  ISSCAPTURE: Create in progress !!!
[IPU1-0]     39.068931 s:  UTILS: DMA: Allocated CH (TCC) = 48 (48)
[IPU1-0]     39.069084 s:  UTILS: DMA: 0 of 1: Allocated PaRAM = 48 (0x63304800)
[IPU1-0]     39.069358 s:  ISSCAPTURE: Create Done !!!
[IPU1-0]     39.069511 s:  ISSM2MISP: Create in progress !!!
[IPU1-0]     39.070395 s:  UTILS: DMA: Allocated CH (TCC) = 49 (49)
[IPU1-0]     39.070517 s:  UTILS: DMA: 0 of 1: Allocated PaRAM = 49 (0x63304820)
[IPU1-0]     39.073811 s:  ISSM2MISP: Create Done !!!
[IPU1-0]     39.073994 s:  ALGORITHM: Create in progress (algId = 6) !!!
[IPU1-0]     39.074574 s:  ALGORITHM: Create Done (algId = 6) !!!
[IPU1-0]     39.075062 s:  ISS Resizer: Create in progress !!!
[IPU1-0]     39.079363 s:  ISS RESIZER: Create Done !!!
[IPU1-0]     39.079515 s:  DISPLAY: Create in progress !!!
[IPU1-0]     39.080034 s:  DISPLAY: Create Done !!!
[IPU1-0]     39.080247 s:  ALGORITHM: Create in progress (algId = 3) !!!
[IPU1-0]     39.097480 s:  ALG_ISS_AEWB: Memory requirement is 867036 bytes.
[IPU1-0]     39.097602 s:  ALG_ISS_AEWB: Memory provided by user is 917504 bytes.
[IPU1-0]     39.097663 s:  ALG_ISS_AEWB: Unused Memory is 50468 bytes.
[IPU1-0]     39.097755 s:  ALGORITHM: Create Done (algId = 3) !!!
[IPU1-0]     39.097907 s:  ISSM2MSIMCOP: Create in progress !!!
[IPU1-0]     39.098853 s:  UTILS: DMA: Allocated CH (TCC) = 50 (50)
[IPU1-0]     39.098975 s:  UTILS: DMA: 0 of 1: Allocated PaRAM = 50 (0x63304840)
[IPU1-0]     39.100439 s:  ISSM2MSIMCOP: Create Done !!!
[IPU1-0]     39.100744 s:  DISPLAY: Create in progress !!!
[IPU1-0]     39.101323 s:  DISPLAY: Create Done !!!
[IPU1-0]     39.101689 s:  GRPXSRC: Create in progress !!!
[IPU1-0]     40.594034 s:  GRPXSRC: Create Done !!!
[IPU1-0]     40.594522 s:  DISPLAY: Create in progress !!!
[IPU1-0]     40.594979 s:  DISPLAY: Create Done !!!
[IPU1-0]     40.595498 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1022
[IPU1-0]     40.595650 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 243976 B (238 KB)
[IPU1-0]     40.595803 s:  SYSTEM: Heap = SR_OCMC              @ 0x00000000, Total size = 0 B (0 KB), Free size = 0 B (0 KB)
[IPU1-0]     40.595955 s:  SYSTEM: Heap = SR_DDR_CACHED        @ 0x88103000, Total size = 368037888 B (350 MB), Free size = 339918336 B (324 MB)
[IPU1-0]     40.596138 s:  SYSTEM: Heap = SR_DDR_NON_CACHED    @ 0xbfc00000, Total size = 127872 B (0 MB), Free size = 106368 B (0 MB)
[IPU1-0]     40.603336 s:  QSPI Read Started, please wait!
[IPU1-0]     40.603611 s:  QSPI Read Completed Sucessfully
[IPU1-0]     40.605654 s:  CHAINS: DCC Tag ID check failed for QSPI
[IPU1-0]     40.605776 s:  CHAINS: Using DCC Profile from Driver
[IPU1-0]     40.616970 s:
[IPU1-0]     40.617306 s:  i2cMdSubmitChan: i2c4 transfer to slave address 0x32 failed
[IPU1-0]     40.617428 s: src/bsp_deviceI2c.c @ Line 667:
[IPU1-0]     40.617519 s:  I2C4: DEV 0x32: ERROR !!!
[IPU1-0]     40.617580 s: src/bsp_deviceI2c.c @ Line 689:
[IPU1-0]     40.617672 s:  I2C4: Error timeout 1 ms!!!
[IPU1-0]     40.617733 s:  Assertion @ Line: 507 in C:/PROCESSOR_SDK_VISION_03_03_00_00/vision_sdk/apps/src/rtos/iss/src/common/app_util_iss.c: 0 == status : failed !!!
[IPU1-0]     40.618404 s:  Assertion @ Line: 507 in C:/PROCESSOR_SDK_VISION_03_03_00_00/vision_sdk/apps/src/rtos/iss/src/common/app_util_iss.c: 0 == status : failed !!!
[IPU1-0]     40.619959 s:  *** UTILS: CPU KHz = 20000 Khz ***
[IPU1-1]     40.596840 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[IPU1-1]     40.596962 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 655360 B (640 KB), Free size = 645320 B (630 KB)
[HOST  ]     40.597389 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[HOST  ]     40.597419 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 6291456 B (6144 KB), Free size = 6249648 B (6103 KB)
[DSP1  ]     40.597663 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[DSP1  ]     40.597694 s:  SYSTEM: Heap = LOCAL_L2             @ 0x00800000, Total size = 227264 B (221 KB), Free size = 227264 B (221 KB)
[DSP1  ]     40.597755 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 524288 B (512 KB), Free size = 516456 B (504 KB)
[DSP2  ]     40.598029 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[DSP2  ]     40.598060 s:  SYSTEM: Heap = LOCAL_L2             @ 0x00800000, Total size = 227264 B (221 KB), Free size = 227264 B (221 KB)
[DSP2  ]     40.598121 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 524288 B (512 KB), Free size = 516456 B (504 KB)
[EVE1  ]     40.598822 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[EVE1  ]     40.599127 s:  SYSTEM: Heap = LOCAL_L2             @ 0x40020000, Total size = 22528 B (22 KB), Free size = 22528 B (22 KB)
[EVE1  ]     40.599676 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 254288 B (248 KB)
[EVE2  ]     40.600957 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[EVE2  ]     40.601262 s:  SYSTEM: Heap = LOCAL_L2             @ 0x40020000, Total size = 22528 B (22 KB), Free size = 22528 B (22 KB)
[EVE2  ]     40.601811 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 254288 B (248 KB)
[IPU2  ]     40.602818 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[IPU2  ]     40.602940 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 252056 B (246 KB)
 

Thanks,

Richard

  • Hi Richard,

    Are you sure you have UB953 based OV10640 camera board? Typically OV10640 comes with the UB913 serializer .
    Also please note that as of now, there are only two sensors supported on Fusion platform, OV2775 and IMX390. Both of them uses UB953 serializer. Sensor boards with UB913 serializer are not supported.

    Rgds,
    Brijesh
  • Hi Brijesh, 

    The schematic for the DS90UB953-Q1EVM depicts the OV10640 as its image sensor.

    In the demo program capture settings, the OV10640 is listed as an option. Does this mean it expects the OV10640 board to be connected directly to the TDA2PXEVM, rather than through the fusion board? 

    ~/vision_sdk/docs/FeatureSpecificUserGuides/VisionSDK_UserGuide_ISS_SensorFrameWork.pdf describes how to add a camera sensor to the existing selection. However, the relevant files and functions for the OV10640 already exist. Is there some way to modify this software to communicate with the OV10640 through the fusion board? 

    Thanks,

    Richard  

  • Hi Richard,

    Yes, If you select plain OV10640, it means OV10640 needs to be connected directly to the board over LI connector. If you select IMI OV10640, it means it uses sensor with the UB913 serialiazer.
    Well you could most of the functionality of OV10640, just add new init for UB953 based OV10640 sensor and initialize UB953 accordingly. The sensor driver is common even for direct OV10640 sensor and UB913 based OV10640 sensor. It just init changes and accordingly initialization for the serializer.

    Rgds,
    Brijesh
  • Hi Brijesh, 

    I'm trying to add a new init for the UB953 based OV10640, based on IssSensor_OV10640_imi_Init() in iss_sensor_ov10640.c. While looking through this function, it seemed necessary to create a new start function, based on OV10640_imi_Start() as well. However, while looking through the start function, one of the main components is the register file ov10640_imi_wdr_1280x720_setup.h, which specify the register addresses and values for 1000+ registers. Is there documentation available on these registers, or are only minimal changes needed to make the register file work with the UB953 based OV10640? 

    Thanks,

    Richard  

  • Hi Richard,

    This array with 1000+ entries are actually used to configure OV10640 sensor. I am not sure if this is minimal or if there is any minimal settings. We have got these settings from Omnivision. You could contact them to get the minimal settings. 

    In addition to OV10640 configuration, You will require to configure UB953 and UB960 using I2C. Please have a look at the IMI configuration to understand how they are configured. 

    Rgds,

    Brijesh

  • Hi Richard,

    Are you looking for any more information?

    Let us know if we can close the thread.

    Rgds,

    Brijesh

  • Hi Brijesh, 

    I have contacted Omnivision about the OV10640 register settings, but they have not gotten back to me yet. 

    I think I have a fair understanding of how to configure the UB953 and UB960. 

    Thanks,

    Richard