Hello im wondering if is there any possibility to use raspberry as a controller for the led cube ?
Hello im wondering if is there any possibility to use raspberry as a controller for the led cube ?
I'd still need some power devices for a big display or abright one but:
The Lattice ECP2 in 208 pin TQFP package can do a maximum average IO current of 146 x 8 = 1168mA on 146 pins. You can't use all the pins for LEDs so over, say, the 96 pins of Samuel's cube it can do 12mA per LED continuous, no multiplexing required.
MK
can the FPGA handle the overall power dissipation, there is always a current per pin but also a total current per silicon chip with most often is not the sum of all or even most of the pins
btw, typical LEDs require 20mA for full intensity, as you are multiplexing the pins (There not on continually ) then this current needs to go up proportionately, so if your at a 50% duty cycle, you need 40mA, 25%=80mA etc
if you don't account for this then the typical result is un even brightness as the number of LEDs change over the pattern or they are quite dim all the time. just look at how a 7segment display works.
yes you can get away with it to a certain extent (Small number of leds ) but it will bite you as your cube grows in size
Peter,
Your concern about the total current (might be per VCC pin or per package) is valid.
But about the current: I've built several "multiplexing" led projects over the last few years. Because of the risk of blowing up the leds should the software fail, I always build my prototype with the currentlimit set "below 20mA", intending to up the current when I'm done....
I always end up with: "this looks just great like this, no need to increase the current!". Leds, these days, are simply bright enough at 1/8 multiplexing....
I don't understand what you're saying about the brightness being uneven. If you put the current-limit-resistors in the right place, you'll be driving a column (A plane in the cube) with a power-transistor, and you have all diodes in this plane connected to a driver/one of the FPGA pins through a resistor.
Michael was saying he wouldn't use a shift-register to drive the row-lines, because he can easily find 64 (for 8x8) or 81 (for 9x9) row-lines on his FPGA. Nobody is saying you can get around those. Nobody should put current-limit resistors in the column drivers, as that creates brightness differences depending on the number of leds.
and that is where I was thinking the issue may be, thanks for clarifying, I have never built a cube yet, maybe some time but not yet.
I have built plenty of multiplexed light displays in my time but built to the end game light requirements that where usually in the 10's of amps per channel (Fair ground rides like ferris wheels etc consume hundreds of amps before they went to LED lighting and 110V dc too)
as you say though, at the end of the day if it looks good then that's good enough, no point in over engineering if you dont need to
The nice thing about the FPGA is athat we are working within it's ratings. Lattice spec. the max current per io bank as 8mA * n where n is the total number of pins. The pins are drive controlled with a max setting of 20mA so we are safe with setting a current of 12mA (because we will use less than n pins per bank for LEDs). There is no multiplexing so we can control the current with 1 resistor per LED.
The total power disipation in the FPGA IO would be < 400mV * 1.168 A = 467mW.
I'm almost tempted to try it !
MK
where is your minion Michael ??
When driving a lot of current with FPGA pins, you also may need to check the simultaneous switching specs. If you switch many high-current pins at the same time, you can get ground bounce which can affect the signals on other pins in the same bank. You can eliminate ground bounce in software by staggering when LEDs are switched on and off.
When I'm driving an LED matrix, I like to use external transistors for each column. That gives me lots of current without worrying about ground bounce and moves power dissipation away from the FPGA.
i just made a led cube 8x8x8 controlled by raspberry, I made a interfase with 4 MCP23017 to drive a layer (x,y) and another MCP to control Z
the advantaje is those MCP's can comunicate with raspberry using I2C protocol,
in this moment only i can made figures when only i layer and moving the same figure on the rest of layers, but i can no make any figure that involve two layers or more, i think that i need to create subroutines to made it but i dont know how
any ideas?