Electronics-Related.com
Forums

DDS differential filter

Started by Unknown September 1, 2022
On Saturday, September 3, 2022 at 10:54:55 PM UTC-7, Mike Monett VE3BTI wrote:
> "John Miles, KE5FX" <jmi...@gmail.com> wrote: > > One of those unfortunate cases where we have no choice but to "inspect > > in quality." I should hang out a shingle building production test jigs, > > I've done enough of that lately... > > > > -- john, KE5FX > When you sweep a filter, are you looking for ripple or phase anomalies? Do > you need a high end HP VNA or can you use a $69 Amazon nanovna? > > https://www.amazon.ca/s?k=nano+vna
Or can you use a noise source and FFT it?
John Miles, KE5FX wrote:
> On Thursday, September 1, 2022 at 8:49:34 AM UTC-7, jla...@highlandsniptechnology.com wrote: >> https://www.dropbox.com/s/ryp2m1t9mr9gi17/DDS_Diff_Filter_1.jpg?raw=1 >> >> Most DDS chips have complementary DAC current outputs and the appnotes >> usually waste one and go to some effort to bias up a single-ended >> comparator. It's not any harder to go full diff on the filter, get >> twice the swing, and use the zero cross. > > 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? > > Well, no. Turns out that a lot of parts get swapped around at random, probably > during reel changes or 2nd-op hand placement when the PnP machine doesn't > quite hold enough reels. Yelling at the factory people doesn't help as much > as I thought/hoped it would. > > This probably happens with ordinary RC components too, but one 0402 bypass > or coupling cap is pretty much as good as another, and the same is true for many > if not most discrete resistors with values under 10K or so. I'm not going to notice > if an I2C pullup is 4.7K instead of 2.2K or whatever. I will if a 22 nH inductor is > placed in a spot for an 82 nH inductor, though.... > > ... or at least, I will notice it if I have the foresight to design a test jig to sweep the > filter response and compare it with a limit line, rather than just checking for the > expected level at one or two points within the passband. Oops. Where'd *that* > spur come from? > > Anyway, yeah, baluns followed by single-ended filters are a good way to go. > For some reason, I get a bit more signal out of certain chips with an SBTCJ--1WX+ > 180-degree splitter than I do with a straight transformer or balun. > > -- john, KE5FX >
Good gravy, where are you having them assembled? In antarctica by penguins? Seriously? Arbitrarily changing resistor values by more than a factor of 2? I'd fire mine if they used thick film rather than the specified thin film. That sort of nonsense wouldn't fly with me or my consulting/licensing customers. Gotta do more than yell, man. Cheers Phil Hobbs -- Dr Philip C D Hobbs Principal Consultant ElectroOptical Innovations LLC / Hobbs ElectroOptics Optics, Electro-optics, Photonics, Analog Electronics Briarcliff Manor NY 10510 http://electrooptical.net http://hobbs-eo.com
John Miles, KE5FX wrote:
> On Saturday, September 3, 2022 at 1:30:05 PM UTC-7, jla...@highlandsniptechnology.com wrote: >> It's strange that nobody makes a series of lp filters aimed at the DDS >> market. > > MCL makes tons of HF/VHF filters, although they're all single-ended AFAIK. > I used a batch file to scrape all the .S2P files for them a few years back, and > wrote a tool to cascade them interactively (http://www.ke5fx.com/s2plan.png). > Kinda dangerous, because if they were to ban my IP for abusing their server I'd > be hating life.
You just have to do your abuse in the library or the coffee shop. ;)
> >> What about voltage dividers, gain set resistors, voltage reg >> programming, all that? Values matter. > > I don't think they do it all that often with resistors and caps, or we would indeed > have had trouble along those lines. My guess is they load those first, then run > out of slots somewhere in the middle of the 0603 inductors. They get handed > off to a different person who isn't always as careful as they should be.
Put the inductors on the back of the board. ;)
> > One of those unfortunate cases where we have no choice but to "inspect in > quality." I should hang out a shingle building production test jigs, I've done enough > of that lately...
Dunno how you expect to avoid final test. It's pretty important that you know the thing works right before shipping it, yes? Cheers Phil Hobbs -- Dr Philip C D Hobbs Principal Consultant ElectroOptical Innovations LLC / Hobbs ElectroOptics Optics, Electro-optics, Photonics, Analog Electronics Briarcliff Manor NY 10510 http://electrooptical.net http://hobbs-eo.com
On Sat, 3 Sep 2022 15:23:40 -0700 (PDT), "John Miles, KE5FX"
<jmiles@gmail.com> wrote:

