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.

I2C timeout on OMAP3530 processor

Greetings,

I am working on an application which requires creating an I2C communication with another instrument.  I cannot post any code because the software is proprietary.  The I2C controller has already reduced speeds to 100 kHz, and the device interfaced with the OMAP processor definitely works correctly (verified in our debugging process).  The lines are pulled up correctly, and we tried using other I2C controllers and could not see the device at all.  The console output is below:

I apologize for the image, but this is what the software guy gave me (instead of a log).  What I can tell you about the hardware and software is that it is our hardware, not an EVM, and the Linux version is 2.6.32.  If you have any questions about the device and software, I will try to answer, but I would appreciate any help you can provide.  I apologize for not being able to provide more information about the problem.

Thanks,

Nima

  • hi nima,

     Which one is your master?

    Regards

    Jethin

  • Hi Nima,

    From this logs you can't say much. But you can try the following.

    1. First check the I2C controller to which that you are connected? e.g. I2C1, I2C2 or I2C3 etc.. See whether you are using the same controller in your driver.

    2. Check whether the 7-bit slave address specified is correct or not. 

    3. See whether the device datasheets specify any pull-up values or not.

    4. See the pinmux settings for the I2C pins are correct or not.

    5. See whether any power on sequence for the slave chip.

    6. Last, connect an oscilloscope to the I2C lines and see any activity happening on the bus during the transfer.

  • Hi Renjith,

     

    I am also facing the I2C time out problem on AM335x platform. I do not have problem during bootup. I have verified the slave address and have pull up resistors of 2.2K.

    Initially I2C communication is good for couple of seconds and then time out happens. Once this happens i am resetting the slave device and then communication starts again. After every few seconds I2C lines are going low and getting the time out indication. Not sure who is pulling the lines low.

    Any change in driver is required to aviod time out issues.

    We have tried communicating to the slave with another processor on the same board by disconnecting ARM processor and it works fine.

  • Raja,

    Looks like some bus capacitance issue.. I'm not an electronics expert. But still,

    1. how many slaves are connected on your bus? 

    2. Which is the device that you are trying to communicate with?

    3. Have you tried with different values of pull-up registers?

    4. If there are more than one device on the bus, can you disconnect one by one and see whether the issue occurs or not?