Groups | Search | Server Info | Login | Register
Groups > comp.arch.fpga > #38684
| From | Jan Panteltje <alien@comet.invalid> |
|---|---|
| Newsgroups | sci.electronics.design, comp.arch.fpga |
| Subject | Re: 50 cent DDS synthesizer |
| Date | 2025-10-24 17:17 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <10dgcbr$2o5q8$1@dont-email.me> (permalink) |
| References | (4 earlier) <10ddo5a$1v5hk$1@dont-email.me> <BDyKQ.44049$O5fb.6397@fx01.ams4> <10df7vg$2dvoi$1@dont-email.me> <10dfoj9$2iaif$1@dont-email.me> <um1nfk9no8nup863hs8tk0fiselgdcqls5@4ax.com> |
Cross-posted to 2 groups.
>john larkin <jl@glen--canyon.com>wrote: >>On Fri, 24 Oct 2025 13:40:25 +0200, Lasse Langwadt <llc@fonz.dk> >wrote: > >>On 10/24/25 08:56, Jan Panteltje wrote: >>>> Chris Jones <lugnut808@spam.yahoo.com>wrote: >>>>> On 24/10/2025 4:20 am, Jan Panteltje wrote: >>>>>> "Don" <g@crcomp.net>wrote: >>>>>>> john larkin wrote: >>>>>>> Jan Panteltje wrote: >>>>>>>>> john larkin wrote: >>>>>>>>>> >>>>>>>>> We have a little proto board with a RP2040 Rpi cpu and an Efinix T20 >>>>>>>>> FPGA. The Pi configures the FPGA at powerup and then talks SPI to it. >>>>>>>>> >>>>>>>>> We often need programmable clocks so I added a few parts to make a DDS >>>>>>>>> frequency synthesizer. We use a PLL inside the FPGA to spin up a 204 >>>>>>>>> MHz clock for the 32-bit phase accumulator. The sine lookup is 4K >>>>>>>>> points and the "dac" is six resistors. >>>>>>>>> >>>>>>>>> This lowpass filter is tacky, but it all works. At 50 MHz, the jitter >>>>>>>>> is a few hundred ps p-p, and that looks mostly like amplitude noise to >>>>>>>>> me. >>>>>>>>> >>>>>>>>> https://www.dropbox.com/scl/fo/336qn643xyilkqz5rc9lp/ADC4ThBQa3B-L5auaTDh8fQ?rlkey=q2qrsbdow816id6wgc4eypuas&dl=0 >>>>>>>>> >>>>>>>>> The FPGA 1.2v core supply uses about 30 mA total when this is running >>>>>>>>> at 50 MHz out. >>>>>>>> >>>>>>>> Nice, 250 Ohm is a big load, good the FPGA can handle that. >>>>>>> >>>>>>> The MSB actually sees 500 ohms. >>>>>>> >>>>>>>> >>>>>>>> I was using R2R for video: >>>>>>>> https://www.electronics-tutorials.ws/combination/r-2r-dac.html >>>>>>> >>>>>>> One can buy a real r-2r network cheap, but it's easier to use 0603 >>>>>>> resistors that we have in stock. >>>>>> >>>>>> Also, the ability to adjust assembled resistor values works better for >>>>>> me as a DIYer. Here's mouser's offering for the geniuses in our midst, >>>>>> with the foresight to always choose the correct component: >>>>>> >>>>>> <https://www.mouser.com/c/passive-components/resistors/?circuit%20type=R%2F2R%20Ladder> >>>>>> >>>>>> Jan's cited tutorial says: >>>>>> >>>>>> Compared to the R-2R DAC, the binary weighted digital-to-analogue >>>>>> converter has an analogue output voltage which is the weighted >>>>>> sum of the individual inputs. Thus it requires a large range of >>>>>> precision resistors within its ladder network, making its design >>>>>> both expensive and impractical for most DAC's requiring lower >>>>>> levels of resolution. >>>>>> >>>>>> Discussions in this group left me with the impression precision resistor >>>>>> fabrication became trivial thanks to the trimming technology of modern >>>>>> lasers? Is the price of precision resistors still a factor? >>>>> >>>>> In the case of R2R you can use resistors from one batch and that may have less spreading in values >>>>> No precision resistors needed. >>>>> (2R is then 2 1R resistors in series). >>>>> >>>> >>>> You don't want them the same though: The MOSFETS of the CMOS logic >>>> outputs have some on-resistance (maybe 30-50 Ohms) and so the resistors >>>> in series with each of these outputs should be decreased by whatever you >>>> measure that output resistance to be, otherwise the resistance ratio >>>> isn't 1:2 in the R-2R network, and the DNL will be poor. >>>> >>>> You could use the average of the on-resistance of the NMOS and the PMOS >>>> (which are not quite the same), measured on a typical chip, at room >>>> temperature, so that it is usually at least roughly correct, rather than >>>> systematically and always wrong. >>>> >>>> The MOSFET on-resistance is usually a more important effect than the >>>> error of 1% resistor tolerances, so it makes sense to fix that before >>>> worrying about selecting resistors from the same batch. >>>> >>>> It is worth fixing it for R-2R and also for at least a few msbs of >>>> binary weighted resistor DACs. >>> >>> How would you go about measuring MOSFET on resistance? > >Use Ohm's Law! > >> >>you can probably get it from the IBIS model >> > >This is the IBIS of one gpio pin of the efinix T20. > >https://www.dropbox.com/scl/fi/r97plmw3yvls3kgo0liy1/trion_drive_strength.pdf?rlkey=c3evk5zn7amn9ejx2dbtywter&dl=0 > >That's pullup to 3.3 volts, the pfet side. > >You can see a small glitch at the midpoint of this sine wave > >https://www.dropbox.com/scl/fi/n12quxajp59egahv1b48i/DDS_1KHz.jpg?rlkey=8w0tlr3h1rxeif3byepzub947&dl=0 > >which is the classic dac MSB crossover error. It's not enough to >matter, but I might tweak the first resistor to beautify that. > I have no experience with IBIS models so did a web search and found this: https://hackaday.com/2023/03/26/ibis-models-explained/ That view correct? If it really works, shows the ouput port changes then it is a great thing.
Back to comp.arch.fpga | Previous | Next — Previous in thread | Next in thread | Find similar
50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-22 14:49 -0700
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-23 07:45 +0000
Re: 50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-23 07:36 -0700
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-23 15:16 +0000
Re: 50 cent DDS synthesizer "Don" <g@crcomp.net> - 2025-10-23 16:54 +0000
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-23 17:20 +0000
Re: 50 cent DDS synthesizer Martin Brown <'''newspam'''@nonad.co.uk> - 2025-10-23 19:33 +0100
Re: 50 cent DDS synthesizer Chris Jones <lugnut808@spam.yahoo.com> - 2025-10-24 10:12 +1100
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-24 06:56 +0000
Re: 50 cent DDS synthesizer Martin Brown <'''newspam'''@nonad.co.uk> - 2025-10-24 09:53 +0100
Re: 50 cent DDS synthesizer Lasse Langwadt <llc@fonz.dk> - 2025-10-24 13:40 +0200
Re: 50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-24 07:09 -0700
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-24 17:17 +0000
Re: 50 cent DDS synthesizer antispam@fricas.org (Waldek Hebisch) - 2025-10-25 22:00 +0000
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-26 08:10 +0000
Re: 50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-26 07:56 -0700
Re: 50 cent DDS synthesizer Bill Sloman <bill.sloman@ieee.org> - 2025-10-27 03:19 +1100
Re: 50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-26 10:08 -0700
Re: 50 cent DDS synthesizer Bill Sloman <bill.sloman@ieee.org> - 2025-10-27 16:02 +1100
Re: 50 cent DDS synthesizer antispam@fricas.org (Waldek Hebisch) - 2025-10-27 00:10 +0000
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-27 09:52 +0000
Re: 50 cent DDS synthesizer antispam@fricas.org (Waldek Hebisch) - 2025-10-28 16:31 +0000
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-28 17:41 +0000
Re: 50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-27 07:58 -0700
Re: 50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-23 11:46 -0700
Re: 50 cent DDS synthesizer john larkin <jl@glen--canyon.com> - 2025-10-23 18:55 -0700
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-24 06:57 +0000
Re: 50 cent DDS synthesizer Jan Panteltje <alien@comet.invalid> - 2025-10-24 07:38 +0000
csiph-web