Path: csiph.com!weretis.net!feeder8.news.weretis.net!3.eu.feeder.erje.net!feeder.erje.net!feeder1.feed.ams11.usenet.farm!feed.usenet.farm!peer04.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx01.ams4.POSTED!not-for-mail MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: 50 cent DDS synthesizer Newsgroups: sci.electronics.design,comp.arch.fpga References: <8fjifkteog2a8s8960dk7lak7kh70lrtta@4ax.com> <10dcmfd$1fcrk$1@dont-email.me> <20251023a@crcomp.net> <10ddo5a$1v5hk$1@dont-email.me> Content-Language: en-GB From: Chris Jones In-Reply-To: <10ddo5a$1v5hk$1@dont-email.me> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Lines: 76 Message-ID: X-Complaints-To: abuse@usenet-news.net NNTP-Posting-Date: Thu, 23 Oct 2025 23:12:33 UTC Organization: usenet-news.net Date: Fri, 24 Oct 2025 10:12:31 +1100 X-Received-Bytes: 4220 Xref: csiph.com sci.electronics.design:737101 comp.arch.fpga:38676 On 24/10/2025 4:20 am, Jan Panteltje wrote: >> "Don" 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: >> >> >> >> 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.