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.

Beagleboard rev C4 and I2C problem...

Other Parts Discussed in Thread: OMAP-L138

Hi,

I am trying to get work http://dsscircuits.com/hmc5883l-breakout-board.html and http://dsscircuits.com/i2c-multiplexer.html but I can't. I am using angstrom distribution that I compiled by myself to kernel 2.6.39. When I connect everything (first I did pull up by 4k7 of extension header pin 24 and 23 to extension header pin 1. Then I connected SCL to SCL of mentioned devices, SDA to SDA and GND as well. Also I created 2.34 V for the HMC breakout board (first link) by resistor voltage devider using extension header 2 (5V). The I2C multiplexer (link 2) VDD was connected to 5v of the extension header, and the addresses pins to GND). The problem is that when I run

i2cdetect -r 2

I get:

 

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

and nothing is found. I also tried to disconnect the pull up resistors and run i2cdetect -r 2 hoping that I will get an timeout but I didn't. What can be wrong? I don't know where to look to find some "idea":-/ Thanks!

 

  • Hello Gabrijel,

                       I have gone through that the Schematics of all Devices whichever he want to interface. According to my knowledge there is some Hardware problem.

    To solve the problem follow the below mentioned steps:

    1.     Do not take / avoid taking power supply using Voltage Divider from 5.0 V. Take 3.3V (2.16V - 3.6V) from TP3 Test Point from Beagle board. Otherwise use    

            3.3V LDO from 5V.

    2.     Use 1k pull up for HMC5883L at SDA & SCL and 4.7k in INT PIN.

    3.     Use pull up 2.2K for I2C Multiplexer PCA9544 at SDA & SCL PINs.

    4.     If not getting data from HMC5883L Device reduce I2C Clock Speed from 400 KHz to 100 KHz.

    5.     Please check HMC5883L 8-bit slave address is 0x3C for write operations 0x3D for read operations.

    6.     I2C Address for PCA9544 is b'1110XXXX'(Binary format)

    7.     Use ribbon cable lenth should be less then 10cm for I2C bus Communication.

    8.     Please check that I2C Clock & Data is reaching upto the SCL pin of the  HMC5883L

          

    If the above steps did not solve your problem please replay these questions:

    1.  Which I2C Module you are using?

    2.  Can you please send your I2C driver & Peripheral source code, I2C Schematics?
     

    Regards

    Abhijit

  • Hi,

    thanks for detailed steps to solve this problem. I managed to solve my problem and the solutions was recompiling new u-boot. As the process of searching devices on I2C bus was slow in Angstrom, and in u-boot was very fast (even when I tried to scan the bus without pull-up resistors), I concluded that something might be wrong with u-boot. I have readed on Internet that when pull-up resistors are not present, the scanning gives timeout or finishes very fast. So I recompiled u-boot (enabled I2C as on http://elinux.org/BeagleBoard#U-Boot) and now it works in u-boot and in Angstrom. Thanks!

  • Hi Abhijit,

    I am working on HMC5883L compass module. How to enable the driver in my OMAP-L138.

    please share the driver source code for HMC5883L to include the driver in Davinci kernel.

    Please help me.

    Thanks,
    Lofna

  • Hi Lofna,

    I suggest you to duplicate you post in the OMAP-L13x forum at the link:

    http://e2e.ti.com/support/dsp/omap_applications_processors/f/42.aspx

    because that is the proper place.

    BR

    Tsvetolin Shulev