• 0
Christian Klein

Digilent CMOD A7 Disconnects and/or does not Program

Question

I've seen similar issues in the forum, but no real solution.

I have 5 CMOD A7 boards and only 2 of  them behave properly.

The other 3 do not accept a program and sometimes disconnect.

I get the following errors;
ERROR: [Labtools 27-3165] End of startup status: LOW
ERROR: [Common 17-39] 'program_hw_devices' failed due to earlier errors.

I have tried:

- many different USB cables

- Different ports on the PC

- Powered USB hubs

- Vivado Lab 2017.2 and 2018.1

- 2 different bitstream files

 

The boards that work, always works. No matter the cable or USB ports.

Anything else I should try?

 

 

 

 

Share this post


Link to post
Share on other sites

14 answers to this question

Recommended Posts

  • 0

Hi,

if you want a 2nd opinion, you can try my labToy executable. It runs completely independent JTAG code.

Most likely, it'll fail the same. But if it happens to work reliably, the next question would be "why".

I suspect it's USB power related - you might give it a shot to supply the boards externally.

Share this post


Link to post
Share on other sites
  • 0

Remembered one thing: You were using only a single PC, is that so? Try another one.

It may be that there are broken drivers somewhere in the Windows directory. Maybe the USB hardware is unreliable. A powered hub won't automatically fix it.

If a full install is too much work, use the LabToy.exe file and put the FTDI drivers into the same folder (or install them system-wide via FTDI's installer). Speaking of which, updating them to the latest version (8/2017!) might be worth a shot in any case.

 

 

Edited by xc6lx45

Share this post


Link to post
Share on other sites
  • 0

I've been experiencing this same issue with my Cmod A7-35T board, and I would love a solution to it. I've seen flaky behavior across multiple USB cables and 3 different computers (a windows and linux laptop, and a linux workstation). Typically I will plug in the device and it will disconnect after 15-20 seconds. On windows, the USB device rarely shows up again, whereas on the Linux workstation it seems to re-connect most of the time. If I'm quick, I was occasionally able to program the FPGA with a new bitfile before it disconnects on linux. I tried programming the flash, but it always dies a couple seconds into the 'erase' step.

My suspicion is some kind of hardware fault, but I'm not sure how to diagnose it further. Any suggestions would be welcome!

Share this post


Link to post
Share on other sites
  • 0

Yes this is an issue with the CMOD-A7. It is not an issue with cables ( even if Digilent would wish it to be so). It is an issue with the interface on the CMOD-A7 and a particular issue when Vivado hardware manager is opened ( for instance in trying to use the ILA feature ).

Some problems, even those that shouldn't be hard, take Digilent years to resolve. I've stopped trying to use Vivado ILA or the USB UART with the CMOD-A7 . I do use something other than Vivado to configure the CMOD-A7. I do connect a separate USB UART cable to 2 spare IO pins to have nice uninterrupted productive UART sessions with my FPGA application. 

This issue has been known for a few years now. It took me almost 3 years to get the Genesys2 documentation free from silly errors but I kept after them until someone actually looked into the problem. I suspect that this problem cannot be resolved retroactively for current customers.... but no one is paying me to figure out the exact nature of the problem.

Edited by zygot

Share this post


Link to post
Share on other sites
  • 0

Yes, I do see the same behavior with and without the USB hub. I only tried adept 2 on the windows 10 laptop, and I see similar behavior (sometimes the board appears briefly, but then it goes away)

Share this post


Link to post
Share on other sites
  • 0

Hi @fentonc,

Here is the forum thread that discussed the USB cable issue that is with the Cmod A7.  Are the usb cable connections loose on the cmod a7 devices that are not working. Also please attach a screen shot of the text in adept when it connects and then disappears.

thank you,

Jon

Share this post


Link to post
Share on other sites
  • 0
On 7/21/2018 at 3:36 PM, fentonc said:

Ugh, this feels like a flakey hardware issue. What do you use besides vivado to configure it?

When working in Windows 7 I use the Digilent Adept Utility which is a very nice and robust program. This is mostly what I do when using the CMOD-A7.

When working in Linux I do use Vivado but make sure to terminate the Hardware Manager as soon as it has finished configuration.

I never have an issue with the CMOD-A7 USB connection detaching now that I've moved all USB UART operations to an external device and Vivado Hardware Manger is not running. I have tried without success to replicate any sort of association with this issue and a particular cable ( I've got a lot of USB cables on hand.... ). This is the only FPGA product that I have experienced this issue with. I almost always us a USB HUB ( USB 2 or USB 3 ) when working with FPGA boards.

Edited by zygot

Share this post


Link to post
Share on other sites
  • 0

Update - Success! I found a 3rd USB cable (aside from the other two I had tested with), and it magically started working with Vivado (and Adept, for that matter, although I don't think I can use Adept to program the boot flash). This cable came from a pair of 'Beats' bluetooth headphones (of the other two failures, 1 came with an Arduboy and the other was a random amazon purchase). I was able to both program the FPGA and re-write the flash without incident.

I think my conclusion is just that most micro USB cables are garbage, and the CMOD-A7 is super sensitive to USB noise.

Share this post


Link to post
Share on other sites
  • 0

Hi @fentonc,

Out of curiosity, what were the brands of the two non-working USB cables and the one working USB cable -- curious to see if there is any consistency to what we have seen or not.

Thanks,
JColvin

Share this post


Link to post
Share on other sites
  • 0

For the record, I only have a single CMOD-A7 board. The working cable came with a pair of "Beats" bluetooth headphones, and is otherwise unlabeled. One of the non-working cables is a short, flexible cable (silicone, maybe?) that came with an "Arduboy" Arduino-based gameboy device (and was successfully used to program that), and the other non-working cable was a random micro-USB cable from amazon (unlabeled, and no longer remember the exact purchase model).

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

I've stumbled upon what seems to be a complete solution to this problem.

First, I switched cables, which did help but I still couldn't run the ILA through the new cable.

In order to get ILA working, I lowered the connection speed. To do this:

1. In the lower left corner of Vivado, right click on "Open Hardware Manager" and press the menu that pops up to close it. This is poorly labeled but what it actually does is disconnects the Cmod.

2. Regular click on "Open Target" and select "Open Hardware Target..." A window will pop up in the middle of the screen.

3. Click "next". Make sure that Local Server is selected in the popup before clicking "next" again.

4. In the next window, you'll have the option to select the connection speed. Select a slower speed and click to connect.

In my case, I'm routing my USB circuitry through a PCB because I need to be able to select between bus power and PCB power. That made my connection unstable so to get things up and running I just directly connected (at the default 15000000 Hz) with a new cable. But I couldn't run ILA successfully. So I had to connect at slower speeds to use ILA (6000000) but when I did that it made the JTAG connection more stable as well, even through the PCB. I went to an extreme and the system was stable at 125000 Hz but at this speed it begins to hurt my personal productivity. I'm going to do a binary search to see what I can get away with.

Can anyone else confirm that this works for them? Would anyone else care to post their successful connection speeds?

If this is a complete solution, then it would seem to obviate the need for a redesign of the Cmod USB/JTAG circuitry.

Edited by dfergenson

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now