>On Saturday, September 3, 2022 at 1:30:05 PM UTC-7, jla...@highlandsniptechnology.com wrote: >> It's strange that nobody makes a series of lp filters aimed at the DDS >> market. > >MCL makes tons of HF/VHF filters, although they're all single-ended AFAIK. >I used a batch file to scrape all the .S2P files for them a few years back, and >wrote a tool to cascade them interactively (http://www.ke5fx.com/s2plan.png). >Kinda dangerous, because if they were to ban my IP for abusing their server I'd >be hating life. > >> What about voltage dividers, gain set resistors, voltage reg >> programming, all that? Values matter. > >I don't think they do it all that often with resistors and caps, or we would indeed >have had trouble along those lines. My guess is they load those first, then run >out of slots somewhere in the middle of the 0603 inductors. They get handed >off to a different person who isn't always as careful as they should be. > >One of those unfortunate cases where we have no choice but to "inspect in >quality." I should hang out a shingle building production test jigs, I've done enough >of that lately... > >-- john, KE5FX
We usually buy small Ls that have a color dot or something. The Coilcrafts do. Our automated VOA machine can check them. Every board gets inspected with that. Inspection has a powerful process feedback element. We flog as required.
On 4/9/22 02:15, jlarkin@highlandsniptechnology.com wrote:
> One of my guys ran the NuHertz software and it designed a great > balanced filter that uses standard values.
Nice. Does it do worst-case tolerance analysis too? Clifford Heath
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. Clifford Heath
On Sunday, September 4, 2022 at 6:40:14 AM UTC-7, Phil Hobbs wrote:
> >> What about voltage dividers, gain set resistors, voltage reg > >> programming, all that? Values matter.
Errors in those areas are rare, and will usually (but obviously not always) get flagged in test.
> Dunno how you expect to avoid final test. It's pretty important that > you know the thing works right before shipping it, yes?
Of course there's a test/burn-in cycle, and it's *very* thorough. Everything in the front end is actively tested via a custom ATE harness. However, there are four switched LP/BP filters to check, and we were originally testing those by simply feeding in a signal near the center frequency and verifying that the UUT reported the expected power level +/- the expected tolerance. That wasn't sufficient to catch one of the cases where they swapped some 0603 inductors around. Fortunately I caught it myself when diagnosing another problem. The swapped inductors were not a major issue in this case -- they wouldn't have caused a spec violation, and almost certainly would never have been noticed in the field -- but that whole episode scared me straight. We now test at several more points, and next time around I'll use a full mask test. I've found enough forehead-slapping production faults in HP and Tek gear over the years that I don't harbor any illusions about perfection at the assembly or QA stages. It's an axiom that you're not supposed to rely on testing for quality -- I think that goes back to Deming? -- but that's an exercise in wishful thinking IMHO. As long as people are involved, you've gotta test thoroughly or quality will suffer. -- john, KE5FX
On Saturday, September 3, 2022 at 10:54:55 PM UTC-7, Mike Monett VE3BTI wrote:
> "John Miles, KE5FX" <jmi...@gmail.com> wrote: > When you sweep a filter, are you looking for ripple or phase anomalies? Do > you need a high end HP VNA or can you use a $69 Amazon nanovna?
I wouldn't be surprised to see a lot of those NanoVNAs showing up in applications like this. But in our case we use a custom DDS signal generator (AD9959+some THS3491s) that is driven via SCPI for the stimulus, and the UUT itself reports the response. We need to be able to test several units at once in a fully-automated fashion, given that each unit needs a minimum of 4 hours to pass. -- john, KE5FX
On Sunday, September 4, 2022 at 7:40:44 AM UTC-7, jla...@highlandsniptechnology.com wrote:
> We usually buy small Ls that have a color dot or something. The > Coilcrafts do. Our automated VOA machine can check them. Every board > gets inspected with that. > > Inspection has a powerful process feedback element. We flog as > required.
Good point there, our (Coilcraft) parts also have the dots. Most of them do, anyway. -- john, KE5FX
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) 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=0.037 SYMBOL cap 384 -512 M0 SYMATTR InstName C2 SYMATTR Value 28.367562p SYMATTR SpiceLine Rser=0.449 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=0.322 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=0.169 SYMBOL cap 704 -480 M0 SYMATTR InstName C4 SYMATTR Value 14.427057p SYMATTR SpiceLine Rser=0.883 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=0.200 SYMBOL ind 944 -608 R0 SYMATTR InstName L2 SYMATTR Value 82n SYMATTR SpiceLine Rser=0.322 SYMBOL cap 976 -416 M0 SYMATTR InstName C6 SYMATTR Value 292.455428p SYMATTR SpiceLine Rser=0.044 SYMBOL cap 1184 -528 M0 SYMATTR InstName C7 SYMATTR Value 196.936941p SYMATTR SpiceLine Rser=0.065 SYMBOL cap 1376 -480 M0 SYMATTR InstName C8 SYMATTR Value 6.183996p SYMATTR SpiceLine Rser=2.059 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=0.436 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=0.322 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=0.148 SYMBOL ind 1696 -464 R0 SYMATTR InstName L4 SYMATTR Value 82n SYMATTR SpiceLine Rser=0.322 SYMBOL cap 1696 -608 R0 SYMATTR InstName C11 SYMATTR Value 159.281578p SYMATTR SpiceLine Rser=0.080 SYMBOL cap 1792 -448 R0 SYMATTR InstName C12 SYMATTR Value 43.812471p SYMATTR SpiceLine Rser=0.291 SYMBOL cap 2048 -560 M0 SYMATTR InstName C13 SYMATTR Value 111.772393p SYMATTR SpiceLine Rser=0.114 SYMBOL cap 2240 -480 M0 SYMATTR InstName C14 SYMATTR Value 112.596793p SYMATTR SpiceLine Rser=0.113 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=0.075 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=0.322 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=0.277 SYMBOL cap 2560 -480 M0 SYMATTR InstName C17 SYMATTR Value 70.752997p SYMATTR SpiceLine Rser=0.180 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=0.122 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 = 80\nQC = 250