Groups | Search | Server Info | Login | Register
Groups > sci.electronics.design > #737154
| From | antispam@fricas.org (Waldek Hebisch) |
|---|---|
| Newsgroups | sci.electronics.design, comp.arch.fpga |
| Subject | Re: 50 cent DDS synthesizer |
| Date | 2025-10-27 00:10 +0000 |
| Organization | To protect and to server |
| Message-ID | <10dmda4$30aua$1@paganini.bofh.team> (permalink) |
| References | (4 earlier) <10ddo5a$1v5hk$1@dont-email.me> <BDyKQ.44049$O5fb.6397@fx01.ams4> <10df7vg$2dvoi$1@dont-email.me> <10djh8v$2h1af$1@paganini.bofh.team> <10dkl12$3sl8j$1@dont-email.me> |
Cross-posted to 2 groups.
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).
> Now people here were talking about that IBIS model.
> If I ever get spice working on my computers (Raspberries these days) ....
On PC Linux Spice-NG compiles fine from sources. I did not try
to compile it on Raspberry Pi, but IME problems with compilation
on Raspberry Pi are rare, so I expect this to work.
OTOH Spice-NG can not read LTSpice file which folks here tend to
post. And Spice-NG comes with no device parameters. Parameters
for Fairchild 2N3904 and 1N4148 are in datasheet, so one can use
them. For handful of other devices I was able to find parmeters
on the net. But apparently, for most devices manufacturers
consider Spice paremterts as a secret. So due to lack of
device data Spice-NG can not be used for accurate simulation
(unless somebody can infer parameters from measurements or
have some other way to get them).
Concerning IBIS models, text that you linked in other post
clamis that the models are plain text with well-described
format. If true, one should be able to extract/interpolate
various curves from model data with rather simple ad-hoc
tool, without need for Spice.
BTW: I tried to use Spice-NG to simulate detector using 1N4148.
However, results I obtained look too good: according to Spice-NG
such detector should work for signals at few millivolt level and
well above 1GHz. My detectort was lightly loaded (1M resistor
+ filtering capacitor as a load) and low bandwidth. But if
1N4148 really works so well as Spice-NG claims, then people
using Shottky or germanium diodes in similar detectors are
overdoing it.
> Old spice version could still be running in wine in Linux on old PC upstairs.
> For some reason I do not need Spice except in food.
Concerning Raspberry Pi, currently Chinese mini-PC is cheaper
than Raspberry Pi powerful enough to serve as a main computer.
I recently bought a few cheap Orange Pi-s and Milkv Duo-s.
But they are low end machines. Would be reasonably powerful
as desktop/server in 2000 (or maybe in 1999, clock freqency was
increasing fast in those years), but not now. I am using
Orange Pi-s to check that my software compiles fine on ARM.
I have Milkv Mars, which is slightly more powerful than Milkv Duo S,
I use it to test that my software compiles fine on Risc-V.
But otherwise those boards are useful as a way to control electronics
via Ethernet
--
Waldek Hebisch
Back to sci.electronics.design | 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