Functional testing of I2C and SPI system monitors with JTAG

Most engineers, present company included, probably assumed at one time or another that the only way to validate the functionality of system health monitors like those that operate on the I2C or SPI buses was to develop and apply functional tests. Makes sense, right? Well, if you’re interested in saving time, increasing your confidence in the functionality of these devices and keeping your product development on schedule, the real answer is: not really. Combining functional and structural test in one step early in the prototype board bring-up process and then transferring the whole process to manufacturing makes a lot more sense.

Here’s why.

If you’re going to rely on functional test to verify the functionality of system monitors, you’re going to have to wait for the system’s operating environment to be somewhat functional and this is usually a time consuming task with regards to code development. Plus, it takes a lot of time to apply this type of a functional test suite. It’s also probably later in the prototype or board-bring-up phase of product development than you’d like. What’s more, functional tests usually can’t pinpoint structural faults. You’ll know the device isn’t functioning but you won’t know why or where the fault is. And if you want better fault diagnosis from your functional tests, be prepared for a really long test development cycle. Functional tests with good diagnostic are hard to come by and hard to develop.

You might be thinking about another alternative involving protocol analyzers or pattern generators connected to the I2C or SPI bus. If you go this route, you’ll end up with USB pods and a personal computer and this might be a good addition to your debug lab, but it doesn’t translate to a production environment where the most pressing concerns are always reducing test costs on the unit under test (UUT) and on any test fixtures that might be required. 

So the question becomes: is there an answer? Yes. Of course there is, or I wouldn’t have asked the question in the first place. 

How about a method that doesn’t need an I2C or SPI connector on the UUT, or a prototype test fixture, or extra PODs in a production environment, or that will run functional and structural tests on the board before it’s even booted?

And it’s a pretty simple solution too. Take a few minutes to look over this technical how-to eBook called: “Functional Testing of I2C and SPI System Monitors with JTAG”. You could save hours, if not days, on future projects.  Download here.