Recently Arthur was working on a demo for the Pmod JSTK2 IP core. However, due to unforseen (and un-seeable!) difficulties he was unable to get it working. To make the issue even worse, the software thought that the demo was working, and SPI requests would return data that made no sense when looking at the reference manual.
He decided he needed a way to peek inside the demo and figure out what was really going on. Fortunately, the Digital Discovery was there to help him do just that!
He hooked up a Digital Discovery to a Pmod TPH between the JSTK2 and Pmod header on the Zybo. He then noticed when examining the waveforms that were being generated from the Zybo that the chip select signal (which was supposed to be held low during an entire multi-byte transfer) was being brought high by the drivers. This pointed him in the right direction, but after a temporary fix he started getting a different set of errors.
This time the data was still mal-formed, but in a different pattern. After a review of the data sheet for the Pmod JSTK2 he took another look at the project using the Digital Discovery again. He noticed that the SPI clock signal to the JSTK2 was supposed to be less than 1MHz, where he was sending it a 13 MHz clock.
The Digital Discovery allowed him to check the timing of the signals, pulse width and frequency with ease, which in turn led him right to the problem. After fixing the clock signal issue in Vivado and cleaning up the timings of the chip select signal (using the Digital Discovery to confirm that the minimum hold times for the signal were being met) he hovered over the chip select to make sure that the high-time was greater than 25us. He discovered that the high-time was now 25.40- perfect!
To quote Arthur’s thoughts on his debugging experience:
This is the type of bug that would have taken a lot of very tedious step by step debugging in SDK to solve without being able to just glance at the actual waveforms that are being sent back and forth. To reiterate the first point, I find the Digital Discovery most helpful in situations where the software thinks that there is nothing wrong, but when there is still very clearly something wrong.
We love seeing the Digital Discovery help people make their projects a reality. Feel free to tell us the story in the comments below of your most memorable or recent debugging experience, and how you solved (or are working on solving) the problem! If you want to learn more about the Digital Discovery or see how it compares to the Analog Discovery, check out the links above and the resource center!