I have two chips that are connected using two lines. One appears to be the clock line (50% duty cycle), but it doesn't have to be (sometimes constant high). The other line appears to be totally random, but still digital. It might be data.

There is a third line between the chips, but it appears to be for something else - it's on a way slower speed and is on another place on the PCB. It also doesn't use a pull-up, while the other two do.

How can I find out what protocol (I2C, SPI, RS232, ...) is being used on the lines, if any standard?

  • Might be related arduino.cc/forum/index.php?topic=19191.0
    – cb88
    Mar 26, 2013 at 20:44
  • The only real way is to look at the traffic, apply each standard, and see if it works... The clock with sometimes constant high could an inverted clock for i2c with clock stretching, but that doesn't explain the third wire. Mar 27, 2013 at 3:03
  • 1
    @RobertMason I don't know the traffic, though I do know the devices are probably sending 8-bit bytes. The third wire does not have to be part of the protocol, it might be there for other purposes as well.
    – user187
    Mar 27, 2013 at 6:52
  • 2
    It sounds like i2c with the third line irrelevant. Mar 27, 2013 at 18:01
  • 1
    The easiest way to do this is to look at the chip datasheets usually. Then you don't need to do any work at all. Apr 4, 2013 at 11:46

1 Answer 1


My guess is that the protocol is standard, using a non standard protocol between two devices involves using bitbanging which is not very useful. Let's assume then that the protocol is standard. It's not SPI, SPI needs 4 lines To work. I2C needs two, RS232 needs only two. I don't know what the third line job is, maybe it's used for trigerring/synchronization between the chips.

What now ? I would open the data sheet of the microcontroller and see what protocols the chips supports, usually if they are new 32bit SOC, they all support CAN, SPI, USART, etc. Then I would check the pinout of the corresponding lines, to see to which ports they are connected on the chip. This will point you to the exact protocol used.

Then connect a logic analyzer, such as this one, which is bundled with a software that can dumo the data transfered acordding to the protocol.

  • 1
    I have found bit-banging to be incredibly common in embedded systems. But the datasheet would be my first approach, especially if one of the two chips is not a microcontroller. Apr 5, 2013 at 13:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.