Jack Gassett Posted January 24, 2014 Report Share Posted January 24, 2014 Ok, I went down the rabbit hole and am just now coming up for breath! After an epic week long battle that found me obsessed with this one task I have something pretty cool working on the Papilio. Let me start from the beginning, at the end of last week when I was working on the new board design I realized that there might be a huge problem with trying to connect the channel A UART pins from the FT2232 to FPGA I/O pins. I pulled out the trusty Papilio One and tested it out, sure enough, when the Papilio is being programmed all of the I/O pins go to 3.3V which will interfere with the TCK and TDO pins during jtag programming. So the way I had things wired up was not going to work. I started thinking about solutions, adding an IO switch would solve the problem but I'm not super thrilled about doing so. So I started thinking about why we need it connected and it really comes down to being able to use channel A for communications after the FPGA is programmed. Well, we already have an example of doing that, we use the bscan primitive to program SPI Flash... So I thought, well before I commit to adding an IO switch to the board I should spend a couple days connecting the Sump Logic Analyzer to the bscan primitive so we can use the FT2232 channel A or logic analyzer debugging and use channel B for normal uart communications to our Soft Processor. It's going to be hard to do but I should be able to bang it out in a couple days... Famous last thoughts... Every day I made just enough progress to keep me completely obsessed for the next day, just a little bit more and it will be working... Well it dragged on way longer then I expected but I have a first working prototype! There are still some bugs to squash but it is working well enough to prove that we can use channel A for debugging and there is no need to add an IO switch to the new board. Here are some details: This is what the schematic looks like: (I'll be moving the bscan_spi symbol into the Logic Analyzer symbol so you just drag and drop the LA symbol) Here is Channel B being used for regular communications while Channel A is being used to debug the Wing_AL0 pins with the Logic Analyzer, they both work perfectly at the same time: The way this works is that I modified the papilio-prog application to add a jtag passthrough mode, it creates a network socket and will pass communications through to the FPGA: Finally, you use the Logic Analyzer client to connect to the Network socket: It's going to be a great thing to have in our bag of tricks! Like I said, there are still some wrinkles to iron out, but I should have a release out soon! Jack. Link to comment Share on other sites More sharing options...
This topic is now archived and is closed to further replies.