6 Replies Latest reply on Oct 20, 2015 2:09 AM by JaeHyuk

    I2C sensor problem.. Please give me any help.

    JaeHyuk

      Hi. I am using Intel Edison and arduino expansion board and sparkfun's I2C breakout block(SparkFun Blocks for Intel® Edison - I2C Breakout Block - learn.sparkfun.com) and sparkfun's MPL3115A2(SparkFun Altitude/Pressure Sensor Breakout - MPL3115A2 - SEN-11084 - SparkFun Electronics).

       

      I want to get sensor data but when I upload some source code(sparkfun/MPL3115A2_Breakout · GitHub), I get just garbage values

      such as Altitude(m):-999.00Pressure(Pa):-999.00 Temp(c):-999.00.

       

      So I've searched the reason and I understand that the problem is because of wrong I2C connection.

      I typed i2cdetect -y -r 1 in console but the message show up like below picture.

      i2c_error_message.png

      the error is "i2c-designware-pci 0000:00:08.0: i2c_dw_handle_tx_abort : lost arbitration". and I've searched the other forums in this intel communities,

       

      but I can't get precise solution.

       

      Does anyone solve this problem? please give me any help.

       

      Thanks in advance.

       

      Regard,

       

      JaeHyuk

        • 1. Re: I2C sensor problem.. Please give me any help.
          CMata_Intel

          Hi JaeHyuk,

           

          Which image are you using (run configure_edison --version)?

          Are you checking the lines from the devices?

          What is the output of running i2cdetec -l?

          Are you powering the shield with 3.3V or 5V?

           

          Regards,

          Charlie

          • 2. Re: I2C sensor problem.. Please give me any help.
            JaeHyuk

            Hi, Charlie.

            When I run configure_edison --version, result is 159.

            Yes, the line is no problem because when I upload it into Arduino Uno, It works very well.

            When I run i2cdetect -l, result is below

             

            i2c-1   i2c                i2c-designware-1                           I2C adapter

            i2c-2   i2c                i2c-designware-2                           I2C adapter

            i2c-3   i2c                i2c-designware-3                           I2C adapter

            i2c-4   i2c                i2c-designware-4                           I2C adapter

            i2c-5   i2c                i2c-designware-5                           I2C adapter

            i2c-6   i2c                i2c-designware-6                           I2C adapter

            i2c-7   i2c                i2c-designware-7                           I2C adapter


            I am powering my board with 3.3V.

            Could you give me any help?

             

            Thanks.

            • 3. Re: I2C sensor problem.. Please give me any help.
              CMata_Intel

              Hi JaeHyuk,

               

              The 3.3V you are using to power the MPL3115A2 are from the SparkFun block or from another supply? If you are using the Sparkfun and Edison as source for the MPL3115A2, I suggest you to use another power supply for this shield.

              Also, the SparkFun and the MPL3115A2 have both Pull-Up resistors, are you measuring the voltage in both VCC in order to check that the voltage is not dropping?

              Have you checked the SDA and SCL lines with a logic analyzer or oscilloscope? I know it worked with an Arduino but we could check in the signals if the problem is related to noise, to the SCL, if the Edison is writing as it should or the amplitude of the signals. I think it could helps to determine what we are missing to make it work

               

              Regards,

              Charlie

              • 4. Re: I2C sensor problem.. Please give me any help.
                JaeHyuk

                Hi. I am powering 3.3V into sensor by USB port. I have arduino breakout board and when I check between VCC and Ground of sensor, It is 3.3V.

                And I don't have logic anlyzer and oscilloscople..

                • 5. Re: I2C sensor problem.. Please give me any help.
                  CMata_Intel

                  Hi JaeHyuk,

                   

                  The lost arbitration error can occur when the I2C slave doesn't receive a stop signal so it starts sending random data or can lost the control of data. I suggest you to check the datasheet of the shield and verify you are following the communication protocol for this shield. Also verify you are using the right address of the shield when you use the I2C protocol.

                   

                  I checked the Shields Test Report and I found that there are tests with the Adafruit* MPL115A2. Take a look at it and let me know if that code works for your SparkFun-shield too.

                   

                  Regards,

                  Charlie

                  • 6. Re: I2C sensor problem.. Please give me any help.
                    JaeHyuk

                    Hi. CMata. sorry for my late response. I had car accident so I've stopped my working. I bought Adafruit MPL3115A2 and It work very well with Edison now. I think the problem was maybe the compatibility between Edison and Spark-fun sensor.

                     

                    Thank you so much.

                     

                    Regards,

                    JaeHyuk