Mega 2560 and TPIC6B595 shift registers with external power

Hi there

I'm about to build a 8×8×8 led cube. To control that I'd like to use the Mega 2560 board. It doesn't have all the pins I need for the project so I was thinking of using TPIC6B595 8-bit shift registers.

On max load my cube would use 8×8×20 mA current (with multiplexing). Arduino can't supply this amount of current. Can I have an external power supply to give the shift registers power? There are VCC and GND pins on the shift registers.

I would like to have Arduino connected to PC via USB for controlling. Arduino would get the power it needs over USB and the bit shift registers would use an external 5 V power supply, possibly with some capasitors.

I read a bit more and saw this on Adafruit product page

They cannot source current so they should be connected to LED cathodes.

Is there any 8-bit shift controller that works like 74HC595 (is able to output power?) but can handle 20 mA per output pin and take 160 mA to drive all the pins at max load?

Sure:

Not tristate tho, will have to turn off cathode driver for the layer while changing the anode data in shift register

Thanks for your answer.

Do you mean yes to both of the questions? So that one is able to provide 5 V @ 20 mA to all 8 pins from external power supply?

I believe yes and yes.

Thanks for your answer.

Just curious, is it possible to supply the power to TPIC6B595 too from an external power supply and have Arduino controlling it?

Macrotus:
I read a bit more and saw this on Adafruit product page

They cannot source current so they should be connected to LED cathodes.

Is there any 8-bit shift controller that works like 74HC595 (is able to output power?) but can handle 20 mA per output pin and take 160 mA to drive all the pins at max load?

It's not a shift register, but you could use one to drive it: http://www.ti.com/lit/ds/symlink/tlc59213.pdf

is it possible to supply the power to TPIC6B595 too from an external power supply and have Arduino controlling it?

Yes. Be sure to connect external supply Gnd to Arduino Gnd.

Well, now I'm a little confused...

TPIC6B595 isn't what I want because it can only drain. CD74AC164E can source the the amount of power I want but it can't be daisy chained.. can it?

So, something that can supply 20 mA to 8 pins continuously and can be daisy chained. It would be great to do it this way. http://arduino.cc/en/Tutorial/ShiftOut

Or, if you have any suggestions... but I'd still like to hear something about the question above.

'164 can be daisychained. The DS lines are used for data inot. Connect DS2 to +5. Q0 will then follow DS1 on the next clock.
MR must be High for normal operations; all outputs go low when it is low.

Could you post a simple schematics how to daisy chain two of these and connect them to Arduino?

Thanks again.

Not sure what I am doing... this one doesn't have storage register, only the shift one or am I missing something. Doesn't this cause the leds to flicker when the bits pass the register?

I still keep bothering you and ask if there is a chip similar to CD74AC164 but has a storage register?

Damn it! :0

You are making a cube, yes?
So each layer will have an NPN transistor/N-channel MOSFET to connect the cathodes to Gnd.
Turn off that driver before shifting in new data. Storage register not needed.

If you want a storage register device, use TPIC6B595 or 6C595 and use PNP transistor or P-Channel MOSFET to source current to the LEDs.

Yes, making a cube!

That was the plan: have N-channel MOSFETs on each layer to connect cathodes to ground.

What do you mean by turning off the driver? Write MR low on each register, send 8 bytes and turn MR pins high again?

Edit. I can't connect those leds directly to the chip because it can source only 100 mA at maximum. I need 20 mA on all the pins at the same time. So, either I have to use transistors or I need a better chip.

I can't connect those leds directly to the chip because it can source only 100 mA at maximum. I need 20 mA on all the pins at the same time.

This chip will support that.

DC VCC or Ground Current, ICC or IGND (Note 3) . . . . . . . . .±100mA
Note 3. For up to 4 outputs per device, add ±25mA for each additional output.

Be sure to use appropriate current limiting resistor:
(5V - (Vf of LED) )/.02 = resistor

I'm still a total noob on electronics. On the #arduino IRC channel dhrosa said this when I copied your datasheet quote there

ahthat doesn't make sense, the chip becomes rated for more heat if you increase the current?

I posted a picture of the PCB I'm designing. It's not ready yet but I think you can manage to read that. Are you saying this should work?

So get one, or 8, and try it. I can only tell you what the data sheet says.

Do the $5 experiment.
Or use the TPIC6B595 that I suggested for current sinking, and use PNP or P-channel MOSFET to source current to each layer.

5 $ isn't bad but the 45 $ international shipping charges are :wink:

Check the image above.

I was suggested to use 74HC595 shift registers and then have SN74ACT241 in series and then the leds.

74HC595 is only good for 70mA Total, so just 8-9mA per outout.
At least use a part that is rated per output for the current you want.

How much is shipping with Farnell? Aren't they located internationally?

I can't tell from your trace routings if that will work. Really need a schematic.
For instance, I see what could be decoupling caps, what could be series resistors.
I don't see what you're doing with the control lines for whatever chips those are, nor do I see anything that looks like transistors to control the current for each layer.

"74HC595 shift registers and then have SN74ACT241" - now you have twice as many chips as the TPIC6B595, and you're still need current limit resistors.