From: Winston on
On 5/13/2010 7:48 AM, John Fields wrote:
> On Wed, 12 May 2010 20:51:37 -0700 (PDT), George Herold
> <gherold(a)teachspin.com> wrote:
>
>> PS
>> Seems like DDS beats it all.
>
> ---
> What does direct digital synthesis have to do with generating two sine
> waves 120 degrees apart over a range of frequencies?

Here's a diagram helpfully supplied by a previous poster:

"FIN>---[COUNT]-+-[LUT 0�]---[DAC 0�]--->OUT 0�
|
|
+-[LUT n�]---[DAC n�]--->OUT n�


How it works is that for any given output from the counter, the LUTs
will have outputs which, after being run through the DACs, will differ
from each other by the difference in voltage/current caused by the
difference in phase between them, that difference being programmed
into the LUTs."

See, the sine waves are coded in lookup tables and are Directly
Digitally Synthesized via the Digital to Analog Converters.
John Larkin suggested turning it into a State Machine that
would allow it to select portions of the lookup table for
coarse frequencies across a wide range with high resolution
while using a relatively low clock rate (and commensurately
cheaper parts).




--Winston



From: John Larkin on
On Thu, 13 May 2010 12:26:36 -0700 (PDT), George Herold
<gherold(a)teachspin.com> wrote:

>On May 13, 10:48�am, John Fields <jfie...(a)austininstruments.com>
>wrote:
>> On Wed, 12 May 2010 20:51:37 -0700 (PDT), George Herold
>>
>> <gher...(a)teachspin.com> wrote:
>> >PS
>> >Seems like DDS beats it all.
>>
>> ---
>> What does direct digital synthesis have to do with generating two sine
>> waves 120 degrees apart over a range of frequencies?
>
>Hmm, Can't you just have a simple offset from two look up tables. Run
>them off the same clock and change the clock rate to change
>frequency. Some one already posted that I thought?


One can stick an N-bit binary adder (N being the same as the counter
width) to add a phase shift to one path, and use the same lookup table
contents, or share a single table. That way you don't have to reload
the table to change the phase shift. If you stuff M into the adder,
the phase shift is 360 * M/N degrees.

That works for both the binary counter and for the DDS accumulator
versions.

John



From: John Larkin on
On Thu, 13 May 2010 09:48:53 -0500, John Fields
<jfields(a)austininstruments.com> wrote:

>On Wed, 12 May 2010 20:51:37 -0700 (PDT), George Herold
><gherold(a)teachspin.com> wrote:
>
>>PS
>>Seems like DDS beats it all.
>
>---
>What does direct digital synthesis have to do with generating two sine
>waves 120 degrees apart over a range of frequencies?

Once you have the DDS logic set up, it's really easy to stick an adder
into one of the address paths and add a 0 to 359.999... degree
variable phase shift. A small FPGA and a couple of DACs can make a
nice generator with huge frequency range/resolution and pretty
impressive amplitude and phase control.

John

From: John Fields on
On Thu, 13 May 2010 14:15:50 -0700, John Larkin
<jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote:

>On Thu, 13 May 2010 09:48:53 -0500, John Fields
><jfields(a)austininstruments.com> wrote:
>
>>On Wed, 12 May 2010 20:51:37 -0700 (PDT), George Herold
>><gherold(a)teachspin.com> wrote:
>>
>>>PS
>>>Seems like DDS beats it all.
>>
>>---
>>What does direct digital synthesis have to do with generating two sine
>>waves 120 degrees apart over a range of frequencies?
>
>Once you have the DDS logic set up, it's really easy to stick an adder
>into one of the address paths and add a 0 to 359.999... degree
>variable phase shift. A small FPGA and a couple of DACs can make a
>nice generator with huge frequency range/resolution and pretty
>impressive amplitude and phase control.

---
Indeed.

My quarrel was with "DDS" being used as something other than the
mechanism used to generate the variable clock from a fixed frequency
source.

From: John Larkin on
On Thu, 13 May 2010 12:51:29 -0700, Winston <Winston(a)bigbrother.net>
wrote:

>On 5/13/2010 7:48 AM, John Fields wrote:
>> On Wed, 12 May 2010 20:51:37 -0700 (PDT), George Herold
>> <gherold(a)teachspin.com> wrote:
>>
>>> PS
>>> Seems like DDS beats it all.
>>
>> ---
>> What does direct digital synthesis have to do with generating two sine
>> waves 120 degrees apart over a range of frequencies?
>
>Here's a diagram helpfully supplied by a previous poster:
>
>"FIN>---[COUNT]-+-[LUT 0�]---[DAC 0�]--->OUT 0�
> |
> |
> +-[LUT n�]---[DAC n�]--->OUT n�
>
>
>How it works is that for any given output from the counter, the LUTs
>will have outputs which, after being run through the DACs, will differ
>from each other by the difference in voltage/current caused by the
>difference in phase between them, that difference being programmed
>into the LUTs."
>
>See, the sine waves are coded in lookup tables and are Directly
>Digitally Synthesized via the Digital to Analog Converters.
>John Larkin suggested turning it into a State Machine that
>would allow it to select portions of the lookup table for
>coarse frequencies across a wide range with high resolution
>while using a relatively low clock rate (and commensurately
>cheaper parts).

Not exactly. If you address the sine lookup table with a
fixed-frequency-clocked phase accumulator, instead of a counter, you
can tune the sine frequency to as fine a resolution as you want, just
by using more bits in the accumulator. If you put a decent
anti-aliasing lowpass filter after the DAC, you can make beautiful
sine waves at frequencies approaching Fclk/2, namely the Nyquist
frequency. As a practical matter, Fclk/3 or Fclk/4 is easy.

http://www.highlandtechnology.com/DSS/T346DS.html

This uses an FPGA clocked at 128 MHz, a 32-bit phase accumulator, a
4096 point sine lookup table, and a 14 bit DAC per channel. It makes
sines from 0 to 32 MHz with 0.015 Hz frequency resolution. It's a
textbook DDS design, but with phase-rotation adders in the lookup
table address paths and multipliers for amplitude. There are also
adders into the accumulator inputs to allow FM and chirps and such.

Here's the board:

ftp://jjlarkin.lmi.net/DSC01786.JPG

What's cool is that you can put negative numbers into a phase
accumulator and walk the sine table backwards, generating negative
frequencies. That's handy for making, say, quadrature microstepper
drives and running the motor clockwise or CCW.

John

First  |  Prev  |  Next  |  Last
Pages: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Prev: Flow Sensors revistied
Next: Just plain fucked...