# WPC Communication (Modulation)

I have found this image and wonder how to calculate or determine "Cm", because I like to simulate this circuit in LTSpice. Also should I use a Mosfet or a voltage controlled switch?

Can someone help me?

• Searching for idt wpc communication got me to IDT's page, where I found a link to their P9025, which also has links, below, for eval boards. The receiver board has a schematic showing a 22n cap for the switch. The inductance is listed as part 760308103202, Wurth, with 12uH inductance. The coupling is weak, maybe even 0.1, or less. – a concerned citizen Apr 12 '18 at 6:34
• Ah I see thanks For the modulation they used two Mosfets Do you know, should the PWM Signal for driving the Mosfet be invertet – Luigi Apr 12 '18 at 18:00

## 1 Answer

This site has additional information about what you need. Based on these, the signal in the transmitter is a simple quasi-square wave, that it, a simple 50% duty ratio oscillator that feeds a series LC. The receiver acts like a transformer, rectifies and filters it, and sends the DC voltage further. In order to communicate, either Rm or Cm are switched so that the forced current is reflected back to the transmitter. Here's a behavioural mash-up in LTspice:

On the upper left side, A8 is the oscillator feeding the half-bridge made by S2, S3, D1, D2, driving the series C7+L1. A5, A7, A9 form the dead-time generator.

The receiver starts with L2, C1+C2 form the resonance filter C2 has an Rpar=50 simulating a load (it is a charger), G1+C3 form the rectifier, G2, G3, C4, C5 form the lowpass filter (2nd order Bessel, for pulse filtering, fc=5kHz). A6 is the comparator forming the impulses.

The signal to send is formed with A2, A3, A4 (with some homebrew differential bi-phase encoding), transmitting [0, 0, 1, 0, 0, 1, ...]. The signal turns S1 on/off, drawing current through C6.

On the TX side, the sensing, filtering, and forming of impulses is done with a similar circuit found in the Rx side.

The waveforms are, in the lower pane: V(signal), the original signal to transmit, V(local_demod), RX-side demodulation, and V(remote_demod), the demodulation on the TX side. Also V(eff), showing the efficiency of the whole setup.

The upper pane has V(abs_tx), the rectified voltage as seen on the TX coil, and I(C6), the current through the switched capacitor.

The waveforms are not so sharp as I would have wanted, mainly because I simply thrown elements and wired them together, just to show "the works". You can get them sharper by increasing the coupling, or increasing C6, but not recommended (it draws too much current). How you mean to implement this, it's entirely up to you. I'll copy-paste below the schematic in LTspice, for convenience (watch out for eventual text wrapping).

