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.

TDA2EG: i2cMdSubmitChan: i2c transfer Timeout IRQ not received

Part Number: TDA2EG
Other Parts Discussed in Thread: TDA2E

Hi

     I am try to test the usecase "csi2_cal_multi_cam_view" on TDA2Ex, and got the following error:

  It means the I2C communication based on interrupt mode between TDA2Ex and UB964 is failed.

  So i have some questions about the I2C interrupt mode:

   Q1: I2C hardware setup

   According to the page 10 of "VisionSDK_UserGuide_TDA2Ex", the complete setup is as follows, only CSI2 interface is connected and I2C interface (red circle) is not connected:

  And from page19 of the "TDA2Ex EVM CPU Board User's Guide":

  

   so , shall we connect the I2C5 pin of TDA2E to the Ub964 daughter board? And how to connect?

  Q2: UB964 Interrupt Output pin hardware setup

   UB964 has a output pin named "INTB" to output the interrupt signals. Shall we connect this pin to TDA2Ex soc? 

   From the error msg "i2c transfer Timeout IRQ not received", it seems that the interrupt signal from UB964 has not been sent to TDA2Ex correctly. So what i should do about "INTB" pin?

  Q3: Interrupt number set (lld_hsi2c_initParam_t->i2cIntNum) 

    From the log of  "lld_hsi2c_initParam_t->i2cIntNum", i found that the current interrupt number is 41.

   From the page 5872 of "DRA75x, DRA74x Technical Reference Manual":

  

  so does the "lld_hsi2c_initParam_t->i2cIntNum" should be same with the default IRQ mapping of I2C? 

  For the TDA2Ex, which use the I2C5 to connect the CSI2 camera, does not have the default IRQ mapping to IPU1, and out VSDK usecases are 

run on the IPU1, so how to set the I2C interrupt number?

Q4: Are there any other possible reasons about " i2c transfer Timeout IRQ not received" error?

Thanks

xuanbo

  • Hi Xuanbo,

    The I2C line connects to UB964 via the high-speed connector P10 (CSI2_CAMERA)
    From the log it seems like UB964 did not acknowledge I2C write from TDA2Ex

    Can you please ensure on the following
    1. The connection between UB964 and TDA2Ex is stable / firm
    2. UB964 EVM requires additional power, can you please ensure it's connected to
    12V
    3. Which version of VisionSDK are you using?
    4. Can you build BSP demo application for CSI2 capture and check?

    Regards,
    Sujith
  • Hi Sujith

      My VSDK version is 03-01, and i am sure that UB964 is powered and connected with TDA2E stable.

      How about my Q2/3/4?

    Thanks

    xuanbo

  • Hi Xuanbo,

    On Q2, we don't use the interrupt of UB964. The I2C on TDA2Ex is operated in interrupt mode. You don't require any hardware modifications to run VisionSDK on TDA2EX EVM with UB964

    On Q3, Are you running VisionSDK on a custom board or TI EVM. If it's TI EVM VisionSDK uses correct instance of I2C.

    On Q4, Assuming you are using TI EVM, let try and check if UB964 EVM is functional or not.
    1. Compile I2C read/write utility present in ti_components\drivers\pdk\packages\ti\drv\bsp_lld\i2c\examples
    2. Using CCS, load and Run the application
    3. In CCS console, change the I2C instance to 1 with command "inst 4"
    4. type the command "Probe"

    You should see 0x3D as detected slave in CCS console.

    Regards,
    Sujith
  • Hi

         Thank you for your suggestions.

          It seems that I have a wrong understanding about I2C interrupt mode. My old understanding is that when the external interrupt signal (from UB964) is coming, the TDA2e

    can read the data prepared by UB964. But from your answer, my understanding is wrong.

         I will study the CCS I2c example you mentioned.

         By the way, my Q3 is not about I2c instance number, it is about interrupt number, something related with the I2c interrupt  handle? Could you explain more about this, please.

    Thanks

    xuanbo

  • Hi Xuanbo,

    This seems like an documentation issue, i will check on that.
    Please note that VisionSDK uses this instance of I2C and interrupts from this module can be routed to IPU1_0.

    Regards,
    Sujith