3
\$\begingroup\$

As far as I understand, the BJT (bipolar junction transistor) DC forward current gain in common emitter configuration is given by

It seems those symbols all used to describe the same thing (correct me if I am wrong)

Then I read that the BF SPICE parameter is similar but not the same as beta_F.

BF seems to be a parameter of the Gummel-Poon model which models the current gain by using beta_F (which is considered indpendant of temperature and emitter current) and then (using other spice parameters) add that dependencies. So If I understand correctly, BF is beta_F plus additional modelling.

In Multisim, I see BF for a 2N3904 defined as "ideal maximum forward beta". But I cannot find out, how beta_F exactly relates to BF.

I want to run a parameter sweep to see how the bias point of an emitter circuit changes over the variable "DC forward current gain beta". Unfortunately, I can only sweep over BF, and cannot find beta_F in the spice model.

How can I obtain a BF, that corresponds to a change in beta of say 100 to 300?

\$\endgroup\$
3
  • \$\begingroup\$ You are over-thinking this. If you avoid currents that are either too small or too large then you can just modify BF, directly, and be "close enough" any any reasonable use. In electronics design you aren't doing physics research on BJTs. So you aren't examining residuals for new physics. So you don't need to go crazy. If you want to read about an early version of modeling, read this, starting page A2.11. Or read what I wrote here for info on the three operation regions. \$\endgroup\$
    – jonk
    Commented Oct 10, 2021 at 18:58
  • \$\begingroup\$ Or you can read this discussion on the BJT modeling, as well. \$\endgroup\$
    – jonk
    Commented Oct 10, 2021 at 19:00
  • \$\begingroup\$ Or if you want to go crazy see: Mextram -- the most exquisite transistor model. All the above said, there are several factors in the model, not only BF, that determine the forward beta for any specific, given circumstance. And the final computed value is NOT an input to the model, but a result from simulation. So you cannot tell Spice that you want the result of a bunch of calculations to range from 100 to 300. It just doesn't work that way. \$\endgroup\$
    – jonk
    Commented Oct 10, 2021 at 19:11

1 Answer 1

4
\$\begingroup\$

In modeling a BJT's DC operating point, the actual forward beta is the result of iterated numerical circuit calculations where the linearized operating point of the BJT is repeatedly recomputed at each step and then re-applied to generate the next step's results. After time, and in comparison with some settable "stop when the changes from one step to the next are smaller than this amount", Spice will settle out and give you some results. Those results can be used to then derive the resulting forward beta.

Note that while BF is one of the BJT model parameters used in this process, it is not the only one that directly impacts the final results. It's just the more obvious one. There's also ISC, ISE, NC, NE, IKF, IKR, VAF, RE, RB, and RC to name still more that may have varying impacts depending on circumstances. Actually, pretty much everything matters in the end.

You don't get to specify the resulting forward beta. You can specify BF over a range. And that will almost always have the desired effect for any legitimate desire.

But, for example, you don't get to tell Spice over which range of voltage gains you want to run a simulation for a common emitter circuit design. Similarly, you don't get to tell Spice what you want for the range of the final computed forward beta.

You don't get to bound calculation results. You only get to bound the inputs to the simulation, not the outputs of it.

That said, you are allowed to study the models used and decide which of the parameters you want to control and over what range. Lawrence Nagel's thesis, Spice2: A Computer Program to Simulate Semiconductor Circuits, is a good start. It's also free to access. If you go there, you can start on page A2.11. Another good source to read is Chapter 14 on HSPICE's BJT modeling. And finally, if you want the newest, best on the topic then see the most exquisite transistor model. That's the main page. But if you drill down to the Documentation page you will see multiple useful links. One of them is The Mextram Bipolar Transistor Model, G. Niu, R. van der Toorn, J.C.J. Paasschens, and W.J. Kloosterman which is an extensive PDF on their modeling approach.

To run a parameter sweep, I usually just use .STEP (this is not the only way, but just one way.) You can then use .MODEL to create your own model name. If you include "ako:" and a starting model name then you won't have to specify all the parameters, as they will be defaulted to the specified model. You can then just focus on changing BF with the new model. Then link your BJTs to that model. Spice will then parameterize your BJT model and perform a run for each step, which you control.

Here's an example so that you won't have any remaining questions about what I just wrote, above:

enter image description here

And finally, here's a slightly fancier way to go. I selected 2000 points per decade, which is over-doing it. But it results in a smooth curve display. Also, I included the ratio of the actual beta to the specified BF parameter, so you can see the variance (in red):

enter image description here

\$\endgroup\$
4
  • \$\begingroup\$ Very good explanation! So that I understand correctly - If I want to compare or "validate" a spice model against the datasheet of a manufacturer, I can start with the h_FE range specified in the datasheet table and use that value as beta_F in the sweep. Then I check the "actual" beta and change the range of bf until I get the beta (IC/IB) in the simulation that matches the range given in the datasheet? \$\endgroup\$
    – Junius
    Commented Oct 11, 2021 at 7:11
  • \$\begingroup\$ @Junius If you want to validate a Spice model and the datasheet by performing quite a few experiments on the bench with quite a few BJTs from various production date ranges. You can use a datasheet to develop some of the Spice model parameters. But you cannot use a datasheet to develop the entire Spice model. And the Spice model doesn't completely model actual BJT behavior (for example, no reverse bias base-emitter avalanche behaviors are modeled -- and there isn't only one avalanche mode, either.) So maybe I don't understand your question? \$\endgroup\$
    – jonk
    Commented Oct 11, 2021 at 7:23
  • \$\begingroup\$ It´s fine because I think I got your point. From your answer I leared that iteration (by simulation) is necessary. What I wanted to be sure is: The datasheet states the parameter h_FE which is (per definition) the current gain Ic/Ib. So If the datasheet states a range of say 100 to 300 for h_FE I would have to "guess" some range for BF (because i cannot directly sweep h_FE) and then see what Ic/Ib delivers in the simulation. If I then have the Ic/Ib curve for a y-range of 100-300, i note the necessary BF and perform the other simulations I care about using that setting, right? \$\endgroup\$
    – Junius
    Commented Oct 11, 2021 at 8:28
  • \$\begingroup\$ @Junius It's not quite that simple. A circuit may cause the BJT to go into saturation, where the Ic/Ib is much much less than what the datasheet suggests when in active mode. But in general, it's wise to figure about \$pm 50\%\$ or so. So if the nominal beta is 200, you should sweep from about 130 to 300 for beta. If your circuit is relatively functional over that range, it's probably fine. That covers temperature and other details. \$\endgroup\$
    – jonk
    Commented Oct 11, 2021 at 10:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.