Solution:
A MachXO2 device is powered by a low voltage linear regulator that outputs
the proper voltage when powered up. It is then found that when the USB ispDOWNLOAD
cable is connected to the board design to program the MachXO2, that the VCCJ voltage
increases. Further testing shows that the design VCCJ voltage is a positive low voltage
even when the board is unpowered and the USB ispDOWNLOAD cable is connected. This is
not the expected operation in that the design regulator should hold the power supply
value constant regardless of the USB ispDOWNLOAD cable being connected.
The USB ispDOWNLOAD cables have very good signal isolation between
the PC signals at the USB connector and the flywires that connect to your design.
The VCCJ flywire does show some low level leakage current when the VCCJ voltage is
less than 2.5 volts. You can check this by attaching a DVM to measure the voltage
from the VCCJ flywire to the GND flywire when there are no connections to your
board. You can can also set the DVM to measure current and this will show the
maximum amount of leakage current available at the VCCJ flywire (the current
setting on the DVM will short VCCJ to GND and this gives the maximum leakage
current measurement). Given this, if your board design has a VCCJ power that is
both low voltage and low current, and the USB ispDOWNLOAD cable leakage current
is higher than the current your design uses, then you might see the VCCJ voltage
increase when the USB ispDOWNLOAD cable is connected to the JTAG signals on
your board.
For the vast number of board designs done, the VCCJ leakage current is not an
issue, typically because the design's VCCJ voltage and/or current required are
not low enough, and in many instances, because the VCCJ voltage is produced by
a switching regulator. Switching regulators typically can both source and sink
current to maintain the output voltage, especially when the load currents
are small. Linear regulators are typically very good at sourcing current, but
then tend to become unregulated or let the voltage float if the load current
is sinked or attempting to pull the voltage higher than the regulation voltage.
You might be wondering: what is the cause of the VCCJ leakage current?
The answer for that is, internal to the USB ispDOWNLOAD cable is a processor
that communicates with the PC through the USB connector, and a buffer IC that
sends and receives the JTAG flywire signals that connect to your design. The
processor is powered by the PC side of the cable, and the buffer IC is powered
by your design's VCCJ power. When the VCCJ voltage is 3.3v, there is no leakage
current into VCCJ because both the PC side and your design's VCCJ are equal
and not connected. When the VCCJ is less than about 2.5v, some signal leakage
current begins to show up when the internal cable processor powered by the
PC side, sends signals to the buffer IC powered by the VCCJ provided by your
design. If the VCCJ is less than the processor 3.3v, the processor signals
arriving at the buffer IC are clamped high, and any excess signal current from
the processor IOs is clamped or shunted to the VCCJ power connection... and
this is the leakage current you are measuring with a current meter if you do
the DVM current test described just above.
This signal leakage current into VCCJ is small, typically about 1mA when VCCJ
is shorted to GND, and much lower current when VCCJ is allowed to float high.
Even though the VCCJ leakage current is small, for some very low power designs
the leakage current can raise the VCCJ voltage some small amount. If this is
determined to be an issue, an easy solution is to add a 500 ohm resistor from
VCCJ to GND at the flywire connection point on the board design. Alternately,
you can add the 500 ohm resistor to a male/female interposer connector that
has the 500 ohm resistor permanently attached between VCCJ and GND. When
the modified interposer connector is installed during programming, the USB
ispDOWNLOAD cable VCCJ leakage current will be shunted to GND at the connector
and the VCCJ voltage will be maintained at the proper voltage level set by
your design.