SPICE S parameter for frequency dependent circuit components question

Could some electronics suru here clarify this a bit ? A planar inductor has a frequency dependent resistance(skin, proximity effecrs). Can the small signal S parameters for such an inductor be measured using stabdard SPICE small signal(.AC) analysis ? At each frequency in a specified frequency range, the series resistance is different. Does this new resistance at each frequency have effect on the S parameter estimation.

Reply to
amal banerjee
Loading thread data ...

Like these?

formatting link
I've smoked these in a pulse application, at way below rated RMS current. Skin loss! I had to wind my own, which I hate to do.

formatting link
Certainly an s-param table should account for changes in losses vs frequency.

Reply to
jlarkin

Calculating the skin effect losses to put _into_ the S parameters needs an EM solver, though, assuming that is what the OP needs. Spice doesn't do that.

Cheers

Phil Hobbs

Reply to
Phil Hobbs

On a sunny day (Fri, 19 Nov 2021 13:08:52 -0500) it happened Phil Hobbs snipped-for-privacy@electrooptical.net wrote in snipped-for-privacy@electrooptical.net:

I am sure you know ohmic losses are i^2 * R. So if you have a 1 Ohm resistor, and have 1A during 1 second you dissipate 1 Watt during that second.

1^2 * 1 * 1 = 1

But if you have, in same resistor, 2A during half a second and zero A during the other half, then you have dissipated 2 Watt during that second, while the average current is still 1 A.

2^2 * 1 * .5 = 2 If you have in same resistor, 4A during 1/4 second and zero A during the rest of that second, then you have, in same resistor, dissipated 4W during that second while the average current is still 1A. 4^2 * 1 * .25 = 4W

etc. Pulses, beware!

pfffff

Reply to
Jan Panteltje

Probably really flat, like etched on a PCB or on SiO2 etc.

<
formatting link
>

A few are missing, like Keysight EMPRO or

formatting link
Spice is also not the first choice for S-parameter handling.

---------

Now that I'm at it, I have made a test board on JLCPCB's

7628 4 layer process. <
formatting link
>

Somewhere I've written down that 50 Ohm on the top level should be 11.55 mil. My test line is 12 mil wide as drawn in Altium. I don't have any idea how much they correct for underetching etc.

<
formatting link
>

It hits quite closely, somewhat more closer to 11 mil would probably be exact. My SMA-decals are much too fat for the 4 layer process.

From x=0.5 to 3.5 divisions is the internal 50 Ohm line in the 54754A TDR plug in. Around division 4 is the SMA of the test board. It is a capacitive load.

Divisions 4.5 to 7.5 is the 12 mil line on the multilayer. There is no real difference to the plug-in-internal

50 Ohm line.

Then follows the smaller dip of the unpopulated SMA-connector and then the full reflection at the open end.

The LMX2594 10 MHz-15 GHz synthesizer worked immediately :-) The USB-to-SPI dongle board cannot tell the difference between the eval board and the test board. I have not yet written a single line of software.

Cheers, Gerhard

Reply to
Gerhard Hoffmann

Yes. You'll need to use LAPLACE = {something}. LAPLACE does not have the troubles in .AC that it does for transient simulation. I have to say that I don't bother messing with this for the non-ferrous core coils anymore. I mean the "chip surface mount RF coils."

About 15 years ago I was playing with it, and had a test file for a CCI 1008HQ_R10_ coil testing different LAPLACE usage, because I was not sure I understood it. As follows: =============================================

*1008HQ_R10_multi.mod *Used to test various models of the 100nH 1008HQ inductor *ABS(s) 1008HQ_R10_abss Upper
  • R1 R2 Limit
  • PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
  • 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_abss 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( abs(s)/(2*pi) ) ) ) R99 2 5 1G .ENDS
*---------------------
  • Upper
  • R1 R2 Limit
  • PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
  • 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) ) ) R99 2 5 1G .ENDS
*---------------------
  • -j 1008HQ_R10_negj Upper
  • R1 R2 Limit
  • PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
  • 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_negj 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) ) ) R99 2 5 1G .ENDS
*--------------------- *skinEff 1008HQ_R10_skinEff Upper
  • R1 R2 Limit
  • PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
  • 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_skinEff 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( s/(2*pi) ) ) ) R99 2 5 1G .ENDS
*--------------------- *skinEffSqrt2 1008HQ_R10_skinEffSqrt2 Upper
  • R1 R2 Limit
  • PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
  • 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_skinEffSqrt2 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( sqrt(2)*1.31E-004*sqrt( s/(2*pi) ) ) ) R99 2 5 1G .ENDS
*--------------------- I think I ended up using

GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) ) )

The quantity 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) looks strange, but I think it makes it real in the end, which we want for a resistor.

In the end I had generated a bunch of entire CCI chip inductor family libraries. I haven't used them for many years because I just use AWR and Modelithics, and I didn't end up thinking it bought me much.

