JTAG Testing with XJTAG Boundary Scan

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Hi, my name’s John and I want to show you some of the great things you can do with JTAG boundary scan. Want to test assembled boards but can’t be doing with a fancy jig or loading firmware? Then this is a solution you should be checking out. But you also want a test system to be fast and easy to use, right? Take a look at this… I’ve already put together a few tests for this board. I’ll show you what’s on there in a bit, but right now let’s jump straight in and see what XJTAG can do… That took, what, a few seconds? That’s pretty smart.  So let’s go back and check out what it did. Everything was done using JTAG boundary scan. First off, you need to know the JTAG chain’s working on your board, so it gets that up and running and does a series of checks at the start. If that’s looking good, it does an interconnect test. That checks the JTAG devices’ digital pins and other parts of the circuit for soldering faults. If they’ve got a short, a stuck-high or a stuck-low, it’s going to find it. Where boundary scan’s got enough access to nets, it’s also going to check for open-circuits. And this test is something the XJTAG software generated for you automatically from the circuit data. Better still, that automatic test gives the bulk of your test coverage. It’s also very fast—that took well under half a second. But a board’s got loads of non-JTAG devices too, right? That’s what came next, and these memories were first. The test board’s got three different types— an SRAM, a SPI flash, and an I²C EEPROM, and it checked all of them. And you won’t be getting into complex coding to do this because these are all standard tests that I pulled from the built-in library. So how does it check the memories’ pins using boundary scan? Think about the SRAM first: boundary scan takes over the interface, pretends to be the bus controller, and then writes to memory locations and reads back. That’s going to prove the device has got at least a base-level of functionality, but there’s more. Remember, we want to check as many pins as we can get at for soldering faults. So it gets clever. The data and addresses it uses aren’t random: they’re carefully calculated so that it’s able to confirm every net in that interface is fault-free. Even better, if it doesn’t read back what it expected because there’s some sort of fault on the interface, it generates another more advanced set of data and address patterns that tell it which nets are affected. That’s going to save you loads of debug time. That was the SRAM, but what about serial memories? What about SPI and I²C? It does the same sort of thing for those, taking over their interfaces, and reading and writing selected registers. That proves the bus works and, of-course that the device is actually functioning. If there’s a fault on the interfaces, it’s going to find it. If you dig around on this board a bit more, you’ll find it’s got an 8 MHz oscillator. Okay, boundary scan isn’t fast enough to measure its frequency, but there’s a test in the library that’s still going to check those clock lines for you. It monitors the net and counts transitions. If it detects a handful, it knows the clock line is toggling okay. And you can see the test also checked the oscillator’s Enable line. Well, what else have we got on this board? There’s an accelerometer, ADC, and a pair of RS-485 transceivers that all need testing—the cool thing is that the XJTAG software has got library tests for them all. Now, you want more than just knowing their serial interfaces are working, don’t you. It’s a good start, but what about getting a bit more test coverage? These library tests will do more for you because they get right in there and exercise some of those devices’ functionality. When it comes to the accelerometer, it kicks off the inbuilt self-test routine. Checking the ADC means reading back voltages from its analog inputs; and for those RS-485 transceivers, I’ve stuck a loopback link into the board’s connector, and the pair of them get tested by talking to each other. All in all, that’s a hell of a lot of testing just using boundary scan. But say you want to get those boards programmed as well, not just tested. The jam-packed library’s got a stack of files that are going to do that for you, too. Flash memories, CPLDs, FPGAs, all get programmed, and it can be extended to deal with processors’ internal memories as well. But what if there’s a fault somewhere on your board? You don’t want to waste time programming it when it’s got to be sent for rework anyway. The XJTAG software deals with that easily because you get to apply conditions to the test list. You can set it up so programming starts only if all the preceding tests have passed; or you can set other conditions. That’s going to stop you wasting time on a faulty board. In some situations, it’s nice to have a bit of user interaction as well, isn’t it? Well, I’ve stuck a couple of those in here so you can see them in action. The first one controls some LEDs, using boundary scan to take over the lines that drive them and make them flash. The operator gets a prompt via this dialog box to confirm the LEDs are doing what they’re meant to. Another test asks you to press a button on the board; boundary scan then gets used to monitor the CPLD input to confirm it toggles. Interactive tests like that can get really helpful when trying to bring-up your first prototype. Thing is, you don’t need any firmware running on your board to use boundary scan; it doesn’t even have to boot! All the tests so far have been done with both the CPLD and the processor unprogrammed, so you can get going the second that first board lands on your bench. But real boards occasionally have faults, right? What happens then? Here’s the same board with a short circuit. Run the test again and the software finds it almost instantly and shows you which nets are affected. Better yet, it can highlight the problematic nets in a layout viewer. It’s then so easy to see where to check on the board. For this particular fault, you can see the most likely place for the short is between these adjacent balls under this BGA. And if the operator needs a bit of help finding their way round the board, you can overlay a photo of the PCB. That’s going to simplify your debug process. There’s more, too: wouldn’t it be useful to see the affected bits on the circuit diagram? Just click these hyperlinks in the results and it launches the schematic viewer with the nets highlighted. That’s so easy. It’s pretty rare that you’ll ever need to see all the pin transitions that were used for the tests, but the full diagnostic data is there as well in case you want it. Wow! There’s so much it can do for you. That was just a quick look at how powerful this software is. It’s perfect for checking boards that don’t have enough test points, or where you can’t get to loads of solder joints because they’re hidden under BGAs. This is a test method that allows you to test the circuit without needing physical access to those circuit nodes. All these tests used boundary scan, so you don’t have to worry about getting stable firmware for your board either. You can run tests before the first line of code has been written or when your board refuses to boot— just connect to its JTAG interface and make sure the digital circuit has power. And because you don’t need a fancy jig, you can start testing the second you get your first prototype hardware. It’s so easy to use. It’s great for the R&D lab, the factory, and for after-sales repairs. Whether it’s just a handful of prototypes you’re making that don’t yet have firmware, or if you’re doing high-volume production, XJTAG boundary scan is going to help you. The only equipment you’re going to need besides a PC is an XJTAG controller and a way to power your board. This standard controller weighs in at less than 100 grams and is the size of a pack of cards, but you can also get PXI versions and ones for ICT machines from Keysight, SPEA, Teradyne and Takaya. You can use the XJTAG test system standalone or, if you’ve written your own test programs, you can integrate its features into those. Whether you’ve written bespoke code in something like C# or Python, created them in applications like LabVIEW and LabWindows/CVI, or organised them in test executives such as TestStand or ATEasy, integration with them all is supported. What I’ve shown you is just a small part of what XJTAG’s boundary scan tools can do for you. Want to learn more? Why not join one of our free webinars? As well as being taught how boundary scan works, you’ll get hands-on training where you use the software yourself on a remote PC and test the board I had earlier. You can also use XJTAG for yourself on your own hardware with a free 30-day trial, and our engineers will even set up the tests on that board for you without charge. Just get over to xjtag.com or email enquiries@xjtag.com to get details. Many world-leading companies already have engineers benefitting from using XJTAG. Find out what it can do for you as well. You’ll be really glad you did.
Info
Channel: XJTAG Boundary Scan
Views: 7,746
Rating: undefined out of 5
Keywords: jtag testing, jtag vs xjtag, XJTAG products, boundary scan tools, difference between jtag and boundary scan, what is jtag, boundary scan test, why jtag is used, Boundary Scan, yt:cc=on, jtag debugger, what is jtag used for, advantages of jtag, what is xjtag, XJTAG, jtag basics, jtag tools, jtag software, JTAG, jtag debugging, circuit board testing and repair, electronic test equipment for sale, bga tester, testing integrated circuits, ic testing methods, ic testing process
Id: BctMdb9AxWM
Channel Id: undefined
Length: 9min 25sec (565 seconds)
Published: Fri Sep 24 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.