The datasheet for a transistor (said 2N2222) give us the hfe asuming a Vcc in the 30V range.

For uses like Arduino projects, the Vcc is usually 5V, and under that conditions, the actual hfe is lower. Insteads of hfe=100, we get hfe=12, like in this example (Ib=4.1mA, Ic=49mA in my tests):

enter image description here

No problem here; otherwise, with a hfe=100, the voltage drop across relay would be greater than Vcc, which is impossible.

My question is how to calculate the actual hfe from the datasheet when application's Vcc (5V in this case) is much lower than the Vcc used by the manufacturer (30V)?

  • \$\begingroup\$ Just a little note: your calculation of Ib is wrong, because you ignore voltage drop across base-emitter (Vbe) \$\endgroup\$ Aug 4 '16 at 9:55
  • \$\begingroup\$ That are actual values taken from a physical test circuit. Not calculated, but readed. \$\endgroup\$
    – user83628
    Aug 4 '16 at 10:03
  • \$\begingroup\$ How is it possible to have 5V input, 1.2kΩ resistor at base, voltage drop Vbe from 0.6V to 1.2V (according to datasheet), and have Ib=4.1mA at the same time? \$\endgroup\$ Aug 4 '16 at 11:27

The problem here is not the low Vcc (which does affect hfe to some extent) but the fact that you want to saturate the transistor, i.e. turn it fully on, to switch on a relay.

And one common definition of saturation is "the point where hfe is assumed to fall to 10". At which point, up to some current limit, Vce <= some voltage like 0.2V, leaving 4.8V across the relay coil.

Look at the Vce(sat) specification (page 3 of the datasheet, linked in Lorenzo's answer) and notice the Ic and Ib values : For Ic=150mA, Ib=15mA.
For Ic=500mA, Ib=50mA.
In both cases, Ic/Ib = hFE = 10.

So there's your answer. To a reasonable approximation, in this application (switching a load), independent of temperature, Vcc supply voltage, and transistor type

hFE = 10.

  • \$\begingroup\$ I will appreciate some links to further study the subject. \$\endgroup\$
    – user83628
    Aug 4 '16 at 10:26
  • \$\begingroup\$ I suggest "The Art of Electronics" by Horowitz and Hill. \$\endgroup\$ Aug 4 '16 at 10:32

Any design that requires the exact value of the \$h_{FE}\$ of a BJT is a faulty design, since that parameter is subject to wild production spread.

Since in your case you only need the \$h_{FE}\$ to calculate the base current required to turn the BJT on, assume the worst possible case reported in the datasheet.

In this case worst possible case means lowest possible value of \$h_{FE}\$ in your working conditions. For any small signal BJT assuming \$h_{FE}\$ to be at least 10 (for the purpose of turning it on) is almost sure-fire. In other words, use a base current that is ten times smaller than the maximum collector current you need to drive and you'll be safe.

If the current you must provide to the base turns out to be too big for your driver circuit, you can use a Darlington transistor (or another BJT connected as a Darlington pair). In which case the minimum \$h_{FE}\$ (without even looking at the datasheet) can be assumed as 100 (VERY conservative estimate for a Darlington BJT, it is likely higher; it is OK for two 2N2222 connected as a Darlington pair).

If you want to be more fussy, the \$h_{FE}\$ depends essentially on the \$I_C\$ an temperature. If you want a tighter estimation take the lowest value you find in the datasheet, as you can see in an excerpt of a Fairchild PN2222 datasheet (a modern e cheaper equivalent of the now obsolete 2N2222):

enter image description here

In this case it is generally safe to assume a min \$h_{FE}\$ value of 35.

EDIT (prompted by a comment)

Computing the \$h_{FE}\$ when the BJT is saturated is not meaningful. \$h_{FE}\$ is a parameter which has some meaning when the BJT operates as a linear device, i.e. as an amplifier. When you turn the BJT on you are actually overdriving the BJT out of its linear region (a.k.a. active region).

When you perform your calculations to determine how to bias the BJT to get the level of overdrive needed to turn it on, you are simply using \$h_{FE}\$ as a gross indicator of where the device will stop behaving linearly. In other words you drive it with a base current that cannot be amplified linearly by the device, so it is forced into saturation (i.e. it is turned on).

To be more explicit, let's say that the min \$h_{FE}\$ is 10. This means that if the device is driven with 1mA Ib it will have a 10mA Ic if the output circuit allows it. If, for a given level of Ic, say 10mA, you drive the base with much more than Ic/10=1mA, you are forcing the BJT out of the linear region (where "there is no \$h_{FE}\$").

  • \$\begingroup\$ Worst case for 2N2222 is hfe=35. Actual hfe for the test circuits is hfe=12. There is something missing here ... \$\endgroup\$
    – user83628
    Aug 4 '16 at 10:08
  • \$\begingroup\$ Worst case is hfe=35 for Vcc=10V. Test circuits is hfe=12 for Vcc=5V. It looks like actual hfe = (actual Vcc / datasheet Vcc) * datasheet hfe. Is that relation right? \$\endgroup\$
    – user83628
    Aug 4 '16 at 10:18
  • \$\begingroup\$ @LookAlterno No; the datasheet lists possible hfe values; your circuit forces it lower to ensure saturation. \$\endgroup\$
    – CL.
    Aug 4 '16 at 10:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy