Electronics-Related.com
Forums

DDS differential filter

Started by Unknown September 1, 2022
On Mon, 5 Sep 2022 10:00:15 +1000, Clifford Heath <no_spam@please.net>
wrote:

>On 4/9/22 06:29, jlarkin@highlandsniptechnology.com wrote: >> On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), "John Miles, KE5FX" >> <jmiles@gmail.com> wrote: >>> One of the things I've learned fairly recently is that discrete LC filters are a >>> bag of hurt when it comes to production. I used to use a lot of packaged >>> Mini-Circuits elliptic filters until the last project, when I got tired of paying >>> for them. I can run a filter design program just as well as they can, right? >> >> The mini-ckts mlcc flters are great, but start around 1 GHz or so. I >> want a 15 MHz filter so I'll have to make it. >> >> It's strange that nobody makes a series of lp filters aimed at the DDS >> market. > >It's difficult to build good LC filters in SMD for HF. The multi-layer >inductors that work fine at UHF just don't have the required Q at lower >frequencies. > >I designed a nice-looking 7th order bandpass filter for 50MHz, then >started looking for SMD parts to realise it. Stick the actual Q values >into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really >quickly. > >Coilcraft make suitable small inductors that are wound, not multi-layer, >but you pay a lot more for that.
Well, 20 cents in quantity for a 0805, 30 cents for the midi springs. They do great stuff and are generous with samples.
> >Clifford Heath
There are lowpass filters that are designed around finite-Q parts; Williams has tables for some. The math is even nastier than ideal filters. But a DDS filter doesn't need a beautifully flat frequency response graph. It drives a comparator.
On 14/9/22 14:35, Simon S Aysdie wrote:
> On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote: >> On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote: >>> On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), "John Miles, KE5FX" >>> <jmi...@gmail.com> wrote: >>>> One of the things I've learned fairly recently is that discrete LC filters are a >>>> bag of hurt when it comes to production. I used to use a lot of packaged >>>> Mini-Circuits elliptic filters until the last project, when I got tired of paying >>>> for them. I can run a filter design program just as well as they can, right? >>> >>> The mini-ckts mlcc flters are great, but start around 1 GHz or so. I >>> want a 15 MHz filter so I'll have to make it. >>> >>> It's strange that nobody makes a series of lp filters aimed at the DDS >>> market. >> It's difficult to build good LC filters in SMD for HF. The multi-layer >> inductors that work fine at UHF just don't have the required Q at lower >> frequencies. >> >> I designed a nice-looking 7th order bandpass filter for 50MHz, then >> started looking for SMD parts to realise it. Stick the actual Q values >> into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really >> quickly. >> >> Coilcraft make suitable small inductors that are wound, not multi-layer, >> but you pay a lot more for that. > > By "7th order bandpass" I'll guess you mean 7 resonators. BPF are usually even order. Anyway, you're right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters. > > Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment. > > features > * 50 MHz center freq > * 10% nominal BW (b4 non-idealities) > * 20 dB nominal return loss > * all 5 coils coerced to 82 nH > (coercion "paid for" with additional caps) > * 5 finite transmission zeros > * Coil Q: guess 80 (midi spring) > * Cap Q: guess 250 > * All internal nodes have design capacitance to ground > (enable absorbtion of parasitic capacitance; costs caps)
I didn't respond previously because that LTSpice doesn't work for me. It displays and appears to run the sim, but then I can't probe anywhere to view a trace. Has anyone else seen this behaviour or knows how to fix it? CH
On Sunday, September 18, 2022 at 8:19:42 PM UTC-4, Clifford Heath wrote:
> On 14/9/22 14:35, Simon S Aysdie wrote: > > On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote: > >> On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote: > >>> On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), "John Miles, KE5FX" > >>> <jmi...@gmail.com> wrote: > >>>> One of the things I've learned fairly recently is that discrete LC filters are a > >>>> bag of hurt when it comes to production. I used to use a lot of packaged > >>>> Mini-Circuits elliptic filters until the last project, when I got tired of paying > >>>> for them. I can run a filter design program just as well as they can, right? > >>> > >>> The mini-ckts mlcc flters are great, but start around 1 GHz or so. I > >>> want a 15 MHz filter so I'll have to make it. > >>> > >>> It's strange that nobody makes a series of lp filters aimed at the DDS > >>> market. > >> It's difficult to build good LC filters in SMD for HF. The multi-layer > >> inductors that work fine at UHF just don't have the required Q at lower > >> frequencies. > >> > >> I designed a nice-looking 7th order bandpass filter for 50MHz, then > >> started looking for SMD parts to realise it. Stick the actual Q values > >> into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really > >> quickly. > >> > >> Coilcraft make suitable small inductors that are wound, not multi-layer, > >> but you pay a lot more for that. > > > > By "7th order bandpass" I'll guess you mean 7 resonators. BPF are usually even order. Anyway, you're right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters. > > > > Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment. > > > > features > > * 50 MHz center freq > > * 10% nominal BW (b4 non-idealities) > > * 20 dB nominal return loss > > * all 5 coils coerced to 82 nH > > (coercion "paid for" with additional caps) > > * 5 finite transmission zeros > > * Coil Q: guess 80 (midi spring) > > * Cap Q: guess 250 > > * All internal nodes have design capacitance to ground > > (enable absorbtion of parasitic capacitance; costs caps) > I didn't respond previously because that LTSpice doesn't work for me. It > displays and appears to run the sim, but then I can't probe anywhere to > view a trace. > > Has anyone else seen this behaviour or knows how to fix it?
Why not use the excellent tool debugging features in LTspice? Oh, that's right, they don't have any. -- Rick C. - Get 1,000 miles of free Supercharging - Tesla referral code - https://ts.la/richard11209
On Sunday, September 18, 2022 at 5:19:42 PM UTC-7, Clifford Heath wrote:
> On 14/9/22 14:35, Simon S Aysdie wrote: > > On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote: > >> On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote: > >>> On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), "John Miles, KE5FX" > >>> <jmi...@gmail.com> wrote: > >>>> One of the things I've learned fairly recently is that discrete LC filters are a > >>>> bag of hurt when it comes to production. I used to use a lot of packaged > >>>> Mini-Circuits elliptic filters until the last project, when I got tired of paying > >>>> for them. I can run a filter design program just as well as they can, right? > >>> > >>> The mini-ckts mlcc flters are great, but start around 1 GHz or so. I > >>> want a 15 MHz filter so I'll have to make it. > >>> > >>> It's strange that nobody makes a series of lp filters aimed at the DDS > >>> market. > >> It's difficult to build good LC filters in SMD for HF. The multi-layer > >> inductors that work fine at UHF just don't have the required Q at lower > >> frequencies. > >> > >> I designed a nice-looking 7th order bandpass filter for 50MHz, then > >> started looking for SMD parts to realise it. Stick the actual Q values > >> into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really > >> quickly. > >> > >> Coilcraft make suitable small inductors that are wound, not multi-layer, > >> but you pay a lot more for that. > > > > By "7th order bandpass" I'll guess you mean 7 resonators. BPF are usually even order. Anyway, you're right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters. > > > > Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment. > > > > features > > * 50 MHz center freq > > * 10% nominal BW (b4 non-idealities) > > * 20 dB nominal return loss > > * all 5 coils coerced to 82 nH > > (coercion "paid for" with additional caps) > > * 5 finite transmission zeros > > * Coil Q: guess 80 (midi spring) > > * Cap Q: guess 250 > > * All internal nodes have design capacitance to ground > > (enable absorbtion of parasitic capacitance; costs caps) > I didn't respond previously because that LTSpice doesn't work for me. It > displays and appears to run the sim, but then I can't probe anywhere to > view a trace. > > Has anyone else seen this behaviour or knows how to fix it?
Hi Clifford, Only s11 and s21 are saved via .SAVE .... Simply comment it away (or delete) if you want all the nets. I rarely use the rest of the nets for this sort of thing. Sorry--habit!
On Sunday, September 18, 2022 at 6:48:38 PM UTC-7, Ricky wrote:
> On Sunday, September 18, 2022 at 8:19:42 PM UTC-4, Clifford Heath wrote:
> > Has anyone else seen this behaviour or knows how to fix it? > Why not use the excellent tool debugging features in LTspice? Oh, that's right, they don't have any.
It isn't a bug--a debugger would not help.
On 14/9/22 14:35, Simon S Aysdie wrote:
> On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote: >> On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote: >>> On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), "John Miles, KE5FX" >>> <jmi...@gmail.com> wrote: >>>> One of the things I've learned fairly recently is that discrete LC filters are a >>>> bag of hurt when it comes to production. I used to use a lot of packaged >>>> Mini-Circuits elliptic filters until the last project, when I got tired of paying >>>> for them. I can run a filter design program just as well as they can, right? >>> >>> The mini-ckts mlcc flters are great, but start around 1 GHz or so. I >>> want a 15 MHz filter so I'll have to make it. >>> >>> It's strange that nobody makes a series of lp filters aimed at the DDS >>> market. >> It's difficult to build good LC filters in SMD for HF. The multi-layer >> inductors that work fine at UHF just don't have the required Q at lower >> frequencies. >> >> I designed a nice-looking 7th order bandpass filter for 50MHz, then >> started looking for SMD parts to realise it. Stick the actual Q values >> into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really >> quickly. >> >> Coilcraft make suitable small inductors that are wound, not multi-layer, >> but you pay a lot more for that. > > By "7th order bandpass" I'll guess you mean 7 resonators. BPF are usually even order. Anyway, you're right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters. > > Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment. > > features > * 50 MHz center freq > * 10% nominal BW (b4 non-idealities) > * 20 dB nominal return loss > * all 5 coils coerced to 82 nH > (coercion "paid for" with additional caps) > * 5 finite transmission zeros > * Coil Q: guess 80 (midi spring) > * Cap Q: guess 250 > * All internal nodes have design capacitance to ground > (enable absorbtion of parasitic capacitance; costs caps)
Just got back to this now. Thanks for pointing out the .SAVE thing I'd overlooked. And you're right, I meant 7 resonators. That does work nicely Simon. I haven't played with the capacitor tolerances, to see what standard values (or pairs, paralleled) would be usable. I'm curious what you used to design this? Clifford Heath.
On Wednesday, September 21, 2022 at 4:37:01 PM UTC-7, Clifford Heath wrote:
> On 14/9/22 14:35, Simon S Aysdie wrote: > > On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote: > >> On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote: > >>> On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), "John Miles, KE5FX" > >>> <jmi...@gmail.com> wrote: > >>>> One of the things I've learned fairly recently is that discrete LC filters are a > >>>> bag of hurt when it comes to production. I used to use a lot of packaged > >>>> Mini-Circuits elliptic filters until the last project, when I got tired of paying > >>>> for them. I can run a filter design program just as well as they can, right? > >>> > >>> The mini-ckts mlcc flters are great, but start around 1 GHz or so. I > >>> want a 15 MHz filter so I'll have to make it. > >>> > >>> It's strange that nobody makes a series of lp filters aimed at the DDS > >>> market. > >> It's difficult to build good LC filters in SMD for HF. The multi-layer > >> inductors that work fine at UHF just don't have the required Q at lower > >> frequencies. > >> > >> I designed a nice-looking 7th order bandpass filter for 50MHz, then > >> started looking for SMD parts to realise it. Stick the actual Q values > >> into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really > >> quickly. > >> > >> Coilcraft make suitable small inductors that are wound, not multi-layer, > >> but you pay a lot more for that. > > > > By "7th order bandpass" I'll guess you mean 7 resonators. BPF are usually even order. Anyway, you're right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters. > > > > Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment. > > > > features > > * 50 MHz center freq > > * 10% nominal BW (b4 non-idealities) > > * 20 dB nominal return loss > > * all 5 coils coerced to 82 nH > > (coercion "paid for" with additional caps) > > * 5 finite transmission zeros > > * Coil Q: guess 80 (midi spring) > > * Cap Q: guess 250 > > * All internal nodes have design capacitance to ground > > (enable absorbtion of parasitic capacitance; costs caps) > Just got back to this now. Thanks for pointing out the .SAVE thing I'd > overlooked. And you're right, I meant 7 resonators. > > That does work nicely Simon. I haven't played with the capacitor > tolerances, to see what standard values (or pairs, paralleled) would be > usable.
Yeah, to get serious about it, that would need to be done. But it is doable. As a play-thing w/ arbitrary specs, I did not do any sensitivity work. A premium was placed on getting all coils identical, and using as few as possible. Caps are the price. Some may need "doubling," as you say.
> I'm curious what you used to design this?
filsyn ---------------------------- This is the same, but with very hi Q -- the "native" design Version 4 SHEET 1 6120 3588 WIRE 496 -736 432 -736 WIRE 624 -736 560 -736 WIRE 1488 -736 1424 -736 WIRE 1616 -736 1552 -736 WIRE 2352 -736 2288 -736 WIRE 2480 -736 2416 -736 WIRE 208 -672 -240 -672 WIRE 368 -672 272 -672 WIRE 432 -672 432 -736 WIRE 432 -672 368 -672 WIRE 624 -672 624 -736 WIRE 688 -672 624 -672 WIRE 784 -672 688 -672 WIRE 960 -672 848 -672 WIRE 1168 -672 960 -672 WIRE 1232 -672 1168 -672 WIRE 1360 -672 1296 -672 WIRE 1424 -672 1424 -736 WIRE 1424 -672 1360 -672 WIRE 1616 -672 1616 -736 WIRE 1712 -672 1616 -672 WIRE 2032 -672 1712 -672 WIRE 2096 -672 2032 -672 WIRE 2224 -672 2160 -672 WIRE 2288 -672 2288 -736 WIRE 2288 -672 2224 -672 WIRE 2480 -672 2480 -736 WIRE 2544 -672 2480 -672 WIRE 2592 -672 2544 -672 WIRE 3056 -672 2656 -672 WIRE 432 -608 432 -672 WIRE 480 -608 432 -608 WIRE 624 -608 624 -672 WIRE 624 -608 560 -608 WIRE 1424 -608 1424 -672 WIRE 1472 -608 1424 -608 WIRE 1616 -608 1616 -672 WIRE 1616 -608 1552 -608 WIRE 1712 -608 1712 -672 WIRE 2288 -608 2288 -672 WIRE 2336 -608 2288 -608 WIRE 2480 -608 2480 -672 WIRE 2480 -608 2416 -608 WIRE 960 -592 960 -672 WIRE 2032 -560 2032 -672 WIRE -240 -528 -240 -672 WIRE 1168 -528 1168 -672 WIRE 368 -512 368 -672 WIRE 3056 -512 3056 -672 WIRE 1712 -496 1712 -544 WIRE 1808 -496 1712 -496 WIRE 688 -480 688 -672 WIRE 1360 -480 1360 -672 WIRE 2224 -480 2224 -672 WIRE 2544 -480 2544 -672 WIRE 1712 -448 1712 -496 WIRE 1808 -448 1808 -496 WIRE 960 -416 960 -512 WIRE -240 -288 -240 -448 WIRE 368 -288 368 -448 WIRE 368 -288 -240 -288 WIRE 688 -288 688 -416 WIRE 688 -288 368 -288 WIRE 960 -288 960 -352 WIRE 960 -288 688 -288 WIRE 1168 -288 1168 -464 WIRE 1168 -288 960 -288 WIRE 1360 -288 1360 -416 WIRE 1360 -288 1168 -288 WIRE 1712 -288 1712 -368 WIRE 1712 -288 1360 -288 WIRE 1808 -288 1808 -384 WIRE 1808 -288 1712 -288 WIRE 2032 -288 2032 -496 WIRE 2032 -288 1808 -288 WIRE 2224 -288 2224 -416 WIRE 2224 -288 2032 -288 WIRE 2544 -288 2544 -416 WIRE 2544 -288 2224 -288 WIRE 3056 -288 3056 -432 WIRE 3056 -288 2544 -288 WIRE -240 -240 -240 -288 WIRE 3056 -240 3056 -288 FLAG -240 -240 0 FLAG 3056 -240 0 SYMBOL res 3040 -528 R0 SYMATTR InstName R_load00 SYMATTR Value 50 SYMBOL voltage -240 -544 R0 WINDOW 0 25 23 Left 2 WINDOW 3 25 93 Left 2 WINDOW 123 36 64 Left 2 WINDOW 39 27 106 Left 2 SYMATTR InstName Vsrc00 SYMATTR Value "" SYMATTR Value2 AC 2 SYMATTR SpiceLine Rser=50 SYMBOL cap 272 -688 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C1 SYMATTR Value 343.705540p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 384 -512 M0 SYMATTR InstName C2 SYMATTR Value 28.367562p SYMATTR SpiceLine Rser=1e-12 SYMBOL ind 576 -624 R90 WINDOW 0 5 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName L1 SYMATTR Value 82n SYMATTR SpiceLine Rser=1e-9 SYMBOL cap 560 -752 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C3 SYMATTR Value 75.416515p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 704 -480 M0 SYMATTR InstName C4 SYMATTR Value 14.427057p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 848 -688 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C5 SYMATTR Value 63.512945p SYMATTR SpiceLine Rser=1e-12 SYMBOL ind 944 -608 R0 SYMATTR InstName L2 SYMATTR Value 82n SYMATTR SpiceLine Rser=1e-9 SYMBOL cap 976 -416 M0 SYMATTR InstName C6 SYMATTR Value 292.455428p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 1184 -528 M0 SYMATTR InstName C7 SYMATTR Value 196.936941p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 1376 -480 M0 SYMATTR InstName C8 SYMATTR Value 6.183996p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 1296 -688 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C9 SYMATTR Value 29.234988p SYMATTR SpiceLine Rser=1e-12 SYMBOL ind 1568 -624 R90 WINDOW 0 5 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName L3 SYMATTR Value 82n SYMATTR SpiceLine Rser=1e-9 SYMBOL cap 1552 -752 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C10 SYMATTR Value 85.807236p SYMATTR SpiceLine Rser=1e-12 SYMBOL ind 1696 -464 R0 SYMATTR InstName L4 SYMATTR Value 82n SYMATTR SpiceLine Rser=1e-9 SYMBOL cap 1696 -608 R0 SYMATTR InstName C11 SYMATTR Value 159.281578p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 1792 -448 R0 SYMATTR InstName C12 SYMATTR Value 43.812471p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 2048 -560 M0 SYMATTR InstName C13 SYMATTR Value 111.772393p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 2240 -480 M0 SYMATTR InstName C14 SYMATTR Value 112.596793p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 2160 -688 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C15 SYMATTR Value 170.870341p SYMATTR SpiceLine Rser=1e-12 SYMBOL ind 2432 -624 R90 WINDOW 0 5 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName L5 SYMATTR Value 82n SYMATTR SpiceLine Rser=1e-9 SYMBOL cap 2416 -752 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C16 SYMATTR Value 45.940816p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 2560 -480 M0 SYMATTR InstName C17 SYMATTR Value 70.752997p SYMATTR SpiceLine Rser=1e-12 SYMBOL cap 2656 -688 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C18 SYMATTR Value 104.602713p SYMATTR SpiceLine Rser=1e-12 TEXT -1312 -2784 Left 2 ;o TEXT 5416 1528 Left 2 ;o TEXT -232 -856 Left 2 !.net I(R_load00) Vsrc00 TEXT -240 -792 Left 2 !.SAVE S11(vsrc00) S21(vsrc00) TEXT -216 -912 Left 2 !.ac lin 3801 10e6 200e6 TEXT 448 -1024 Left 2 ;"10% BW" 50 MHz BPF\nQL = very hi\nQC = very hi