pub struct Ad983x<DEV, IC> { /* private fields */ }Expand description
AD983x direct digital synthesizer
Implementations§
Source§impl<DEV, E> Ad983x<DEV, Ad9833Ad9837>where
DEV: SpiDevice<Error = E>,
impl<DEV, E> Ad983x<DEV, Ad9833Ad9837>where
DEV: SpiDevice<Error = E>,
Sourcepub fn new_ad9833(spi: DEV) -> Self
pub fn new_ad9833(spi: DEV) -> Self
Create a new instance of an AD9833 device.
Remember to call reset() before using the device after power up.
Sourcepub fn new_ad9837(spi: DEV) -> Self
pub fn new_ad9837(spi: DEV) -> Self
Create a new instance of an AD9837 device.
Remember to call reset() before using the device after power up.
Sourcepub fn set_output_waveform(
&mut self,
waveform: OutputWaveform,
) -> Result<(), Error<E>>
pub fn set_output_waveform( &mut self, waveform: OutputWaveform, ) -> Result<(), Error<E>>
Set the output waveform
Source§impl<DEV, E> Ad983x<DEV, Ad9834Ad9838>where
DEV: SpiDevice<Error = E>,
impl<DEV, E> Ad983x<DEV, Ad9834Ad9838>where
DEV: SpiDevice<Error = E>,
Sourcepub fn new_ad9834(spi: DEV) -> Self
pub fn new_ad9834(spi: DEV) -> Self
Create a new instance of an AD9834 device.
Remember to call reset() before using the device after power up.
Sourcepub fn new_ad9838(spi: DEV) -> Self
pub fn new_ad9838(spi: DEV) -> Self
Create a new instance of an AD9838 device.
Remember to call reset() before using the device after power up.
Sourcepub fn set_output_waveform(
&mut self,
waveform: OutputWaveform,
) -> Result<(), Error<E>>
pub fn set_output_waveform( &mut self, waveform: OutputWaveform, ) -> Result<(), Error<E>>
Set the output waveform
Will return Error::InvalidArgument for SquareMsbOfDac and SquareMsbOfDacDiv2
as this is not available on AD9834/AD9838 devices. To set the digital output,
please use
Sourcepub fn set_sign_bit_output(
&mut self,
configuration: SignBitOutput,
) -> Result<(), Error<E>>
pub fn set_sign_bit_output( &mut self, configuration: SignBitOutput, ) -> Result<(), Error<E>>
Set the digital output
Sourcepub fn set_control_source(
&mut self,
source: ControlSource,
) -> Result<(), Error<E>>
pub fn set_control_source( &mut self, source: ControlSource, ) -> Result<(), Error<E>>
Set the control source used for the functions: frequency register selection, phase register selection, reset of internal registers, and DAC power-down.
Source§impl<DEV, IC, E> Ad983x<DEV, IC>where
DEV: SpiDevice<Error = E>,
impl<DEV, IC, E> Ad983x<DEV, IC>where
DEV: SpiDevice<Error = E>,
Sourcepub fn reset(&mut self) -> Result<(), Error<E>>
pub fn reset(&mut self) -> Result<(), Error<E>>
Resets the internal registers and leaves the device disabled.
Note that this is ignored in AD9834/AD9838 devices if hardware pin control source is selected.
Sourcepub fn disable(&mut self) -> Result<(), Error<E>>
pub fn disable(&mut self) -> Result<(), Error<E>>
Disable the device (enable reset)
This resets the internal registers. Note that this is ignored in AD9834/AD9838 devices if hardware pin control source is selected.
Sourcepub fn enable(&mut self) -> Result<(), Error<E>>
pub fn enable(&mut self) -> Result<(), Error<E>>
Enable the device (disable reset)
Note that this is ignored in AD9834/AD9838 devices if hardware pin control source is selected.
Sourcepub fn set_frequency(
&mut self,
register: FrequencyRegister,
value: u32,
) -> Result<(), Error<E>>
pub fn set_frequency( &mut self, register: FrequencyRegister, value: u32, ) -> Result<(), Error<E>>
Set the frequency as a 28-bit word
This will change the mode to 28-bit if it is not used.
Returns Error::InvalidArgument if providing a value that does not fit in 28 bits.
Sourcepub fn set_frequency_msb(
&mut self,
register: FrequencyRegister,
value: u16,
) -> Result<(), Error<E>>
pub fn set_frequency_msb( &mut self, register: FrequencyRegister, value: u16, ) -> Result<(), Error<E>>
Set the frequency 14-bit MSBs
This will deactivate the 28-bit mode if it is not already the case.
Returns Error::InvalidArgument if providing a value that does not fit in 14 bits.
Sourcepub fn set_frequency_lsb(
&mut self,
register: FrequencyRegister,
value: u16,
) -> Result<(), Error<E>>
pub fn set_frequency_lsb( &mut self, register: FrequencyRegister, value: u16, ) -> Result<(), Error<E>>
Set the frequency 14-bit LSBs
This will deactivate the 28-bit mode if it is not already the case.
Returns Error::InvalidArgument if providing a value that does not fit in 14 bits.
Sourcepub fn select_frequency(
&mut self,
register: FrequencyRegister,
) -> Result<(), Error<E>>
pub fn select_frequency( &mut self, register: FrequencyRegister, ) -> Result<(), Error<E>>
Select the frequency register that is used
Note: this can be overriden through the FSELECT pin in AD9834/AD9838 devices if hardware pin control source is selected.
Sourcepub fn set_phase(
&mut self,
register: PhaseRegister,
value: u16,
) -> Result<(), Error<E>>
pub fn set_phase( &mut self, register: PhaseRegister, value: u16, ) -> Result<(), Error<E>>
Set a phase register (12-bit value)
Returns Error::InvalidArgument if providing a value that does not fit in 12 bits.
Sourcepub fn select_phase(&mut self, register: PhaseRegister) -> Result<(), Error<E>>
pub fn select_phase(&mut self, register: PhaseRegister) -> Result<(), Error<E>>
Select the phase register that is used.
Note: this can be overriden through the PSELECT pin in AD9834/AD9838 devices if hardware pin control source is selected.
Sourcepub fn set_powered_down(&mut self, config: PoweredDown) -> Result<(), Error<E>>
pub fn set_powered_down(&mut self, config: PoweredDown) -> Result<(), Error<E>>
Set device parts powered-down state.
Note: This can be overriden through the SLEEP pin in AD9834/AD9838 devices if hardware pin control source is selected.