From ade06cbcb874bb9318c08102fcc2e88e63314cec Mon Sep 17 00:00:00 2001 From: Ryan Summers Date: Thu, 4 Jun 2020 16:56:04 +0200 Subject: [PATCH] Updating AD9959 api --- src/main.rs | 3 ++- src/pounder/mod.rs | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index f6018c8..99a8c5f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -303,7 +303,8 @@ const APP: () = { io_update, asm_delay, ad9959::Mode::FourBitSerial, - 100_000_000).unwrap() + 100_000_000, + 5).unwrap() }; let io_expander = { diff --git a/src/pounder/mod.rs b/src/pounder/mod.rs index b3ce19f..d29e3bd 100644 --- a/src/pounder/mod.rs +++ b/src/pounder/mod.rs @@ -183,21 +183,22 @@ where 1_u8.wrapping_shl(5)).map_err(|_| Error::I2c)?; devices.mcp23017.all_pin_mode(mcp23017::PinMode::OUTPUT).map_err(|_| Error::I2c)?; - devices.select_onboard_clock()?; + // Select the on-board clock with a 5x prescaler (500MHz). + devices.select_onboard_clock(5u8)?; Ok(devices) } - pub fn select_external_clock(&mut self, frequency: u32) -> Result<(), Error>{ + pub fn select_external_clock(&mut self, frequency: u32, prescaler: u8) -> Result<(), Error>{ self.mcp23017.digital_write(EXT_CLK_SEL_PIN, true).map_err(|_| Error::I2c)?; - self.ad9959.set_clock_frequency(frequency).map_err(|_| Error::DDS)?; + self.ad9959.configure_system_clock(frequency, prescaler).map_err(|_| Error::DDS)?; Ok(()) } - pub fn select_onboard_clock(&mut self) -> Result<(), Error> { + pub fn select_onboard_clock(&mut self, prescaler: u8) -> Result<(), Error> { self.mcp23017.digital_write(EXT_CLK_SEL_PIN, false).map_err(|_| Error::I2c)?; - self.ad9959.set_clock_frequency(100_000_000).map_err(|_| Error::DDS)?; + self.ad9959.configure_system_clock(100_000_000, prescaler).map_err(|_| Error::DDS)?; Ok(()) }