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.

RTOS/TDA2PXEVM: I2C4 IRQ not received problem

Part Number: TDA2PXEVM
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hello.

I have a problem about I2C4 IRQ is not received.

Error Log is like this.

[IPU1-0] 72.126212 s: i2cMdSubmitChan: i2c transfer Timeout IRQ not received
[IPU1-0] 72.127615 s: src/bsp_deviceI2c.c @ Line 484:
[IPU1-0] 72.127706 s: I2C3: DEV 0x26: RD ERROR !!!
[IPU1-0] 72.127798 s: src/bsp_deviceI2c.c @ Line 510:
[IPU1-0] 72.127859 s: I2C3: Error timeout 5002 ms!!!

I2C3 / I2C5 is working fine but I2C4 is always IRQ is not recieved.

In the pdk code.

./csl/soc/tda2px/cslr_soc_defines.h 

line 1073

#define CSL_INTC_EVENTID_I2CINT4        (48U)

but in the tda2px datasheet

I2C4 IRQ number is 44

--> IPU1_IRQ_44

the I2C4 IRQ number in IPU1 is different. and I changed pdk define to (44U) it also failed like same.

I want to know I2C4 is working in TDA2PX RTOS.    (build config : TDA2PX_EVM_BIOS_ALL)

TI have checked I2C-4 R/W in the RTOS?

And why I2C4 IRQ is not received in the RTOS & code/datasheet number is different ? 

What should i change I2C-4 IRQ number for IPU-1 RTOS.

Thanks & regards.

  • Hi Kim,

    The I2C driver will take the interrupt number from the application during the init time
    You can refer the i2c example in the driver.
    i2c instance is registered to sysbios in the i2cSample.cfg file and the init function is registered.
    the interrupt number is upated in the init function registered.

    The application needs to do the corresponding crossbar configuration and provide the interrupt number to the driver.

    Please check if you are doing simiar steps.

    Regards,
    Prasad

  • Hello Prasad,

    I resolved the issue.
    CTRL_CORE_PAD_MCASP4_ACLKX // i2c4-sda
    CTRL_CORE_PAD_MCASP4_FSX_REG // i2c4-scl

    CTRL_CORE_PAD_MCASP1_ACLKR // i2c4-sda
    CTRL_CORE_PAD_MCASP1_FSR // i2c4-scl

    both of pins are set to i2c4
    I disabled one of not connected, I2C4 is working fine.

    I have a question about this thing.
    when two or more than pins are set to same function (ex. in this Issue I2C4)
    which pin is working this function.
    Is there pinmux have priority about function or random ?

    Thanks & Regard
    Jukyeong
  • Hi,

    It is strongly recommended that you don't have two or more pins set to same function.
    The behavior might vary depending upon the pull up/pull down connected to particular lines.

    Regards,
    Rishabh