3 Replies Latest reply on May 21, 2015 4:22 PM by PabloM_Intel

    Edison not I2C multi-master capable

    MarkOg

      I know the Edison is not multi-master capable.

       

      According to chapter 4.2 of the hardware guide:

       

      "The SoC is always I2C master, it does not support multimaster mode."

       

      On a side-note, it's multi-master (with a hyphen).

       

      However, it does not state why. Of-course, the obvious reason is supporting more features costs more money. But what exactly is missing in the Edison so I2C single-master is possible but I2C multi-master (which is part of the basic I2C spec by the way, the Edison violates the specification in this regard) is not?

       

      Multi-master support requires the ability to notice when another master is already sending, so it might be as simple as not having the capability to detect such transmission. If the software is missing, this can be fixed. If additional hardware is required, things get complicated very fast.

       

      What specific part of the Edison is hindering I2C multi-master support?

        • 1. Re: Edison not I2C multi-master capable
          PabloM_Intel

          Hi MarkOg,

           

          It’s not exactly a specific part of the Edison what is preventing multi-master support. Even if the protocol specifies a multi-master bus, most I2C devices will malfunction if the bus has to be shared between two or more master devices, specifically the SDA and SCK signals.

           

          Regards,

          PabloM_Intel

          • 2. Re: Edison not I2C multi-master capable
            MarkOg

            Hi Pablo,

             

            I'm not interested in how most I2C devices will react on multi-master. We'll cross that bridge when we get there.

            For now, I'm interested in whether the Edison can be made multi-master capable. For instance, to make two Edisons talk with each other over I2C.

             

            According to the documentation, the Edison isn't multi-master capable. So, again, why not? What's hindering the Edison?

            • 3. Re: Edison not I2C multi-master capable
              PabloM_Intel

              Hi MarkOg,

               

              It will require changes to the I2C driver at Linux level to implement the multi-master protocol. Also, if you require to determine which device is the master then you would have to program the masters to have their ID in the payload part of the I2C packet because the I2C specification does not provide a "From" address.

               

              Regards,

              PabloM_Intel