Deutsch   English   Français   Italiano  
<jqkpkjh6j60pqohtarsrfvk6gkt8l2v8d2@4ax.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: john larkin <JL@gct.com>
Newsgroups: sci.electronics.design
Subject: Re: DDS follies
Date: Sun, 01 Dec 2024 13:43:46 -0800
Organization: A noiseless patient Spider
Lines: 76
Message-ID: <jqkpkjh6j60pqohtarsrfvk6gkt8l2v8d2@4ax.com>
References: <fmknkjpda1s2nc6d67nlqhf559v5j558ks@4ax.com> <nrtu1l-eb131.ln1@coop.radagast.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 01 Dec 2024 22:43:48 +0100 (CET)
Injection-Info: dont-email.me; posting-host="6b8552caf086e8e7aa172ace79959eaa";
	logging-data="2966994"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/o+pTwKKbgBNqfhsGZTHrx"
User-Agent: ForteAgent/8.00.32.1272
Cancel-Lock: sha1:GwZaeXhhsFbOEVuzyG8G3uU5lmk=
Bytes: 3917

On Sun, 1 Dec 2024 12:34:31 -0800, dplatt@coop.radagast.org (Dave
Platt) wrote:

>In article <fmknkjpda1s2nc6d67nlqhf559v5j558ks@4ax.com>,
>john larkin  <JL@gct.com> wrote:
>
>>I was thinking that I might do some 32-bit phase accumulators in my
>>FPGA, from the highest clock frequency it can stand, and only pull out
>>a few MSBs into homemade resistor DACs, and use cheap/bad lowpass
>>filters and schmitt gate comparators, then divide down.
>
>I tried doing some waveform generation by something like this method
>in an ICE40 FPGA, creating a 10.7 MHz IF signal for an FM-stereo
>alignment generator.  As I recall I used three output pins,
>and a very simple resistor DAC.
>
>The result was a nasty-looking waveform, with some serious switching
>glitches at some transitions between values.  There was enough
>difference in signal-propagation time between the pins and the
>driving gates to cause some race conditions, leading to a short
>high-value spike during the transition. 
>
>Even putting the pins into registered-output mode didn't help very
>much... the register-being-clocked-to-pin-transition delays weren't
>constant.  I think I was just asking a low-end FPGA to do things
>it wasn't really designed to do.
>
>It would have taken multiple filter stages to get rid of this.
>Using Schmitt comparators (such as you suggest) would have
>gotten rid of the glitches (assuming that board and part
>parasitics didn't let them bleed through) but then I'd have
>had to low-pass filter the comparator output again to get
>something like a sinewave.
>
>One possible way around this problem would be to arrange the outputs
>to operate as a Gray code (or similar), so that one can guarantee only
>a single pin transition per clock.  I imagine there's probably an
>R-type DAC topology which could support this, but I haven't worked
>with one personally.
>

We use home-made 1-bit delta-sigma DACs sometimes. Just an RC out of
an FPGA pin. That's good for slow stuff like an offset trim or tuning
a VCXO or whatever. It's a bit better than PWM but it's still crazy
slow.

I'm guessing that a 1-bit DDS,  just filtering the MSB of the sine
lookup table, would be awful too. But imagine a 65K x 1 bit sine
lookup!

Hmmm, that makes a square wave: Out = In. Never mind. [1]

I trekked down the hill to retrieve my DDS book and my treasured
"Signals and Systems for Dummies" paperback. So I can snoop a little
theory now.

I might simulate some cases, filter and all, but LT Spice is
impressively klutzy at digital stuff.

Here's a past attempt. Instead of drawing a zillion flops and gates, I
faked an analog phase accumulator.

https://www.dropbox.com/scl/fi/8pilwsykjo9bngqarzx0j/JLDDS_100M_4K.jpg?rlkey=dgtrlxdz4zvc22z297prc5rxk&raw=1

I think some of my kids can do Matlab or whatever.



[1] but might such a lookup table generate delta-sigma?

[2] Does it ever make sense to sum two triangles?