Deutsch   English   Français   Italiano  
<vjeod5$255jq$1@dont-email.me>

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: Bill Sloman <bill.sloman@ieee.org>
Newsgroups: sci.electronics.design
Subject: Re: DDS, again
Date: Fri, 13 Dec 2024 00:27:57 +1100
Organization: A noiseless patient Spider
Lines: 52
Message-ID: <vjeod5$255jq$1@dont-email.me>
References: <lcthlj9gl86227o6hrc4sidglalkak4qj9@4ax.com>
 <0bnjljpmode5sgjeun99nonvvmosd7bvt0@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 12 Dec 2024 14:28:07 +0100 (CET)
Injection-Info: dont-email.me; posting-host="16c3377a4a85f6ead73d5ab0289f5efa";
	logging-data="2266746"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/pRY9iw18aRgBGCOhWQUHbzZFtVQgo+EY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:T1iOrEJ5k7B6y0F+1zQTnfHUcV0=
In-Reply-To: <0bnjljpmode5sgjeun99nonvvmosd7bvt0@4ax.com>
X-Antivirus-Status: Clean
X-Antivirus: Norton (VPS 241212-0, 12/12/2024), Outbound message
Content-Language: en-US
Bytes: 3264

On 12/12/2024 5:50 am, john larkin wrote:
> On Tue, 10 Dec 2024 18:38:18 -0800, john larkin <JL@gct.com> wrote:
> 
>> I have been unsuccessful in getting LT Spice to simulate a DDS
>> frequency generator. It's bad enough trying to make the NCO part, but
>> whenever I get close it stalls or throws convergence errors.
>>
>> So I wrote a PowerBasic program that's the 32-bit NCO...  GC_Num.exe.
>>
>> Making a proper .WAV file would be a nightmare, so it outputs as a
>> text file with just    time  data    per line, where  data  is the
>> selected number of MS bits of the phase accumulator.
>>
>> LT Spice can read the file, and then do whatever it wants: sine, DAC,
>> filter, comparator, FFTs.
>>
>> https://www.dropbox.com/scl/fo/o0mdxxqvxupg6ynz7i7rx/AMPMbv9NOY4mJFXggTGUqJ8?rlkey=9ecl38npbgy8kxuzd9bako4kr&dl=0
>>
>> Spice reads the file as a piecewise-linear thing, so wrecks the nice
>> MSB data steps. I had to fool it by outputting each clocked phase
>> accumulator value twice, as
>>
>> bits   time
>> bits   time+0.9*clock_period
>>
>> same data bits both lines. Looks pretty steppy.
> 
> Given a 40 MHz phase accumulator, one could spin up a clock at some
> mutiple, 160 MHz maybe, and fake the dac/lowpass/comparator thing to
> reduce jitter.
> 
> I think it's just a lookup table on some MSBs of the 40 MHz phase
> accumulator. Of course the new  fake DDS clock output would be
> quantized to the 160 MHz clock domain. Maybe.

The whole point about DDS frequency synthesis scheme is that it isn't 
limited to the master clock edges.

The sine-look-up table gives you a staircase approximation to the 
desired sine wave, which is limited in just that way, but as soon as you 
low-pass filter the staircase steps into a smooth slope, your 
zero-crossings can move smoothly and continuously.

Faking that stage is - at least in theory - doable, but it's going to be 
messier than the DAC-low-pass filter scheme, which has the advantage of 
being popular (so that there are lots of standard parts available) and 
easier to explain.

-- 
Bill Sloman, Sydney