Groups | Search | Server Info | Login | Register


Groups > comp.arch.fpga > #38696

Re: 50 cent DDS synthesizer

From john larkin <jl@glen--canyon.com>
Newsgroups sci.electronics.design, comp.arch.fpga
Subject Re: 50 cent DDS synthesizer
Date 2025-10-27 07:58 -0700
Organization A noiseless patient Spider
Message-ID <oq1vfklgrol1odhjm03l9rm7365nagaq5p@4ax.com> (permalink)
References (5 earlier) <BDyKQ.44049$O5fb.6397@fx01.ams4> <10df7vg$2dvoi$1@dont-email.me> <10djh8v$2h1af$1@paganini.bofh.team> <10dkl12$3sl8j$1@dont-email.me> <10dmda4$30aua$1@paganini.bofh.team>

Cross-posted to 2 groups.

Show all headers | View raw


On Mon, 27 Oct 2025 00:10:46 -0000 (UTC), antispam@fricas.org (Waldek
Hebisch) wrote:

>In sci.electronics.design Jan Panteltje <alien@comet.invalid> wrote:
>>>antispam@fricas.org (Waldek Hebisch)wrote:
>>>>In sci.electronics.design Jan Panteltje <alien@comet.invalid> 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?
>>>
>>>For logic MOSFETS in IC-s I just used a multimeter.  For power
>>>MOSFETS I used "two meter" method: resitor to limit current to
>>>reasonable range, ammeter to measure current, voltmeter to
>>>measure voltage drop on the MOSFET.  Actually, I had extrea
>>>voltmeter to measure gate voltage.
>> 
>> Yes, that should work.
>> But in the case of FPGA output there is pull up, pull down, linearity and likely some effects in-between.
>> But as a simple rule it should work.
>
>Well, that gives static behaviour.  Performing measurements at
>multiple points one can get reasonable approximatin to V-I curve.
>When building a DAC one want most resistance in external
>resistors, so few points should be enough (one probably gets
>more error due to variation in devices than due to nonlinearity).

The FPGA DAC drive pins operate near the rails, so all we need to know
is Rsds-on and maybe prop delay skew.

We'll never make a very good DAC from an FPGA and a resistor network,
but it's good enough to make a decent DDS.

Which gives me an idea.....


John Larkin
Highland Tech Glen Canyon Design Center
Lunatic Fringe Electronics

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