Groups | Search | Server Info | Login | Register


Groups > comp.arch.fpga > #38684

Re: 50 cent DDS synthesizer

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.

Show all headers | View raw


>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 | NextPrevious in thread | Next in thread | Find similar


Thread

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