--- Quote Start ---
Alright... I guess I have identified the root cause: Our power-supplies have a ground lift in the range of 100VAC (Including the one that comes with the Cyclonve 5 SX dev kit, you can actually feel it if you touch it)... So when you unplug the USB-blaster, and the ground pins are by chance the first pins that get disconnected, the Board is on somewhat high potential compared to the computer's USB, which is referenced to the mains earth.
So how do we go about this? We have a few solutions
- Always ground the board (will get forgotten here)
- High Ohmic grounding of the power supplies will most likely get rid of the (capacitively coupled?) ground lift (impractical modification for all supplies)
- Put a buffer AMP or one to one level shifter in the JTAG path of future boards. Hopefully these are less susceptible to overvoltage or just die first (Most likely what we will do)
- Put a series resistance in the signal path (Anyone tried that? Will it help?)
- Take ESD diodes with lower voltage rating (Does 5V already kill the JTAG? I am not going to try this out on a 5CGXFC7C7U19C8N again!, but probably someone can comment)
Any suggestions or other ideas are welcome.
Cheers, Peter
--- Quote End ---
It is somewhat coincidental that you posted this, as I only just recently fried a board due to this exact phenomenon. Unfortunately, my entire board got toasted.
I'm working on a system that tests a battery powered device, and we intentionally floated the system's DGND/AGND using isolated power supplies. In theory, this should mean that attaching your ground probe to any point in the circuit should simply force that point to be at the same potential as your ground (possibly making other signals go negative with respect to earth/chassis ground, but otherwise not harming anything). In reality, it only takes one other connection to create a current flow and do bad things.
In my case, I went to attach a scope probe ground and thought to use the DGND pin the JTAG header as a convenient point - except I missed, and attached the ground to TCK. Turns out, there is a grounding issue, and I accidentally put a -20V potential on that line...
The only way to solve that issue is to find a way to solidly ground your measurement/programming hardware at the same potential (without creating ground loops in the process) Alternately, galvanically isolate the JTAG header. I created a small board that sits between a USB blaster and the target board using a high-speed isolated buffer for cases where I need to program a board where the ground is isolated or not at the same potential as my PC. It works fairly well for programming, though I've had issues using signal tap with it.