Re: 300 mA from a microcontroller pin
- From: rickman <gnuarm@xxxxxxxxx>
- Date: Fri, 30 Nov 2007 08:22:16 -0800 (PST)
On Nov 30, 4:39 am, Tomás Ó hÉilidhe <t...@xxxxxxxxxxx> wrote:
Tomás Ó hÉilidhe:
I'll post a picture of the relevant part of the circuit now in a few
minutes.
http://img266.imageshack.us/img266/4861/ledsetupug6.jpg
As you can see, I've pins coming from microcontroller going to the shift
register.
Maybe I have lost sight of what you are looking for. I don't see how
this circuit can light both LEDs in the package. That is, I don't see
how the shift register can pull the LED pin high to light the bottom
LED in each package.
Ah, I see what you are doing. You are using the shift register to
"enable" a column and driving each row to light up all LEDs in the
selected column. I would do this differently. I would use the push-
pull driver on the shift register outputs since you have no way to
tristate them. Then I would use a driver on the rows to "enable" one
row at a time. To do this you need to do two things...
1) Swap the transistors in the push-pull row drivers so that they are
in the emitter follower configuration and remove the resistors between
the drivers and the MCU. This will allow the row driver outputs to
float when the input from the MCU floats. It also prevents the
transistors from saturating and give you a 0.7 volt drop when
driving. Since the row drivers are only driving with a 1/6 duty cycle
the power is 1/6 * 0.7 * 300 mA or 35 mW. The 0.7 volt drop will be
useful for item 2...
2) If you float the row line, there is a sneak path between two
columns through two LEDs. The current through this path will be small
since the LED voltage drops are double the intended path, but it may
be enough to light up. So you need to reduce the driving voltage to
something below 4 volts. The row driver will drop about 0.7 volts and
the column driver will drop another few tenths of a volt depending on
the device selected. So this puts you in the 4 volt ballpark. But if
your power supply is a little high and the column driver has a low
saturation voltage, you may still get enough current to light the
LEDs, especially since the sneak current can be full time while the
intended current is only 12% duty cycle or so. So you might want to
add a diode between the 5 volt supply and the high side drivers. This
will drop your LED driving voltage to around 3.3 volts. So you need
to resize your current limiting resistors and, of course, move them
from the row to the column. The extra diodes may not be needed, you
can try it both ways.
I spent about 15 minutes thinking about this and did not test anything
I have said, so I may have overlooked something important. But at
first pass this looks good to me. Do you see any problems with it?
One last thought... 300 mA may be a bit high. With a 1/6 duty cycle,
the average current is 50 mA. Shouldn't that be a lower drive current
to get your 30 mA?
.
- References:
- 300 mA from a microcontroller pin
- From: Tomás Ó hÉilidhe
- Re: 300 mA from a microcontroller pin
- From: Arlet Ottens
- Re: 300 mA from a microcontroller pin
- From: Tomás Ó hÉilidhe
- Re: 300 mA from a microcontroller pin
- From: rickman
- Re: 300 mA from a microcontroller pin
- From: Tomás Ó hÉilidhe
- Re: 300 mA from a microcontroller pin
- From: Tomás Ó hÉilidhe
- 300 mA from a microcontroller pin
- Prev by Date: Re: TCP/ IP, USB stacks and ThreadX
- Next by Date: Re: 300 mA from a microcontroller pin
- Previous by thread: Re: 300 mA from a microcontroller pin
- Next by thread: Re: 300 mA from a microcontroller pin
- Index(es):
Relevant Pages
|