Hi everyone,
I'm building a circuit that will be driving quite a few (>100) LEDs,
multiplexed into 3 or 4 groups, so up to 40 at the same time.
Can I use the Spartan 3 'Current drive' option to limit drive current to
these LEDs to e.g. 24 mA ? I'm hoping to limit the number of external
components that I'll need.
I've set the IO standard of the ports in question to LVCMOS33 and set
24mA, but the port drives at least 70mA trough a LED and amp-meter
connected to ground. Setting a lower value for drive current does
decrease the drive, but it stays significantly above the value I set -
and I'd rather not ruin my LEDs or, even worse, FPGA.
So I'm probably misunderstanding the way 'drive limit' is set or
supposed to be used. Could anyone enlighten me?
Regards, Paul Boven.
|
|
0
|
|
|
|
Reply
|
Paul
|
12/28/2005 9:55:55 PM |
|
Paul,
Drive strength sets the worst case minimum current that will be available.
Worst case is measured at hottest temperature, worst (slowest) process,
and lowest IO voltage.
So, for example, if we are designing ICs that have to meet mil spec
(125C), over all process, and over +/- 10% IO voltage variation, the
actual current at 25C, nominal process, and nominal IO voltage will be
substantially larger.
If you use DCI, you can actually set the output resistance by setting
the drive impedance with the external resistors....but Spartan 3 does
not have DCI, so that won't help you there. Sorry. DCI (digitally
controlled impedance) is a useful feature offerred in the Virtex line,
but not in the Spartan line.
So, all you have to play with is drive strength (you could set it to 2
mA, or the lowest setting), and the Vcco voltage. By setting the drive
to the lowest possible setting for the highest possible Vcco (eg 2 mA at
3.3 V) by lowering the voltage to 2.5V, you will now be much lower
current than the operation at 3.3V (and the IOB will still work just
fine, as the difference between 3.3V and 2.5V IO standards is how many
transistors to turn on in parallel: it takes more to drive the same
current at lower voltages).
The brightness will vary with chip to chip (process variations) and also
will vary with chip temperature.
Austin
PS: did you know that the Christmas Lights video that went around
recently was done in Cincinnati, Ohio, and used Spartan 3 demo kits to
control banks of triacs? What some people have time to do is amazing!
http://www.snopes.com/photos/arts/xmaslights.asp
Paul Boven wrote:
> Hi everyone,
>
> I'm building a circuit that will be driving quite a few (>100) LEDs,
> multiplexed into 3 or 4 groups, so up to 40 at the same time.
> Can I use the Spartan 3 'Current drive' option to limit drive current to
> these LEDs to e.g. 24 mA ? I'm hoping to limit the number of external
> components that I'll need.
> I've set the IO standard of the ports in question to LVCMOS33 and set
> 24mA, but the port drives at least 70mA trough a LED and amp-meter
> connected to ground. Setting a lower value for drive current does
> decrease the drive, but it stays significantly above the value I set -
> and I'd rather not ruin my LEDs or, even worse, FPGA.
>
> So I'm probably misunderstanding the way 'drive limit' is set or
> supposed to be used. Could anyone enlighten me?
>
> Regards, Paul Boven.
|
|
0
|
|
|
|
Reply
|
Austin
|
12/28/2005 10:17:16 PM
|
|
Austin Lesea wrote:
> If you use DCI, you can actually set the output resistance by setting
> the drive impedance with the external resistors....but Spartan 3 does
> not have DCI, so that won't help you there. Sorry. DCI (digitally
> controlled impedance) is a useful feature offerred in the Virtex line,
> but not in the Spartan line.
Spartan 3 does have DCI ...
Sylvain
|
|
0
|
|
|
|
Reply
|
Sylvain
|
12/28/2005 11:33:23 PM
|
|
Oops...I couldn't find it on the data sheet,
Austin
Sylvain Munaut wrote:
> Austin Lesea wrote:
>
>
>>If you use DCI, you can actually set the output resistance by setting
>>the drive impedance with the external resistors....but Spartan 3 does
>>not have DCI, so that won't help you there. Sorry. DCI (digitally
>>controlled impedance) is a useful feature offerred in the Virtex line,
>>but not in the Spartan line.
>
>
>
> Spartan 3 does have DCI ...
>
>
> Sylvain
|
|
0
|
|
|
|
Reply
|
Austin
|
12/28/2005 11:49:39 PM
|
|
Paul Boven schrieb:
> Hi everyone,
>
> I'm building a circuit that will be driving quite a few (>100) LEDs,
> multiplexed into 3 or 4 groups, so up to 40 at the same time.
> Can I use the Spartan 3 'Current drive' option to limit drive current to
> these LEDs to e.g. 24 mA ? I'm hoping to limit the number of external
> components that I'll need.
In a spartan-3 you have a hell lot of logic. So if it is just the number
of external components that you want to minimize, you can do the following:
- connect the vcc side of all leds together and connect them to vcc via
a common resistor. Add a large capacitor to the common node.
- use differential input pair, a resistor and a capacitor to build a
sigma delta ADC to measure the voltage at the common node. The voltage
drop on the resistor is proportional to the current.
- use a delta sigma or PWM modulator on the LED-pins to set the current
to the desired value for a single LED times the number of LEDs that is
currently turned on.
This approach uses only 4 external discrete components in addition to
the LEDs.
Kolja Sulimma
|
|
0
|
|
|
|
Reply
|
Kolja
|
12/28/2005 11:52:17 PM
|
|
|
4 Replies
502 Views
(page loaded in 0.076 seconds)
Similiar Articles: What is 'drive strength' for? (Spartan 3) - comp.arch.fpga ...Hi everyone, I'm building a circuit that will be driving quite a few (>100) LEDs, multiplexed into 3 or 4 groups, so up to 40 at the same time. Can ... Current controlled current source output - comp.soft-sys.matlab ...What is 'drive strength' for? (Spartan 3) - comp.arch.fpga ... Can I use the Spartan 3 'Current drive' option to limit ... If you use DCI, you can actually set the output ... Xilinx IO drive level constrain - comp.arch.fpgaThe IO drive level constrain specifies the drive level of a output signal .. if i ... part of the design (which in my case was the top level ... and newer and Spartan-3 and ... Regulator for Spartan 2 - comp.arch.fpgaAnd crank > the chip-output drivers down to the weakest drive strength! > You do not ... Simple PWM Spartan 3 - comp.arch.fpga i need help for a Simple PWM Spartan 3, i ... Newbie's first FPGA board ! - comp.arch.fpgaIsn't the FPGA drive strength option = suficient ? > Oh yeah, give yourself some ... Spartan 3 Starter Kit and ISE WebPACK - comp.arch.fpga Newbie's first FPGA board ... xilinx unused I/O state - comp.arch.fpgaHi, What is the default state of the unused I/O pins for Xilinx FPGA (Spartan 3E)? For Altera FPGA, it can be set as input tri-stated or as output driving gnd, etc. Is Spartan 6 good for this project? - comp.arch.fpgaI need a low cost FPGA able to drive a sensor with 5 LVDS DDR data sensor->FPGA ... Starter Kit and ISE WebPACK - comp.arch.fpga I am planning to purchase a Spartan 3 ... vhdl code for debouncing push button - comp.arch.fpga... vhdl codes that are available for free to debounce the pushbutton on my spartan 3E? ... Use the lowest drive strength setting. Brute-force shortening the output amy be ... spartan 3E USB port... use for i/o instead of programming - comp ...Spartan 3 Digilent Board Expansion Connectors - comp.arch.fpga ... How to use UART on ... LPC Bus Interface - comp.arch.fpga ..... like the bus like ability of driving I/O ... Can you implement a pull-up resistor in VHDL? - comp.lang.vhdl ...Hello, I am using Spartan-3 XC31000. You can enable on/off pull-up/pull-down resistors ... input plus the internal oe signals... and of course the oe's combine to drive the I ... What is 'drive strength' for? (Spartan 3) - comp.arch.fpga ...Hi everyone, I'm building a circuit that will be driving quite a few (>100) LEDs, multiplexed into 3 or 4 groups, so up to 40 at the same time. Can ... Re: What is 'drive strength' for? (Spartan 3)Paul, Drive strength sets the worst case minimum current that will be available. Worst case is measured at hottest temperature, worst (slowest) process, and lowest IO ... 7/24/2012 1:21:49 AM
|