Go Down

Topic: 74138 family choice? (Read 2272 times) previous topic - next topic

magagna

Thank you MarkT and CrossRoads for the circuit ideas. I'll try them out as soon as possible.

Quote
So you need to send 2 bytes to the shift register every 20uS? You have 320 clocck cycles to get an update out.


That's correct, the interrupt routine runs every 320 ticks. It's very small; all it does is update the display. It flips some bits, SPI.transfer() x 3 out of an array, flips a few more bits, and increments the row counter for next time. The main loop is responsible for the animations and yes it's definitely slowed down by the interrupt routine firing so often but I still need to add delay()s once in a while so ultimately all is well.

In case you're wondering about 50 Khz -- it's 16 rows x 32 levels of PWM x 100 Hz so you can't see the multiplexing flicker.

I'll post an update after I get things working.
http://en.wiktionary.org/wiki/magagna <-- My last name.  Pretty apt.

dc42


I'm using these:

http://www.digikey.com/product-detail/en/IRLML2246TRPBF/IRLML2246TRPBFCT-ND/2639576

I think drain current would be 2.4A (24 LEDs @ 100 mA ea), if I'm reading the spec sheet right Figure 13 says Rds(on) for 2.4A would be about 100 m Ohm?


The figure you can rely on is 135mohm max @ Vgs=4.5V Ids=-2.6A. So you can assume no worse than 135mohm @ 2.4A, giving 0.324V worst case voltage drop.


Here's the spec sheet for the LEDs:

http://www.us.kingbright.com/images/catalog/SPEC/APT3216SYCK.pdf

The charts don't show anything above 50mA in but by extrapolating I think would be 2.5 - 3 V?


Yes, it looks like around 2.5V @ 100mA to me. So 5V should be more than enough.

A few more questions:

1. Are you using 180 ohm Rext on each TLC5916?

2. What 5V power supply are you using? Have you measured its output when all the LEDs are on?

3. Do you have a 0.1uF or greater decoupling capacitor local to each TLC5916?

4. Have you tried a lower multiplexing frequency, say 10KHz?

btw if you run the setup from 12V then you will dissipate far too much power in the TLC5916s, and I would expect the overtemperature detection will trip in very quickly when you are lighting all the LEDs. Even at 5V, the voltage at their outputs when they are sinking 100mA could be more than 2V, at which the dissipation in each would be 1.6W.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

magagna

#17
Nov 09, 2012, 05:44 am Last Edit: Nov 09, 2012, 05:54 am by magagna Reason: 1
Quote
1. Are you using 180 ohm Rext on each TLC5916?

2. What 5V power supply are you using? Have you measured its output when all the LEDs are on?

3. Do you have a 0.1uF or greater decoupling capacitor local to each TLC5916?

4. Have you tried a lower multiplexing frequency, say 10KHz?


I am indeed using a 180 ohm resistor on the TLC5916s when I run everything at 5 V. The adapter I use for those tests is a 5 V 4 A switching wall adapter; my meter says it's at about 2.2 A when all LEDs are on full brightness.

I do have 0.1uF cap near all TLC5916s (and all other chips). I have a 220uF cap next to the incoming power supply and when I'm using a 12 V power supply I have a 10uF cap next to the voltage regulator (LD1117S50TR) per its data sheet. If you have any other recommendations I would welcome any input.

I haven't tried lower multiplexing frequencies, that will require reworking some of the code, but I will try that out this weekend as well.

Quote
btw if you run the setup from 12V then you will dissipate far too much power in the TLC5916s, and I would expect the overtemperature detection will trip in very quickly when you are lighting all the LEDs. Even at 5V, the voltage at their outputs when they are sinking 100mA could be more than 2V, at which the dissipation in each would be 1.6W


Thank you, I hadn't considered that. So far I had just been staying under the 960mA limit of the chips; I hadn't looked at wattage limits.
http://en.wiktionary.org/wiki/magagna <-- My last name.  Pretty apt.

magagna

#18
Nov 12, 2012, 04:00 am Last Edit: Nov 12, 2012, 04:03 am by magagna Reason: 1
After a day of testing I think the problem is the TLC5916s and not the 74AC138 3:8 decoders or the MOSFETs at all.

If I run the interrupt routine at 50Khz with no TLC5916 commands (so all it's doing is switching from one MOSFET to the next) the circuit uses only 1% less current than displaying a single row with no updates.

I added 150 ohm resistors on the gate pins and it didn't seem to make a difference one way or the other, but I'm going to leave them in the design because I trust MarkT more than I trust myself.

Once I started adding the TLC5916s code back in I saw the current drop off. Just adding the code that pulses the Output Enable pin reduces brightness about 8% and the SPI and latch code reduces it another 14%. When I increased the amps by reducing the RExt resistors I saw even more dropoff, this non-linear dropoff explains why I'm seeing the LEDs only pulling 57mA on average instead of 100mA.

My guess is the TLC5916s do their constant-current-regulation thing by starting out with low current and slowly ramping up, and my pulsing them so fast gives them less time to figure things out.

All these tests were at 5V; now that I know where the problem is I believe I can safely test higher voltages (as long as I stay within the thermal limits of the chips), knowing the problem isn't the decoders or MOSFET selection.

Thanks to everybody for your input.
http://en.wiktionary.org/wiki/magagna <-- My last name.  Pretty apt.

Go Up