Version 4
SHEET 1 1800 764
WIRE 80 -32 16 -32
WIRE 128 -32 80 -32
WIRE 176 -32 128 -32
WIRE 16 0 16 -32
WIRE 80 0 80 -32
WIRE -176 16 -320 16
WIRE -32 16 -112 16
WIRE -176 48 -224 48
WIRE -224 112 -224 48
WIRE 880 112 832 112
WIRE 1008 112 880 112
WIRE 1104 112 1056 112
WIRE 1168 112 1104 112
WIRE 1264 112 1216 112
WIRE 1328 112 1264 112
WIRE 1344 112 1328 112
WIRE 1392 112 1344 112
WIRE 1520 112 1456 112
WIRE -432 128 -464 128
WIRE -320 128 -320 16
WIRE -320 128 -368 128
WIRE -288 128 -320 128
WIRE 16 128 16 80
WIRE 80 128 80 64
WIRE 80 128 16 128
WIRE 144 128 80 128
WIRE 240 128 208 128
WIRE 272 128 240 128
WIRE 400 128 352 128
WIRE 432 128 400 128
WIRE 544 128 496 128
WIRE 608 128 544 128
WIRE 672 128 608 128
WIRE 784 128 672 128
WIRE 1008 128 1008 112
WIRE 1168 128 1168 112
WIRE -352 160 -368 160
WIRE 544 160 544 128
WIRE 16 192 16 128
WIRE 80 192 80 128
WIRE -224 208 -224 144
WIRE -176 208 -224 208
WIRE -32 208 -112 208
WIRE 672 208 672 128
WIRE 1008 224 1008 176
WIRE 1168 224 1168 176
WIRE 1168 224 1008 224
WIRE 1328 224 1328 112
WIRE 1328 224 1168 224
WIRE -464 240 -464 128
WIRE -352 240 -352 160
WIRE -352 240 -464 240
WIRE -176 240 -352 240
WIRE 80 272 80 256
WIRE 240 288 240 128
WIRE 544 304 544 224
WIRE 672 320 672 272
WIRE 1008 320 976 320
WIRE 1040 320 1008 320
WIRE 1232 320 1184 320
WIRE 912 336 720 336
WIRE 1504 352 1456 352
WIRE -432 384 -480 384
WIRE -336 384 -368 384
WIRE -272 384 -336 384
WIRE -224 384 -272 384
WIRE -112 384 -176 384
WIRE -64 384 -112 384
WIRE 32 384 -16 384
WIRE 112 384 32 384
WIRE 160 384 112 384
WIRE -176 400 -176 384
WIRE -16 400 -16 384
WIRE 240 400 240 288
WIRE 240 400 208 400
WIRE 464 416 368 416
WIRE 480 416 464 416
WIRE 672 448 672 400
WIRE 1008 480 1008 320
WIRE 1504 480 1504 352
WIRE 1504 480 1008 480
WIRE -336 496 -336 384
WIRE -176 496 -176 448
WIRE -176 496 -336 496
WIRE -16 496 -16 448
WIRE -16 496 -176 496
FLAG 272 208 0
FLAG 352 208 0
FLAG 784 176 0
FLAG 832 192 0
FLAG 880 176 0
FLAG 1056 192 0
FLAG 1104 176 0
FLAG 1216 192 0
FLAG 1264 176 0
FLAG 720 384 0
FLAG 912 304 signal
FLAG 544 304 0
FLAG 672 448 0
FLAG -32 64 0
FLAG -32 256 0
FLAG 16 272 0
FLAG 176 48 0
FLAG 80 272 0
FLAG 1520 112 local_demod
FLAG 1344 112 filt
FLAG 208 448 0
FLAG 160 464 0
FLAG 112 448 0
FLAG -64 464 0
FLAG -112 448 0
FLAG -224 464 0
FLAG -272 448 0
FLAG -480 384 remote_demod
FLAG 240 288 tx
FLAG 608 128 rx
FLAG 368 496 0
FLAG 128 -32 Vcc
FLAG 400 128 x
FLAG 464 416 eff
FLAG 32 384 abs_tx
SYMBOL ind2 256 112 R0
WINDOW 3 6 127 Left 2
WINDOW 39 7 145 Left 2
SYMATTR Value 6.5µ
SYMATTR SpiceLine Rser=0.16
SYMATTR InstName L1
SYMATTR Type ind
SYMBOL ind2 336 112 R0
WINDOW 39 36 102 Left 2
SYMATTR SpiceLine Rser=0.2
SYMATTR InstName L2
SYMATTR Value 12µ
SYMATTR Type ind
SYMBOL cap 496 112 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C1
SYMATTR Value 247n
SYMBOL g 832 96 R0
WINDOW 3 -89 123 Left 2
WINDOW 0 4 10 Left 2
SYMATTR Value table(-1k,1k,0,0,1k,1k)
SYMATTR InstName G1
SYMBOL cap 864 112 R0
WINDOW 0 24 12 Left 2
WINDOW 3 -4 88 Left 2
SYMATTR InstName C3
SYMATTR Value 10p rpar=1
SYMBOL g 1056 96 R0
WINDOW 0 12 5 Left 2
SYMATTR InstName G2
SYMATTR Value 1
SYMBOL cap 1088 112 R0
SYMATTR InstName C4
SYMATTR Value {C}
SYMBOL g 1216 96 R0
WINDOW 3 24 107 Left 2
WINDOW 0 5 5 Left 2
SYMATTR Value 2
SYMATTR InstName G3
SYMBOL cap 1248 112 R0
SYMATTR InstName C5
SYMATTR Value {C}
SYMBOL sw 672 416 R180
SYMATTR InstName S1
SYMBOL cap 656 208 R0
WINDOW 3 31 59 Left 2
SYMATTR Value 22n
SYMATTR InstName C6
SYMBOL cap 208 112 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C7
SYMATTR Value 400n
SYMBOL cap 528 160 R0
WINDOW 3 30 39 Left 2
WINDOW 123 27 60 Left 2
SYMATTR Value 1.8n
SYMATTR Value2 Rpar=50
SYMATTR InstName C2
SYMBOL sw 16 96 M180
SYMATTR InstName S2
SYMBOL sw 16 288 M180
SYMATTR InstName S3
SYMBOL voltage 176 -48 R0
WINDOW 0 30 29 Left 2
SYMATTR InstName V3
SYMATTR Value 5 rser=0.1 cpar=1m
SYMBOL diode 64 256 M180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D1
SYMBOL diode 64 64 M180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D2
SYMBOL SpecialFunctions\\modulate2 1184 320 M0
WINDOW 3 3 -70 Left 2
SYMATTR Value mark={f/2} space=0
SYMATTR InstName A2
SYMBOL Digital\\counter 1376 320 M0
WINDOW 3 -77 141 Left 2
SYMATTR Value cycles=2 vhigh=2 vlow=1 ref=0
SYMATTR InstName A4
SYMBOL Digital\\schmitt 976 256 M0
WINDOW 3 1 116 Left 2
WINDOW 123 -6 145 Left 2
SYMATTR Value vt=0 vh=0
SYMATTR Value2 trise=250n tfall=250n
SYMATTR InstName A3
SYMBOL Digital\\schmtbuf 1392 48 R0
WINDOW 3 -9 98 Left 2
WINDOW 123 -16 122 Left 2
SYMATTR Value vt=12.2 vh=50m
SYMATTR Value2 vhigh=1.05 trise=10n
SYMATTR InstName A6
SYMBOL g 160 368 M0
WINDOW 3 -105 128 Left 2
WINDOW 0 14 7 Left 2
SYMATTR Value table(-1k,1k,0,0,1k,1k)
SYMATTR InstName G4
SYMBOL cap 128 384 M0
WINDOW 0 24 12 Left 2
WINDOW 3 -4 88 Left 2
SYMATTR InstName C8
SYMATTR Value 10p rpar=1
SYMBOL g -64 368 M0
WINDOW 0 5 4 Left 2
SYMATTR InstName G5
SYMATTR Value 1
SYMBOL cap -96 384 M0
SYMATTR InstName C9
SYMATTR Value {C}
SYMBOL g -224 368 M0
WINDOW 3 24 107 Left 2
WINDOW 0 8 7 Left 2
SYMATTR Value 3
SYMATTR InstName G6
SYMBOL cap -256 384 M0
SYMATTR InstName C10
SYMATTR Value {C}
SYMBOL Digital\\and -400 80 R0
WINDOW 3 -132 1 Left 2
WINDOW 123 -173 5 Left 2
SYMATTR Value td={.5/f0} ic=0
SYMATTR InstName A8
SYMBOL Digital\\schmtbuf -368 320 M0
WINDOW 3 -9 98 Left 2
WINDOW 123 -16 122 Left 2
SYMATTR Value vt=13.2 vh=50m
SYMATTR Value2 vhigh=1.1 trise=10n
SYMATTR InstName A1
SYMBOL bi2 368 416 R0
WINDOW 123 24 103 Left 2
SYMATTR Value2 Rpar=1 Cpar=10u
SYMATTR InstName B1
SYMATTR Value I=idt( -I(L2)*v(x) ) / idt( (I(s2)-I(d2))*v(vcc) )
SYMBOL Digital\\and -144 -32 R0
WINDOW 3 -72 119 Left 2
SYMATTR Value trise=100n tfall=10n
SYMATTR InstName A5
SYMBOL Digital\\buf -288 64 R0
WINDOW 3 -6 109 Left 2
SYMATTR Value td=50n
SYMATTR InstName A7
SYMBOL Digital\\and -144 160 R0
WINDOW 3 -146 109 Left 2
SYMATTR Value trise=100n tfall=10n
SYMATTR InstName A9
TEXT 592 -48 Left 2 !.tran {8/f}
TEXT 592 -16 Left 2 !.param f0=100k f=2k fc=5k C=0.5/pi/fc
TEXT 256 96 Left 2 !k l1 l2 0.7
TEXT -560 296 Left 2 !.model sw sw ron=0.1 roff=1meg vt=0.5 vh=-0.5\n.model d d ron=0.1 roff=1meg vfwd=0.5 epsilon=50m revepsilon=10m
TEXT 592 24 Left 2 !.meas Pin avg -V(Vcc)*I(V3) trig time=1m\n.meas Pout avg -V(x)*I(L2) trig time=1m\n.meas eff param Pout/Pin
TEXT 1096 -24 Left 2 ;*** results of .meas, verify against V(eff) ***\npin: AVG(-v(vcc)*i(v3))=7.06135 FROM 0.001 TO 0.004\npout: AVG(-v(x)*i(l2))=3.77876 FROM 0.001 TO 0.004\neff: pout/pin=0.535132
TEXT 432 264 Left 2 ;Load for\ncharging
RECTANGLE Normal 640 240 496 208

• Forgot to add: the coupling is weak, I just guessed a 0.5 value, I have no idea what it should be, but, even if they are large and wide, they are air coils, at some mm appart. Except the values for the resonant LC elements, everything is more, or less, guesswork. – a concerned citizen Apr 12 '18 at 20:22