Yes, strictly and in principle. But the weight of importance may or may not matter depending on what you're doing.

An example library is the following available from CCI:

  • SPICE MODEL SUBCIRCUIT DATA SOURCE: 026011F-spice0.txt
  • AUTO-GENERATED DATE: 29-Mar-2020 11:59:00
  • Coilcraft Inductor (CCI) Family: 026011

  • Dummy header part .SUBCKT 026011F-___ 1 4 R1 1 4 1E-12 .ENDS

  • Lower Upper
  • Limit Limit
*PartNumber MHz MHz R1 R2 CpF k1 k2 k3 k4 k5
  • 026011F-270 1 1000 1440 0.11 0.3 7.8e-005 0.05 0.018 0.0017 5e-010 .SUBCKT 026011F_270 1 4 .param R1 1440 .param R2 0.11 .param C1 3e-013 .param k1 7.8e-005 .param k2 0.05 .param k3 0.018 .param k4 0.0017 .param k5 5e-010 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS

  • Lower Upper

  • Limit Limit
*PartNumber MHz MHz R1 R2 CpF k1 k2 k3 k4 k5
  • 026011F-720 1 1000 1080 0.4 0.22 0.000152 0.078 0.077 0.0035 5e-007 .SUBCKT 026011F_720 1 4 .param R1 1080 .param R2 0.4 .param C1 2.2e-013 .param k1 0.000152 .param k2 0.078 .param k3 0.077 .param k4 0.0035 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS

  • Lower Upper

  • Limit Limit
*PartNumber MHz MHz R1 R2 CpF k1 k2 k3 k4 k5
  • 026011F-151 1 1000 1480 0.6 0.088 0.000106 0.11 0.163 0.0067 5e-007 .SUBCKT 026011F_151 1 4 .param R1 1480 .param R2 0.6 .param C1 8.8e-014 .param k1 0.000106 .param k2 0.11 .param k3 0.163 .param k4 0.0067 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS

  • Lower Upper

  • Limit Limit
*PartNumber MHz MHz R1 R2 CpF k1 k2 k3 k4 k5
  • 026011F-271 1 1000 2200 1.15 0.027 7.6e-005 0.158 0.282 0.0106 5e-007 .SUBCKT 026011F_271 1 4 .param R1 2200 .param R2 1.15 .param C1 2.7e-014 .param k1 7.6e-005 .param k2 0.158 .param k3 0.282 .param k4 0.0106 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS

  • Lower Upper

  • Limit Limit
*PartNumber MHz MHz R1 R2 CpF k1 k2 k3 k4 k5
  • 026011F-431 1 1000 1380 1.85 0.028 0.00015 0.254 0.437 0.014 5e-007 .SUBCKT 026011F_431 1 4 .param R1 1380 .param R2 1.85 .param C1 2.8e-014 .param k1 0.00015 .param k2 0.254 .param k3 0.437 .param k4 0.014 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS

  • Lower Upper

  • Limit Limit
*PartNumber MHz MHz R1 R2 CpF k1 k2 k3 k4 k5
  • 026011F-561 1 1000 690 2.8 0.022 0.0001 0.239 0.584 0.0172 5e-007 .SUBCKT 026011F_561 1 4 .param R1 690 .param R2 2.8 .param C1 2.2e-014 .param k1 0.0001 .param k2 0.239 .param k3 0.584 .param k4 0.0172 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS
Reply to
Simon S Aysdie

As some random Dutchman noted in another thread, you should get your quoting right--I didn't write that. ;)

Cheers

Phil Hobbs

Reply to
Phil Hobbs

That inductor fried at an RMS current way below specified max. It was skin loss. My home-made inductor was OK: less proximity effect, more air cooling, and the gap-pad.

Reply to
jlarkin

Oh, that's just the tip of the iceberg. In pulse applications, there's mechanical stress to consider. as well. This little item, for instance, had a mechanical stress event

formatting link

and no amount of SPICE expertise can model that issue.

Reply to
whit3rd

Thanks to each of you for clarifying my doubts and reinforcing my own ideas on this very interesting topic. I agree that SPICE small signal(.AC) feature is good only for S parameters measurement at start up, and that too when pesky things like frequency dependent resistors. Also, my inductors are etched on a PCB, or on SiO2.

Reply to
amal banerjee

That inductor sees 7 ns 1400 v pulses at up to 5 MHz. So there are no mechanical effects. Or no audible ones!

Reply to
jlarkin

I wonder if the helix diameter is the same after a few million such hammer-blows? It isn't the RMS pressure that causes metal to stretch, peaks beyond elastic limit are enough.

Reply to
whit3rd

5 MHz is 400 billion hits per day. I didn't see any change. The peak current is only about 15 amps.
Reply to
jlarkin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.