EmbeddedRelated.com
Forums

Explanation of the whole 300 mA thing

Started by Unknown December 1, 2007
    Firstly, I'd like to thank all the people who've help me out so far 
that contributed to the "300 mA" thread.

    I'm doing an embedded systems project for college, I'm a 3rd year 
doing Electronic Engineering. It's a Connect4 game consisting of 42 LEDs 
(6 rows, 7 columns). Each LED can be either Red, Green or Off.

    At the end of this post, I have a link to a PDF of the current 
schematic, but please read my description before opening it.

    I have two 8-Bit shift registers to decide which column is currently 
being lit. When flashing a column, I have to flash the reds, then flash 
the greens, because if I flash a column with both red and green at the 
same time then there'll be a path from 5 V to 0 V through the LED's and 
an entire row will light up -- this is why I've got two 8-Bit shift 
registers as opposed to one; the first one flashes the reds while the 
second one flashes greens.

    You might think my shift register setup is a bit funky as regards the 
RC circuits but allow me to explain. The purpose of the RC circuit which 
feeds into the master reset of the shift registers is simply to ensure 
that the chip starts up will all zeros, and it will have a very fast 
charging time. The RC circuit that feeds into the OR gate will have a 
very long charging time though, about 50 ms maybe. The reason for this is 
as follows:

    1: I apply power to the circuit, there's initially a 1 on the input 
to the first shift register
    2: After 20 ms, the PIC will be operational, and it will clock the 1 
onto the shift register
    3: About 30 ms later, the RC will have charged and be dragged down to 
0 V
    4: The microcontroller waits about 20 ms and then begins to just 
clock the 1 along in an eternal loop through both shift registers

     What's the purpose of all this you might say? It's just to save me 
needing to take another pin from the microcontroller for the shift 
register input :-D I've twelve pins in all to play with in, and I have 
them all used up.

     Anyway, my current boggle is which chip to use for the big cyan 
coloured square that says "Driver" in my diagram. Basically, I want to 
put 300 mA through each LED (with a duty cycle of one sixteenth). I don't 
mean to sound utterly clueless, but I really haven't picked up the knack 
yet for reading datasheets. A few of you kindly suggested chips to me, 
but when I went to read the datasheets for the chips I didn't really have 
a clue of whether I'd found the chip I wanted or not. Up until Thursday I 
didn't know what "source and sink" meant, and I was writing it as "source 
and sync" :-O  But of course, I'm willing to learn.

    My first problem to tackle though is which chip to use for the big 
cyan square :D

    Here's the diagram:

http://download144.mediafire.com/vtgolalbnsxg/bkx3seejxdc/schematic.PDF


    Thanks for your time!

