forked from M-Labs/artiq
devices/dds_core: add frequency_to_ftw and ftw_to_frequency
This commit is contained in:
parent
5b05a3f75b
commit
74adb39157
|
@ -25,6 +25,22 @@ class DDS(AutoContext):
|
||||||
|
|
||||||
kernel_attr = "previous_frequency"
|
kernel_attr = "previous_frequency"
|
||||||
|
|
||||||
|
@portable
|
||||||
|
def frequency_to_ftw(self, frequency):
|
||||||
|
"""Returns the frequency tuning word corresponding to the given
|
||||||
|
frequency.
|
||||||
|
|
||||||
|
"""
|
||||||
|
return int(2**32*frequency/self.dds_sysclk)
|
||||||
|
|
||||||
|
@portable
|
||||||
|
def ftw_to_frequency(self, ftw):
|
||||||
|
"""Returns the frequency corresponding to the given frequency tuning
|
||||||
|
word.
|
||||||
|
|
||||||
|
"""
|
||||||
|
return ftw*self.dds_sysclk/2**32
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def on(self, frequency):
|
def on(self, frequency):
|
||||||
"""Sets the DDS channel to the specified frequency and turns it on.
|
"""Sets the DDS channel to the specified frequency and turns it on.
|
||||||
|
@ -47,7 +63,7 @@ class DDS(AutoContext):
|
||||||
# the same time.
|
# the same time.
|
||||||
fud_time = -1
|
fud_time = -1
|
||||||
syscall("dds_program", self.reg_channel,
|
syscall("dds_program", self.reg_channel,
|
||||||
int(2**32*frequency/self.dds_sysclk),
|
self.frequency_to_ftw(frequency),
|
||||||
fud_time)
|
fud_time)
|
||||||
self.previous_frequency = frequency
|
self.previous_frequency = frequency
|
||||||
self.sw.on()
|
self.sw.on()
|
||||||
|
|
Loading…
Reference in New Issue