9

I am looking for some hardware that

  • analyzes the quality of I²C signals
    • voltage
    • data signal quality (quality of the rectangle)
    • clock signal quality (quality of the rectangle)
    • potentially other things as defined by I²C (I'm not too familiar yet)
  • shows the data transmitted on the I²C bus
    • bus monitor (just the hex values)
    • data extractor (interpret the hex values, e.g. separate address from data)

This could be 2 separate tools or an all-in-one tool. For both, it would be great if there's a connection to the PC (e.g. via USB) so that I can easily generate test report documents, store the data or forward to someone else.

I have no budget restriction at the moment, since I have to request the budget.

Power users/moderators: are there better tags? I could not find , , , - but I still think this question is on topic since it is an electronic item, connects to a PC and can perform meaningful tasks.

3

To measure the signal integrity all you need is an oscilloscope. Your requirements aren't in the (old) I2C specifications, but need to be found in the data sheets for your particular devices connected to the bus.

For sniffing and analyzing the bus I'd recommend a Saleae Logic. (http://www.saleae.com). Later versions can perform analog measurements, too. All measurements can be automated (and networked) and they have a nice API available to customize your specific measurement.

Edit to elaborate on details:

You will need to consider what you need, and when you need it. The list of things you want to do not usually fit in one test.

I usually break down to these stages:

Circuit design

This is where you read the data sheet for the I2C slave devices. They each specify the min/max raise/fall timing for both the clock and data signal (usually identical). You usually are able to ensure correct timing by using standard value pull-up resistors. Make sure to provide test pads on both SDA and SCL lines.

Circuit verification

When you have your first PCB back from manufacturing it's time to verify that the design parameters are correct. With a powered circuit, measure the short-to-ground current of both the signal lines and ensure it fits with your calculated design values. Then use hardware bring up software to make the I2C host generate data trafic and verify with an oscilloscope (or other means) that your design parameters are meet. You may have some capacity from the PCB design that screws up your design parameters. In bad cases you may even have to redo the board layout to fix it.

System bring up

This is where you start implementing drivers for each of the slave devices. Therefore an I2C analyser can be a very handy thing. This is usually the time you discover cross-talk related problems, to which you either devise a time-sliced workaround or -more correctly- go back to the design to fix it.

Production testing

At this point you know you have a working design and a working system. The components are tested by the manufacturer so we can assume they are working. Usual problems associated to manufacturing are component miss-placement, bad soldering and shorts. You can verify all this with two simple measurements on the test points: Voltage at test-point and the short-to-ground current from the test-point.

With this I hope you have a better understanding of what your requirements in reality are.

1
  • Thanks, especially for the second part. The "oscilloscope" part of the answer is a bit broad. E.g. I have an old Philips analog dual channel 20 MHz piece available, but it was not too helpful yet. Guess it should be a digital storage oscilloscope, but even with such a thing, how would I measure the deviance (e.g. in %) of the expected signal? How do I compute the difference to a reference signal? And then, how do I know whether this difference is ok or may cause harm? – Thomas Weller Jan 29 '16 at 6:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.