-- 
Tomás Ó hÉilidhe
Tomás Ó hÉilidhe wrote:
> Firstly, I'd like to thank all the people who've help me out so far > that contributed to the "300 mA" thread. > > I'm doing an embedded systems project for college, I'm a 3rd year > doing Electronic Engineering. It's a Connect4 game consisting of 42 LEDs > (6 rows, 7 columns). Each LED can be either Red, Green or Off. > > At the end of this post, I have a link to a PDF of the current > schematic, but please read my description before opening it. > > I have two 8-Bit shift registers to decide which column is currently > being lit. When flashing a column, I have to flash the reds, then flash > the greens, because if I flash a column with both red and green at the > same time then there'll be a path from 5 V to 0 V through the LED's and > an entire row will light up -- this is why I've got two 8-Bit shift > registers as opposed to one; the first one flashes the reds while the > second one flashes greens. > > You might think my shift register setup is a bit funky as regards the > RC circuits but allow me to explain. The purpose of the RC circuit which > feeds into the master reset of the shift registers is simply to ensure > that the chip starts up will all zeros, and it will have a very fast > charging time. The RC circuit that feeds into the OR gate will have a > very long charging time though, about 50 ms maybe. The reason for this is > as follows: > > 1: I apply power to the circuit, there's initially a 1 on the input > to the first shift register > 2: After 20 ms, the PIC will be operational, and it will clock the 1 > onto the shift register > 3: About 30 ms later, the RC will have charged and be dragged down to > 0 V > 4: The microcontroller waits about 20 ms and then begins to just > clock the 1 along in an eternal loop through both shift registers > > What's the purpose of all this you might say? It's just to save me > needing to take another pin from the microcontroller for the shift > register input :-D I've twelve pins in all to play with in, and I have > them all used up. > > Anyway, my current boggle is which chip to use for the big cyan > coloured square that says "Driver" in my diagram. Basically, I want to > put 300 mA through each LED (with a duty cycle of one sixteenth). I don't > mean to sound utterly clueless, but I really haven't picked up the knack > yet for reading datasheets. A few of you kindly suggested chips to me, > but when I went to read the datasheets for the chips I didn't really have > a clue of whether I'd found the chip I wanted or not. Up until Thursday I > didn't know what "source and sink" meant, and I was writing it as "source > and sync" :-O But of course, I'm willing to learn. > > My first problem to tackle though is which chip to use for the big > cyan square :D > > Here's the diagram: > > http://download144.mediafire.com/vtgolalbnsxg/bkx3seejxdc/schematic.PDF >
See my earlier post, the original PNP/NPN Trx is fine, just add a Rbe. No you have a full SCH, I see you use NPN Darlington on pullup - that will have a higher drop than NPN pulldown - better would be PNP. To disable drive until you are ready, use an OE shifter. For this design, I'd suggest HEF4094, as that can drive into the darlington base. You only want ONE darlington on at a time, and you also want a small time when all darlingtons are off, to allow the new Row Driver info to settle. So your Shift register D.CLK.OE detail 'needs work' To use pins more efficently, I'd suggest change the priority encoder, to a shift register read of the buttons. CLK can be shared, and Button PL can be OE on the Column drivers. (etc) -jg
On Dec 1, 7:42 am, Tom=E1s =D3 h=C9ilidhe <no_spam_th...@you.com> wrote:
> Firstly, I'd like to thank all the people who've help me out so far > that contributed to the "300 mA" thread. > > I'm doing an embedded systems project for college, I'm a 3rd year > doing Electronic Engineering. It's a Connect4 game consisting of 42 LEDs > (6 rows, 7 columns). Each LED can be either Red, Green or Off. > > At the end of this post, I have a link to a PDF of the current > schematic, but please read my description before opening it. > > I have two 8-Bit shift registers to decide which column is currently > being lit. When flashing a column, I have to flash the reds, then flash > the greens, because if I flash a column with both red and green at the > same time then there'll be a path from 5 V to 0 V through the LED's and > an entire row will light up -- this is why I've got two 8-Bit shift > registers as opposed to one; the first one flashes the reds while the > second one flashes greens.
Personally, I don't think you need two shift registers at all. To drive the LED array, you need to drive one side with high/low voltages and tristate to the other side (high, low voltage or high impedance). You are using the shift registers and the darlingtons to apply the high/low/high impedance to the columns. The Cyan box is applying high or low voltages to the rows. This approach misses out on the ability of the MCU to drive the output pins to the three states. As a result you will be using an extra shift register and a lot more drivers. If you use a single '164 shift register to drive bipolar transistor pairs in a standard push pull configuration on each output, this will drive the columns of the array. There is a part available from Digikey that should be perfect for this... HBDM60V600W, very small, very cheap and good for 500 mA of continuous current. The row drivers can use the same transistor parts in a slightly different configuration. It is a push pull circuit, but the emitters are tied together instead of the collectors. This puts both transistors in an emitter follower configuration which will allow the output to float when the input floats. So the MCU can directly control the rows as either High, Low or Open which is what you are doing with the double shift registers and the darlingtons. Your MCU should shift all 8 bits into the shift register to drive all columns at the same time. All of the row outputs should be high impedance. The MCU writes a one to one of the row outputs and enables the output drive on that bit for one color. This will allow just that one row to be controlled by the shift register. Then that output is disabled and the process repeated writing a zero to the row driver for the other color. This is repeated for each row. Is there something you don't like about this arrangement?
> You might think my shift register setup is a bit funky as regards the > RC circuits but allow me to explain. The purpose of the RC circuit which > feeds into the master reset of the shift registers is simply to ensure > that the chip starts up will all zeros, and it will have a very fast > charging time. The RC circuit that feeds into the OR gate will have a > very long charging time though, about 50 ms maybe. The reason for this is > as follows: > > 1: I apply power to the circuit, there's initially a 1 on the input > to the first shift register > 2: After 20 ms, the PIC will be operational, and it will clock the 1 > onto the shift register > 3: About 30 ms later, the RC will have charged and be dragged down to > 0 V > 4: The microcontroller waits about 20 ms and then begins to just > clock the 1 along in an eternal loop through both shift registers > > What's the purpose of all this you might say? It's just to save me > needing to take another pin from the microcontroller for the shift > register input :-D I've twelve pins in all to play with in, and I have > them all used up.
You are using three MCU outputs and a '148 chip to read the switches. But you can multiplex the switches with the same circuit as the LEDs. Just connect each switch to one of the shift register outputs through a resistor to limit the current. Tie the other side of all of the switches together and bring to an input pin on the MCU with a light pullup resistor. The MCU shifts in a single zero with the other bits one and moves it through the register while reading the input pin. When a zero is read on the input, you have found a pressed switch. This frees two pins, one of which you can use to drive the data pin on the shift register.
> Anyway, my current boggle is which chip to use for the big cyan > coloured square that says "Driver" in my diagram. Basically, I want to > put 300 mA through each LED (with a duty cycle of one sixteenth). I don't > mean to sound utterly clueless, but I really haven't picked up the knack > yet for reading datasheets. A few of you kindly suggested chips to me, > but when I went to read the datasheets for the chips I didn't really have > a clue of whether I'd found the chip I wanted or not. Up until Thursday I > didn't know what "source and sink" meant, and I was writing it as "source > and sync" :-O But of course, I'm willing to learn.
Source means to drive current to the output from Vcc (Vdd) and sink means to accept current from the output to ground (Vss). I say, don't use a chip, use transistors.
> My first problem to tackle though is which chip to use for the big > cyan square :D > > Here's the diagram: > > http://download144.mediafire.com/vtgolalbnsxg/bkx3seejxdc/schematic.PDF
I still say you should use a push pull bipolar transistor pair for all of the drivers. This will use 15 transistor packages like the 16 darlington parts you are using and you can eliminate the Cyan box and one of the shift registers. BTW, darlington parts have one disadvantage when driving high currents... they are never saturated and so drop nearly a volt, dissipating much more power than a single transistor. They are normally used when you need a lot of current amplification which you don't need in this case. Regardless of which approach you use, you need to be aware that this multiplexing scheme has a sneak path for the current in the LEDs. If a row (or column) is disabled, all of the LEDs in that row are connected between the columns. If any column is high and another low the current can flow through two LEDs in series to complete the circuit. With a 5 volt drive this may be enough to turn on two series connected LEDs. If you use a lower voltage for all of the Vdd connections to the drivers, this will not happen. You might be able to use a diode drop or two, but the voltage will vary a bit with the current. So you might want to use a voltage regulator. I'm not sure this will be a serious problem since the voltage across the current limiting resistors will be much lower than when driving a single LED, but it may be enough to be visible as ghosting.
rickman wrote:
> On Dec 1, 7:42 am, Tom&#4294967295;s &#4294967295; h&#4294967295;ilidhe <no_spam_th...@you.com> wrote: > >> Firstly, I'd like to thank all the people who've help me out so far >>that contributed to the "300 mA" thread. >> >> I'm doing an embedded systems project for college, I'm a 3rd year >>doing Electronic Engineering. It's a Connect4 game consisting of 42 LEDs >>(6 rows, 7 columns). Each LED can be either Red, Green or Off. >> >> At the end of this post, I have a link to a PDF of the current >>schematic, but please read my description before opening it. >> >> I have two 8-Bit shift registers to decide which column is currently >>being lit. When flashing a column, I have to flash the reds, then flash >>the greens, because if I flash a column with both red and green at the >>same time then there'll be a path from 5 V to 0 V through the LED's and >>an entire row will light up -- this is why I've got two 8-Bit shift >>registers as opposed to one; the first one flashes the reds while the >>second one flashes greens. > > > Personally, I don't think you need two shift registers at all. To > drive the LED array, you need to drive one side with high/low voltages > and tristate to the other side (high, low voltage or high impedance). > You are using the shift registers and the darlingtons to apply the > high/low/high impedance to the columns. The Cyan box is applying high > or low voltages to the rows. > > This approach misses out on the ability of the MCU to drive the output > pins to the three states. As a result you will be using an extra > shift register and a lot more drivers. > > If you use a single '164 shift register to drive bipolar transistor > pairs in a standard push pull configuration on each output, this will > drive the columns of the array. There is a part available from > Digikey that should be perfect for this... HBDM60V600W, very small, > very cheap and good for 500 mA of continuous current. The row drivers > can use the same transistor parts in a slightly different > configuration. It is a push pull circuit, but the emitters are tied > together instead of the collectors. This puts both transistors in an > emitter follower configuration which will allow the output to float > when the input floats. So the MCU can directly control the rows as > either High, Low or Open which is what you are doing with the double > shift registers and the darlingtons. > > Your MCU should shift all 8 bits into the shift register to drive all > columns at the same time. All of the row outputs should be high > impedance. The MCU writes a one to one of the row outputs and enables > the output drive on that bit for one color. This will allow just that > one row to be controlled by the shift register. Then that output is > disabled and the process repeated writing a zero to the row driver for > the other color. This is repeated for each row. > > Is there something you don't like about this arrangement?
That's correct from a topology viewpoint, but short on device specs. The Column driver have to cope with ALL rows on at a time, so if the ROW driver is 300mA peak, the column driver needs to be 7x that, or 2.1A - and to avoid brigtness modulation effects (crosstalk), it should be a comfortable 2.1A, with low slope (resistance) over the 7 possible current steps. max Average curent per column driver is 131mA, but the Max peak is 2.1A That current pushs smaller packages, so you are into devices like DPAK, MJD127 etc. -jg
On Dec 2, 4:37 am, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:
> rickman wrote: > > On Dec 1, 7:42 am, Tom=E1s =D3 h=C9ilidhe <no_spam_th...@you.com> wrote:=
> > >> Firstly, I'd like to thank all the people who've help me out so far > >>that contributed to the "300 mA" thread. > > >> I'm doing an embedded systems project for college, I'm a 3rd year > >>doing Electronic Engineering. It's a Connect4 game consisting of 42 LEDs=
> >>(6 rows, 7 columns). Each LED can be either Red, Green or Off. > > >> At the end of this post, I have a link to a PDF of the current > >>schematic, but please read my description before opening it. > > >> I have two 8-Bit shift registers to decide which column is currently=
> >>being lit. When flashing a column, I have to flash the reds, then flash > >>the greens, because if I flash a column with both red and green at the > >>same time then there'll be a path from 5 V to 0 V through the LED's and > >>an entire row will light up -- this is why I've got two 8-Bit shift > >>registers as opposed to one; the first one flashes the reds while the > >>second one flashes greens. > > > Personally, I don't think you need two shift registers at all. To > > drive the LED array, you need to drive one side with high/low voltages > > and tristate to the other side (high, low voltage or high impedance). > > You are using the shift registers and the darlingtons to apply the > > high/low/high impedance to the columns. The Cyan box is applying high > > or low voltages to the rows. > > > This approach misses out on the ability of the MCU to drive the output > > pins to the three states. As a result you will be using an extra > > shift register and a lot more drivers. > > > If you use a single '164 shift register to drive bipolar transistor > > pairs in a standard push pull configuration on each output, this will > > drive the columns of the array. There is a part available from > > Digikey that should be perfect for this... HBDM60V600W, very small, > > very cheap and good for 500 mA of continuous current. The row drivers > > can use the same transistor parts in a slightly different > > configuration. It is a push pull circuit, but the emitters are tied > > together instead of the collectors. This puts both transistors in an > > emitter follower configuration which will allow the output to float > > when the input floats. So the MCU can directly control the rows as > > either High, Low or Open which is what you are doing with the double > > shift registers and the darlingtons. > > > Your MCU should shift all 8 bits into the shift register to drive all > > columns at the same time. All of the row outputs should be high > > impedance. The MCU writes a one to one of the row outputs and enables > > the output drive on that bit for one color. This will allow just that > > one row to be controlled by the shift register. Then that output is > > disabled and the process repeated writing a zero to the row driver for > > the other color. This is repeated for each row. > > > Is there something you don't like about this arrangement? > > That's correct from a topology viewpoint, but short on device specs. > The Column driver have to cope with ALL rows on at a time, so > if the ROW driver is 300mA peak, the column driver needs to be 7x that, > or 2.1A - and to avoid brigtness modulation effects (crosstalk), it > should be a comfortable 2.1A, with low slope (resistance) over the 7 > possible current steps. > max Average curent per column driver is 131mA, but the Max peak is 2.1A > That current pushs smaller packages, so you are into devices like > DPAK, MJD127 etc.
Good point about the driver current, but I think you have the topology (at least as I am describing it) wrong. In my approach, the row drivers are the ones that enable a single row at a time. Of course, it is arbitrary which are called the "row" and which are the "column". But in my approach it is important to distinguish between the drivers that are controlled by the shift register and which are controlled directly by the MCU. I use the MCU outputs to directly control the high current drivers for the rows with only one of the drivers enabled at a time. The columns use low current drivers (the HBDM60V600W mentioned earlier) and they are all active all the time. Zetex makes a part, ZDT6753T, which is in a very small package with a max current rating of 2 Amps for both the NPN and PNP transitors. Trimming back the current to match the driver will reduce the average current to just under 18 mA vs. the OPs goal of just under 19 mA. These parts are only 7 mm square and are available from Mouser in single quantities. As to the output impedance of the driver, if you consider the emitter follower driver arrangement, which is what I am suggesting for the high current drivers, you will see that this is a *very* low impedance configuration since the load provides feedback to the input. I was wrong about the ghosting problem. I did not consider the voltage drop across the current limiting resistor which will prevent any sneak paths from passing current when the LEDs are being driven. The ghosting would only be a problem when none of the high current drivers are enabled and there are low current drivers in different states. Since this will only happen with a very low duty cycle and at a much reduced current, it will never cause an LED to light visibly even with 5 volt drive.
rickman wrote:
> > > Good point about the driver current, but I think you have the topology > (at least as I am describing it) wrong. In my approach, the row > drivers are the ones that enable a single row at a time. Of course, > it is arbitrary which are called the "row" and which are the > "column". But in my approach it is important to distinguish between > the drivers that are controlled by the shift register and which are > controlled directly by the MCU. I use the MCU outputs to directly > control the high current drivers for the rows with only one of the > drivers enabled at a time. The columns use low current drivers (the > HBDM60V600W mentioned earlier) and they are all active all the time. > > Zetex makes a part, ZDT6753T, which is in a very small package with a > max current rating of 2 Amps for both the NPN and PNP transitors. > Trimming back the current to match the driver will reduce the average > current to just under 18 mA vs. the OPs goal of just under 19 mA. > These parts are only 7 mm square and are available from Mouser in > single quantities.
Not sure if the OP is into small SMD, or if this is a vero-board student project ?
> > As to the output impedance of the driver, if you consider the emitter > follower driver arrangement, which is what I am suggesting for the > high current drivers, you will see that this is a *very* low impedance > configuration since the load provides feedback to the input.
I did not notice any feedback, but a Logic+emitter follower has a number of impedance sources. The Vbe slope, gives 600-700mV @ 300mA and 1.0-1.2V at 2.1A, so that's a change in drive-drop of ~400mV from that alone. Then the base current also matters - 2.1A at Hfe of 100 is 21mA, which is quite high for HCMOS, Even at 210Hfe, (rarer, but doable) it is 10mA Even a high drive SN74LV595 specs 16mA @ .55V max Nch, and 0.8V Pch - that drop is current linear, so adds to the modulation effects. Then the LED drop at 300mA needs to be included (esp non-red), so the whole thing looks tight at 5V, if using ths simple emitter-followers in both paths. That starts to dictate N fet and Pfet column drivers. vanilla 100mOhm fets are 210mV at 2.1A, with no base-drive factors. 50mOhm fets are ~100mV -jg
On Dec 2, 2:12 pm, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:
> rickman wrote: > > > Good point about the driver current, but I think you have the topology > > (at least as I am describing it) wrong. In my approach, the row > > drivers are the ones that enable a single row at a time. Of course, > > it is arbitrary which are called the "row" and which are the > > "column". But in my approach it is important to distinguish between > > the drivers that are controlled by the shift register and which are > > controlled directly by the MCU. I use the MCU outputs to directly > > control the high current drivers for the rows with only one of the > > drivers enabled at a time. The columns use low current drivers (the > > HBDM60V600W mentioned earlier) and they are all active all the time. > > > Zetex makes a part, ZDT6753T, which is in a very small package with a > > max current rating of 2 Amps for both the NPN and PNP transitors. > > Trimming back the current to match the driver will reduce the average > > current to just under 18 mA vs. the OPs goal of just under 19 mA. > > These parts are only 7 mm square and are available from Mouser in > > single quantities. > > Not sure if the OP is into small SMD, or if this is a vero-board > student project ? > > > > > As to the output impedance of the driver, if you consider the emitter > > follower driver arrangement, which is what I am suggesting for the > > high current drivers, you will see that this is a *very* low impedance > > configuration since the load provides feedback to the input. > > I did not notice any feedback, but a Logic+emitter follower has a > number of impedance sources.
The feedback is due to the fact that the load is in the input voltage loop as well as the output. If the load voltage increases, the voltage across the B-E decreases lowering the current to the load. A lower voltage on the load likewise increases the B-E current and increases the load current. A common emitter arrangement has no such feedback and changes in the load will affect the output voltage much more significantly.
> The Vbe slope, gives 600-700mV @ 300mA and 1.0-1.2V at 2.1A, so that's > a change in drive-drop of ~400mV from that alone.
I don't see this data in the sheet for the ZDT6753T. Regardless, the current variation from the changes you describe are not large. There is significant variation between LEDs and this should be within that typical variation in brightness.
> Then the base current also matters - 2.1A at Hfe of 100 is 21mA, which > is quite high for HCMOS, Even at 210Hfe, (rarer, but doable) it is 10mA
Yes, you are right, the ZDT6753T may not be the best choice for this circuit dut to its low hfe. The ZDT6790T or a similar part should work much better with an hfe of 150 min at 2 amps requiring only 13.3 mA base current.
> Even a high drive SN74LV595 specs 16mA @ .55V max Nch, and 0.8V Pch > - that drop is current linear, so adds to the modulation effects.
I'm not sure why you are discussing this part since it is not in the circuit. The high current drivers are controlled directly from the MCU outputs. Many MCUs can directly drive 20 mA LEDs. I don't know the specs on the OP's MCU, but 13 mA should be doable without excessive voltage drop.
> Then the LED drop at 300mA needs to be included (esp non-red), so the > whole thing looks tight at 5V, if using ths simple emitter-followers in > both paths.
I don't think you understand the circuit I am describing (I may have mistyped getting common collector/emitter follower confused with common emitter). The emitter follower push-pull circuit is only used in the row drivers. The column drivers are standard common emitter push-pull drivers. The load resistor should be duplicated from each common emitter collector output to the load to help minimize shoot through, rather than tying the collectors together with a single resistor to the load.
> That starts to dictate N fet and Pfet column drivers. > vanilla 100mOhm fets are 210mV at 2.1A, with no base-drive factors. > 50mOhm fets are ~100mV
This is not so much an issue of FET vs bipolar as common collector vs. common emitter. Common emitter allows the device to be in saturation with a lower voltage drop across the transistor output. But that circuit requires more control circuitry. The point of the emitter follower stage is that it duplicates a high impedance on the MCU control pin to the driver output. This is not doable with a common emitter stage without two control lines per driver. This is also not doable with FETs in a source follower configuration since the threshold voltage is so much higher for a FET than for a bipolar transistor. If you use the correct voltage levels for the drivers, you will see that there is adequate drive from a 5 volt power rail.
rickman wrote:
> On Dec 2, 2:12 pm, Jim Granville <no.s...@designtools.maps.co.nz> > wrote: > >>rickman wrote: >> >> >>>Good point about the driver current, but I think you have the topology >>>(at least as I am describing it) wrong. In my approach, the row >>>drivers are the ones that enable a single row at a time. Of course, >>>it is arbitrary which are called the "row" and which are the >>>"column". But in my approach it is important to distinguish between >>>the drivers that are controlled by the shift register and which are >>>controlled directly by the MCU. I use the MCU outputs to directly >>>control the high current drivers for the rows with only one of the >>>drivers enabled at a time. The columns use low current drivers (the >>>HBDM60V600W mentioned earlier) and they are all active all the time. >> >>>Zetex makes a part, ZDT6753T, which is in a very small package with a >>>max current rating of 2 Amps for both the NPN and PNP transitors. >>>Trimming back the current to match the driver will reduce the average >>>current to just under 18 mA vs. the OPs goal of just under 19 mA. >>>These parts are only 7 mm square and are available from Mouser in >>>single quantities. >> >>Not sure if the OP is into small SMD, or if this is a vero-board >>student project ? >> >> >> >> >>>As to the output impedance of the driver, if you consider the emitter >>>follower driver arrangement, which is what I am suggesting for the >>>high current drivers, you will see that this is a *very* low impedance >>>configuration since the load provides feedback to the input. >> >> I did not notice any feedback, but a Logic+emitter follower has a >>number of impedance sources. > > > The feedback is due to the fact that the load is in the input voltage > loop as well as the output. If the load voltage increases, the > voltage across the B-E decreases lowering the current to the load. A > lower voltage on the load likewise increases the B-E current and > increases the load current. A common emitter arrangement has no such > feedback and changes in the load will affect the output voltage much > more significantly.
You would need to draw this, as I cannot picture a circuit from that description.
> > >> The Vbe slope, gives 600-700mV @ 300mA and 1.0-1.2V at 2.1A, so that's >>a change in drive-drop of ~400mV from that alone. > > > I don't see this data in the sheet for the ZDT6753T. Regardless, the > current variation from the changes you describe are not large. There > is significant variation between LEDs and this should be within that > typical variation in brightness.
LEDs are quite good within a batch. I've measured under 10mV of variation, on a sample of 100. There IS, of course, variation between Red / Green, but the issue is trying to minimise crosstalk or brightness modulation, caused by common mode resistance.
> > >> Then the base current also matters - 2.1A at Hfe of 100 is 21mA, which >>is quite high for HCMOS, Even at 210Hfe, (rarer, but doable) it is 10mA > > > Yes, you are right, the ZDT6753T may not be the best choice for this > circuit dut to its low hfe. The ZDT6790T or a similar part should > work much better with an hfe of 150 min at 2 amps requiring only 13.3 > mA base current. > > > >>Even a high drive SN74LV595 specs 16mA @ .55V max Nch, and 0.8V Pch >>- that drop is current linear, so adds to the modulation effects. > > > I'm not sure why you are discussing this part since it is not in the > circuit.
See my other notes, the HC165 is a poor choice, as it lacks a Latch, and OE control. The LV595 is the highest drive, 5V latched shift register I could find quickly. The high current drivers are controlled directly from the
> MCU outputs. Many MCUs can directly drive 20 mA LEDs. I don't know > the specs on the OP's MCU, but 13 mA should be doable without > excessive voltage drop.
with a high drive LV595, and your numbers, that's 675mV, which is significant in the voltage budget. It also varies from 96mV to 675mV as the load current (number of LEDs ON) changes. To me, that is intolerable to have in the voltage budget - so a circuit change is needed.
> > >>Then the LED drop at 300mA needs to be included (esp non-red), so the >>whole thing looks tight at 5V, if using ths simple emitter-followers in >>both paths. > > > I don't think you understand the circuit I am describing (I may have > mistyped getting common collector/emitter follower confused with > common emitter). The emitter follower push-pull circuit is only used > in the row drivers. The column drivers are standard common emitter > push-pull drivers. The load resistor should be duplicated from each > common emitter collector output to the load to help minimize shoot > through, rather than tying the collectors together with a single > resistor to the load.
A drawing would help - a picture is worth 100 words :) The voltage budget is getting tight. Few Display LEDs specs to 300mA, but slope of 500mv/50mA is not uncommon, for Green. Most matrix displays expect to be driven at lower than 16:1 duty cycle. The dominant resistive voltage drop, should be the current limiting resistor, not any drivers, and especially not any column drivers.
> > >>That starts to dictate N fet and Pfet column drivers. >>vanilla 100mOhm fets are 210mV at 2.1A, with no base-drive factors. >>50mOhm fets are ~100mV > > > This is not so much an issue of FET vs bipolar as common collector vs. > common emitter. Common emitter allows the device to be in saturation > with a lower voltage drop across the transistor output. But that > circuit requires more control circuitry. The point of the emitter > follower stage is that it duplicates a high impedance on the MCU > control pin to the driver output. This is not doable with a common > emitter stage without two control lines per driver. This is also not > doable with FETs in a source follower configuration since the > threshold voltage is so much higher for a FET than for a bipolar > transistor. > > If you use the correct voltage levels for the drivers, you will see > that there is adequate drive from a 5 volt power rail.
Depends on the LED. The specs I have for 5x7 matrix displays show none rated to 300mA, and suggest ~3V drop at 100mA drive (green). That can barely tolerate one follower, so it does need a low saturation column driver. If we lower to 100mA, for the sheet I have, and allow 0.8V for emitter follower + base effects, that leaves 1.2V for column driver, and limiting resistor. Not enough room for a second follower, so it needs a open-collector saturating driver. At 5V targets, FETs are better than bipolars. [also not nearly enough voltage budget for the OPs original Emitter follower/darlington follower/LED/resistor chain ] Std 5mm leds got nowhere near 300mA ratings (even peak) but I found a 'traffic light' green led, specs 3.8V max Vf, at 350mA. (typ 3.3V) -jg -jg
On Dec 3, 2:09 am, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:
> rickman wrote: > > > The feedback is due to the fact that the load is in the input voltage > > loop as well as the output. If the load voltage increases, the > > voltage across the B-E decreases lowering the current to the load. A > > lower voltage on the load likewise increases the B-E current and > > increases the load current. A common emitter arrangement has no such > > feedback and changes in the load will affect the output voltage much > > more significantly. > > You would need to draw this, as I cannot picture a circuit from that > description.
Look up any emitter follower diagram. I shouldn't need to draw this.
> >> The Vbe slope, gives 600-700mV @ 300mA and 1.0-1.2V at 2.1A, so that's > >>a change in drive-drop of ~400mV from that alone. > > > I don't see this data in the sheet for the ZDT6753T. Regardless, the > > current variation from the changes you describe are not large. There > > is significant variation between LEDs and this should be within that > > typical variation in brightness. > > LEDs are quite good within a batch. I've measured under 10mV of > variation, on a sample of 100. There IS, of course, variation between > Red / Green, but the issue is trying to minimise crosstalk or brightness > modulation, caused by common mode resistance.
You are talking about the I-V curve being similar. But you are trying to balance brightness. My understanding is that there can be significant variation in brightness between units at a given current. I have never tried to measure this, but this is what I have read. Even so, doesn't the I-V curve vary between lots?
> >> Then the base current also matters - 2.1A at Hfe of 100 is 21mA, which > >>is quite high for HCMOS, Even at 210Hfe, (rarer, but doable) it is 10mA > > > Yes, you are right, the ZDT6753T may not be the best choice for this > > circuit dut to its low hfe. The ZDT6790T or a similar part should > > work much better with an hfe of 150 min at 2 amps requiring only 13.3 > > mA base current. > > >>Even a high drive SN74LV595 specs 16mA @ .55V max Nch, and 0.8V Pch > >>- that drop is current linear, so adds to the modulation effects. > > > I'm not sure why you are discussing this part since it is not in the > > circuit. > > See my other notes, the HC165 is a poor choice, as it lacks a Latch, and > OE control. The LV595 is the highest drive, 5V latched shift register > I could find quickly.
I still don't know why are you talking about output drivers on MSI chips. None of the LEDs are being driven by MSI chips! The MCU outputs drive the high current, tristate row drivers. The low current drivers are common emitter, so their output voltage do not depend on what is driving them.
> > The high current drivers are controlled directly from the > > MCU outputs. Many MCUs can directly drive 20 mA LEDs. I don't know > > the specs on the OP's MCU, but 13 mA should be doable without > > excessive voltage drop. > > with a high drive LV595, and your numbers, that's 675mV, which is > significant in the voltage budget. It also varies from 96mV to 675mV > as the load current (number of LEDs ON) changes. > To me, that is intolerable to have in the voltage budget - so > a circuit change is needed.
I think we are losing traction here. I don't know which numbers you are using or how you are using them. On top of that I have no idea why you are using the LV595 instead of the parts I have described.
> >>Then the LED drop at 300mA needs to be included (esp non-red), so the > >>whole thing looks tight at 5V, if using ths simple emitter-followers in > >>both paths. > > > I don't think you understand the circuit I am describing (I may have > > mistyped getting common collector/emitter follower confused with > > common emitter). The emitter follower push-pull circuit is only used > > in the row drivers. The column drivers are standard common emitter > > push-pull drivers. The load resistor should be duplicated from each > > common emitter collector output to the load to help minimize shoot > > through, rather than tying the collectors together with a single > > resistor to the load. > > A drawing would help - a picture is worth 100 words :) > > The voltage budget is getting tight. > Few Display LEDs specs to 300mA, but slope of 500mv/50mA is not > uncommon, for Green. > Most matrix displays expect to be driven at lower than 16:1 duty cycle. > > The dominant resistive voltage drop, should be the current limiting > resistor, not any drivers, and especially not any column drivers.
I have never seen a diode that was resistive in the forward direction. I think you will find the forward voltage drop to be logarithmic. Yes, the dominant resistive element is the current limiting resistor, that is why it controls the current.
> >>That starts to dictate N fet and Pfet column drivers. > >>vanilla 100mOhm fets are 210mV at 2.1A, with no base-drive factors. > >>50mOhm fets are ~100mV > > > This is not so much an issue of FET vs bipolar as common collector vs. > > common emitter. Common emitter allows the device to be in saturation > > with a lower voltage drop across the transistor output. But that > > circuit requires more control circuitry. The point of the emitter > > follower stage is that it duplicates a high impedance on the MCU > > control pin to the driver output. This is not doable with a common > > emitter stage without two control lines per driver. This is also not > > doable with FETs in a source follower configuration since the > > threshold voltage is so much higher for a FET than for a bipolar > > transistor. > > > If you use the correct voltage levels for the drivers, you will see > > that there is adequate drive from a 5 volt power rail. > > Depends on the LED. The specs I have for 5x7 matrix displays show none > rated to 300mA, and suggest ~3V drop at 100mA drive (green). > That can barely tolerate one follower, so it does need a low saturation > column driver. If we lower to 100mA, for the sheet I have, and allow > 0.8V for emitter follower + base effects, that leaves 1.2V for column > driver, and limiting resistor. Not enough room for a second follower, > so it needs a open-collector saturating driver. At 5V targets, FETs > are better than bipolars. > [also not nearly enough voltage budget for the OPs original Emitter > follower/darlington follower/LED/resistor chain ]
I am confused. Are you saying that using an row emitter follower with an open collector column driver will work? That is what I am describing! The problem with the FET is that you need two control lines per driver in order to get a tristate driver output. How do you connect this to the MCU?
> Std 5mm leds got nowhere near 300mA ratings (even peak) but I found > a 'traffic light' green led, specs 3.8V max Vf, at 350mA. (typ 3.3V)
You need to ask the OP what is being used in this circuit.
rickman wrote:
> On Dec 3, 2:09 am, Jim Granville <no.s...@designtools.maps.co.nz> >>The voltage budget is getting tight. >>Few Display LEDs specs to 300mA, but slope of 500mv/50mA is not >>uncommon, for Green. >>Most matrix displays expect to be driven at lower than 16:1 duty cycle. >> >>The dominant resistive voltage drop, should be the current limiting >>resistor, not any drivers, and especially not any column drivers. > > > I have never seen a diode that was resistive in the forward > direction. I think you will find the forward voltage drop to be > logarithmic.
Download a kingbright data sheet, and you will see at low currents the log model is OK, at higher currents, the resistive element dominates.
> Yes, the dominant resistive element is the current > limiting resistor, that is why it controls the current. > > > >>>>That starts to dictate N fet and Pfet column drivers. >>>>vanilla 100mOhm fets are 210mV at 2.1A, with no base-drive factors. >>>>50mOhm fets are ~100mV >> >>>This is not so much an issue of FET vs bipolar as common collector vs. >>>common emitter. Common emitter allows the device to be in saturation >>>with a lower voltage drop across the transistor output. But that >>>circuit requires more control circuitry. The point of the emitter >>>follower stage is that it duplicates a high impedance on the MCU >>>control pin to the driver output. This is not doable with a common >>>emitter stage without two control lines per driver. This is also not >>>doable with FETs in a source follower configuration since the >>>threshold voltage is so much higher for a FET than for a bipolar >>>transistor. >> >>>If you use the correct voltage levels for the drivers, you will see >>>that there is adequate drive from a 5 volt power rail. >> >>Depends on the LED. The specs I have for 5x7 matrix displays show none >>rated to 300mA, and suggest ~3V drop at 100mA drive (green). >>That can barely tolerate one follower, so it does need a low saturation >>column driver. If we lower to 100mA, for the sheet I have, and allow >>0.8V for emitter follower + base effects, that leaves 1.2V for column >>driver, and limiting resistor. Not enough room for a second follower, >>so it needs a open-collector saturating driver. At 5V targets, FETs >>are better than bipolars. >>[also not nearly enough voltage budget for the OPs original Emitter >>follower/darlington follower/LED/resistor chain ] > > > I am confused. Are you saying that using an row emitter follower with > an open collector column driver will work? That is what I am > describing! > > The problem with the FET is that you need two control lines per driver > in order to get a tristate driver output. How do you connect this to > the MCU?
Summary for the OP: You will need to do a full voltage budget on this, and that means getting the dats sheets on each device, and checking the voltage at the driven current. Include the base-current effects in your design. When well designed, the series Resistor should dominate the other resistive elements, in setting the LED current. That means you want as much voltage across that R as possible, and as little drop on the common-rail drivers (Column in your drawing). An 'A' student will find (or try and derive 'best guess' for) Max and Min values, and also give the corner cases. Spice is your friend, but spice models for LEDs are not easy to find. The Original SCH has problems in the HC164 drive, and I'd suggest a LV595, or HEF4094, depending on the final load. The original darlingtons will have insufficent voltage headroom, so saturating open collector is called for. Either Bipolar, or MOSFET. example Mosfet is FDS8958A, and that can drive straight from a HEF4094, for example. A series power switch FET, that is delayed until all values are loaded is not a bad idea, and also a safety-monostable, that removes drive if the uC fails to update can avoid frying leds. A frozen scan will kill std LEDs, and if you turn on both N and P fets at the same time, that will crow-bar the supply. A separate LED regulator, from the uC one, is a good idea, at the 2.1A peaks your numbers indicate. If you make that adjustable, you buy some tolerance in voltage margin, and can give the user a brightness control. -jg