I recently received an Atera DE2 board with a Cyclone II FPGA. I have been experimenting with the expansion headers and I am having trouble understanding why my daughter card is not receiving any power. My DMM is reading 3.3 volts (when I connect the first JP0 pin and ground pins with logic code below), however, the voltage actually drops to something like .6V when it is connected. If I connect the constant VCC 3.3 volt pin and GND it works with no problem.

The extremely basic code:

library ieee;
use ieee.std_logic_1164.all;

entity expansion is
port(
a : in std_logic;
y : out std_logic
);
end entity expansion;

architecture when_else of expansion is
begin
y <= a;
end architecture when_else;

--Pin Assignment
a = PIN_N25
y = PIN_D25

-

If I connect the constant VCC 3.3 volt pin and GND it works with no problem.

According to the documentation (see section 4.6), the IO pins are current-limited by a resistor. The expansion headers have a non-current-limited 3.3V connection on pin 29 and GND connections on pin 30 (immediately across from pin 29) and pin 12.

If you need to switch the supply on and off from VHDL, you'll need to use a transistor to switch one of these supply lines.

A part of the schematic and documentation is excerpted below, click for a larger image:

-

There are two reasons.

1. The pins on Cyclone II chips can supply only around 8mA of current.
2. On the DE2 board, the expansion header pins are connected to the FPGA through a 47 ohm resistor.

If your expansion device draws too much current, the voltage will drop.

-
Thanks avakar, I was afraid current was going to be the issue :( Seems like this board is going to limit my possibilities!! –  atomSmasher Oct 2 '11 at 21:33
Actually the DE2 expansion headers have 47-ohm resistors on 'em. =) Either way, sounds like that's the issue. –  Craig Oct 2 '11 at 21:50
@Craig, thanks, fixed! :) –  avakar Oct 3 '11 at 6:07
@atomSmasher - Your possibilities are not severely limited by this protection. See my answer below. –  Kevin Vermeer Oct 3 '11 at 16:11