Modelling Wolfspeed Power Modules
Hello all,
I am using 2 power modules from Wolfspeed for a bi-directional full bridge DC-DC converter. The power module I am using is the CAS120M12BM2 but since this model does not seem to be available on LTspice, in my spice model I am using the CAS175M12BM3.
The main objective of modelling this full bridge converter is mostly to:
- Get a better understanding of its operation.
- Become better acquainted with the Wolfspeed Spice models.
- Get a better understanding on how to model the parasitics of the system.
- Understand how these parasitics influence the performance of the power modules.
Therefore, whether I use the CAS120, CAS175 or any other WS Spice model, does not really matter to me as long as I figure out how to model and/or include the parasitics correctly.
I have read the following application notes from Wolfspeed:
- Wolfspeed Power Module SPICE Models User Guide
- Power Module Baseplate Capacitance and Electromagnetic Compatibility
The second document gives a description on the modeling of the baseplate capacitances in which I am currently not very interested.
The first document describes how to make use of the power module spice models and gives some direction on how to include some parasitics in the model (for example editing the SpiceLine 2 attribute of the component). However there are still a few details that I have not been able to find in the document or extract while reading it.
Question 1: Is there a list and a description of all the parameters included in the model of the power module?
Question 2: Are these parameters and their influence enabled by default whenever I use a certain model or should I call them in the SpiceLine 2 attribute in order to "enable/activate" them?
Question 3: Can I edit any of these parameters simply by calling it and editing it in the SpiceLine 2 attribute of the component or should I edit them in the .LIB file of the component?
In the document(1) I am reading that Cds, and Cgd are modeled with dependence on Vds, and Cgs is modeled with dependence on Vgs. When I read the .LIB file I can find the function (.func Cxx(V)) used to describe this behaviour.
This function looks little bit like this:
.func Cgs(V) {table(V,-5.000,5.298,-4.750,4.915,-4.500,4.606,-4.250...)}. In this function, and functions that are structured similarly to this one, are the given values the values of Cgs, or whichever parameter is being described by the function?
The values of V, are those given in another table in the .LIB file or are this actually the values of the source that I will be using in the spice model?
Question 4: If I want to model these parasitic capacitances or components whose value depends on the voltage across them, where can I extract his information from?
I would really appreciate any help and advice.
Thank you in advance.
Kosta Kotsis
Comments
-
Forum_Moderator Wolfspeed Employee - Contributor Level 5Options
Thank you for your post, it has been approved and we will respond as soon as possible.
0 -
Bdeboi Wolfspeed Employee - Contributor Level 3Options
Hello,
Here are some answers to your questions.
Questions 1 - 3
There is no formal list of all of the editable parameters in the model. The SPICE model user guide you've found goes over some of the more important parameters. If you are interested in editing the parasitics, refer to the circuit diagram in the user guide - all of the parameter names line up with the parameters within the model.
However, if you open the .lib file in a text editor and find the ".SUBCKT" statement for an individual model, there will be a .param statement following it that defines the default parameters for the model. See the below snip from the model file. Any parameters in this .param statement can be edited from the Spiceline. Basically, this .param statement defines some default values that are overridden by the spiceline definitions.
.SUBCKT CAB400M12XM3 V+ Mid V- G1 K1 G2 K2 Tc1 Tc2 TjQ1 TjQ2 TjD1 TjD2 Baseplate
*** Default Parameters ***
.param BPC=0 Thermals=1 level=3 Vths=0 Rdss=0 Rp=100 Tj={TEMP}….
So, to clarify, all parameters that are editable in the spiceline are given default values by this .param statement, and when you define a value in the spiceline it will override whatever is defined there. So, all parameters are defined by default, and there is no enabling or activating parameters. However, some model behaviors are turned off or on by default, given by this .param statement. For example, by default: BPC=0, Thermals=1 → baseplate capacitances are disabled and the thermal network is enabled.
For your question on the capacitances, the value of 'V' is defined based on the node voltages defined in the three capacitance definitions:
The ".func C table(….)" functions define the voltage-capacitance relationship for a given capacitance. The table syntax is (V1, C1, V2, C2, V3, C3) and so on. The actual capacitances are implemented into the model via the G_cdg, G_cds, and G_cgs sources.
Question 4
I'm not quite sure I understand this question correctly. Are you looking to extract out the C-V relationships of the capacitances? If so, you can extract the information from the table() definitions.
Let me know if you have any more questions or if anything is unclear.
Thanks,
Brian
1 -
KonstandinKotsis Contributor Level 1Options
Hello,
Thank you for your reply.
I belive my questions 1 & 2 are covered, however I still have some uncertainties regarding questions 3 & 4.So, If I understand correctly, at least for the case of the parasitic capacitances, their values are defined based on these equations:
Looking, for example, at the term Cgd(V(D,G)) - Does this represent the value of the Cgd parasitic capacitance as a function of the voltage between D(drain) and G(gate) and if so, where in the code can this V(D,G) be found?
Regarding the ".func C table(….)" you are mentioning, are you referring to one of the functions of this structure:.func a(Vgs) {table(Vgs,0,8.3333e-10,0.5……)}
OR
.func Cgs(V) {table(V,-5.000,8.066,-4.750,7.372,….)}
The first function seems to have the structure you are mentioning (V1, C1, V2, C2, V3, C3) and looking at the values in there I would assume those are indeed Voltage and capacitance values, but it is also under the
"Forward Conduction Paramters" section so I dont understand how it relates to the parasitic capacitances.
Moreover there are three functions of similar structure under this section:
.func a(Vgs);; .func b(Vgs);; .func c(Vgs) and I do not seem to understand what all three represent and what the coefficients a,b,and c represent.
On the other hand, the second function is under the "Device Capacitance Values" which I would assume gives the relationship of the capacitance value wrt to the (node) voltage applied on this capacitance. Which brings me back to the question: Where can these node voltages be found in the code (talking about the voltages which Cds, Cdg, and Cgs are a function of).
Regarding Question 4 and a bit of a background:
I am trying to dive deep into this with the hope that I understand exactly what is happening in the code of the model and hopefully learn how to build similar models for other MOSFETs (based on their datasheets) whose models are unavaialble (if that is even possible).
This is why I was also asking how can I extract the dependency between the parasitic capacitances and the voltage nodes, or any other information I might need to build a model like this.
Finally, considering that coding is not really my strongest point, is there any sort of pseucode for this wolfspeed models that I could follow in paralle with the .LIB file? Maybe that way I can understand a bit more of what is happening.0 -
Bdeboi Wolfspeed Employee - Contributor Level 3Options
Hello,
So, first, I think it's helpful to understand a bit about the SiC MOSFET model structure. The general model below is extremely common for SiC MOSFETs. The three capacitances here match the syntax in the SPICE models. When comparing to datasheets, Crss = Cgd, Coss = Cgd + Cds, and Ciss = Cgd + Cgs.
In the model netlist, you have the three lookup table functions that you have found - Cds, Cdg, and Cgs. As you've stated, these three functions define the actual C-V definitions for the three capacitances.
Above in the netlist, under 'CV Model', is where you will find how these capacitances are inserted into the actual circuit:
The "G" prefix in the three models just indicates that this is a behavioral current source. The highlighted terms are where the actual CV lookup tables are accessed. AF, agd, ads, ags, and Cgd_Module are just scalar modifiers. The fundamental equation is just I = C(V) * dV/dt.
Yes, V(D,G) would be the voltage across drain to gate. One thing to note here is that this is a circu
it netlist, not code. D and G are just nodes that are defined in the model. For example, in the below .SUBCKT statement, the nodes for this subcircuit model are D, G, S, Tj, and Id.So, V(D,G) is not explicitly defined. The model is a circuit, and in this circuit there is a node named D, and a node named G, and V(D,G) is simply the voltage across those two nodes.
If you are going to try to develop your own SPICE models, I have a few recommendations. First, you'll want to become very familiar with netlist syntax. It's really not complicated but takes some time to get used to. For example, consider the circuit below. This same circuit can be represented in a netlist as:
R1 1 0 {Value} → The circuit element name is R1, it is connected from node 1 to 0 (ground)
R2 1 2 {Value}
C1 2 0 {Value}
I would also recommend looking at the Pspice .cir model files instead of the LTspice library. The LTspice .lib files feature quite a bit of customization that can make it very challenging to understand. The individual Pspice models are a bit simpler.
Let me know if you have any more questions. I also will say that we use a behavioral model that uses a large amount of data to create. There are other SPICE model implementations that are more suitable to create with datasheet parameters. For example, you make take a look at the Berkeley SPICE model. LTspice has a version of this in their embedded nmos model
. Many people have done what you are trying to do so I would go look around at some papers/articles and you may find some examples.Thanks,
Brian
1 -
BlakeNelson Wolfspeed Employee - Contributor Level 3Options
I hope that this answered your question. I will close this discussion for now but if you have a follow up question, please "Start a New Discussion" and we would be glad to support you further.
Blake
0