I've read literally hundreds of forum posts across this site, eevblog and others trying to find a shift register to handle current for 8 concurrently lit leds at 20mA.
I need output for up to 60 leds and I'm looking at building multiple shift register based circuits. Most of the shift registers, such as the TPIC6B595, I have found that are available locally in Australia are limited to a constant drain current of 100 - 150mA, short of 160mA. I found a TPICxx69x device that handles 350mA but it's AUD$16 !!!
I would have thought that this problem (probably not a problem) would have come up time and time again but maybe people don't drive all 8 LEDs off a shift register at once. My scenario is LEDs for a control board to show switch position for 34 switches so I have to account for all being on at once.
Given the price of that higher current shift register I'm thinking it might be better to use the standard 74HC695 and drive the gates of some small n channel MOSFETs to then sunk current for the LEDs, or even a Darlington Array that would handle the current sink.
I also need to read the 34 switches (momentary push buttons) and thought I'd use a series of daisy chained parallel to serial shift registers. What is the standard devices to read in inputs ?
I was thinking of signalling both types if shift register via SPI.
ilium007:
Given the price of that higher current shift register I'm thinking it might be better to use the standard 74HC695 and drive the gates of some small n channel MOSFETs to then sunk current for the LEDs, or even a Darlington Array that would handle the current sink.
ULN200x would handle the current easily but they're drivers only.
So maybe a 74HC595 driving a ULN2003 ? The only thing with the ULN200x devices is that they are only 7 channel and don't match up with the channel count of the shift registers.
The ULN2803 has 8 channels and looks like the current handling would be ok.
But is there a smarter way of doing this (I don't want to use a matrix of columns and rows though).
CrossRoads:
"shift register to handle current for 8 concurrently lit leds at 20mA. "
TPIC6B595 and TPIC6C595 can both handle 20mA on all 8 outputs concurrently.
ilium007:
I need output for up to 60 leds and I'm looking at building multiple shift register based circuits. Most of the shift registers, such as the TPIC6B595, I have found that are available locally in Australia are limited to a constant drain current of 100 - 150mA, short of 160mA.
I don't think you want try 1200 mA but 160 mA not going to be problem.
Continuous total dissipation See Thermal Information
It's not 1200 mA maybe in a bucket of ice. It can sink 150 in one pin at a time can peak 500 if 2% duty
but 160 not going to kill it as long as it's not under the hood of your car.
If you look real hard at the data sheet your looking like more in the 500 to 800 mA total
for 8 pins to get the 150 mA each pin the chip would have to be cooled with heat sink and maybe a fan because the chip is going to get hot real world temperatures
ilium007:
So looking at the thermal graphs, at 100% duty cycle and 8 outputs operating I can dissipate 15mA per output.
Look again at your IMG_0336.PNG graph.
If the chip is 100C (stinking hot), then it can still sink almost 0.1Amp (100mA) per output (8 outputs on).
Leo..
Ahh I had my units wrong. So it looks like a TPIC6B595 will satisfy my requirements.
What about a shift in register ? Is it better to daisy chain multiple parallel to serial shift registers and read via SPI ( for my 34 buttons ) or go for an MCP23xxxx over I2C or SPI and then get interrupt capability ? I suppose the question is, with a 180Mhz Teensy 3.6 reading he shift registers for input would I need to worry about interrupts ?
I am ordering 74HC165 for the inputs, TPIC6B595 for the LED outputs and 74HC595 for the MOSFET outputs.
I already have a 74HC14 / RC debounce circuit tested and working to handle hardware debounce so hopefully I don't have to worry about interrupts and debounce in software now.
I've got a couple of questions re. thermal layout considerations for the TPIC6B595.
Given it has to sink a fair amount of current for a small package the datasheet recommends increasing copper coverage, 'plugging' all thermal via's and ensuring 'solder coverage should be at least 85%.'
I don't know what this means, if I have those copper pads as shown with a stack of via's do I then have to coat it all with solder and plug all the via's with solder ?
11.1 Layout Guidelines
There is no special layout requirement for the digital signal pin; the only requirement is placing the ceramic
bypass capacitors near the corresponding pin. Because the TPIC6B595 device does not have a thermal
shutdown protection function, to prevent thermal damage, TJ must be less than 150°C. If the total sink current is high, the power dissipation might be large. The devices are currently not available in the thermal pad package, so good PCB design can optimize heat transfer, which is absolutely essential for the long-term reliability of the device. Maximize the copper coverage on the PCB to increase the thermal conductivity of the board, because the major heat-flow path from the package to the ambient is through the copper on the PCB. Maximum copper is extremely important when the design does not include heat sinks attached to the PCB on the other side of the package.
• Add as many thermal vias as possible directly under the package ground pad to optimize the thermal
conductivity of the board.
• All thermal vias should be either plated shut or plugged and capped on both sides of the board to prevent
solder voids. To ensure reliability and performance, the solder coverage should be at least 85%.
20mA with ~6ohm mosfets drop 0.12volt across the mosfet switch.
That dissipates 0.12V * 0.16A = ~0.2watt in the chip when all 8 channels are on.
Nothing to worry about.
Leo..