From 439576f59d0cda819c704df00a6d61c1b688538a Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Mon, 9 Dec 2019 16:13:57 +0800 Subject: [PATCH] wrpll: fix Si549 initialization delays --- artiq/firmware/libboard_artiq/wrpll.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/artiq/firmware/libboard_artiq/wrpll.rs b/artiq/firmware/libboard_artiq/wrpll.rs index 3e554064c..530259656 100644 --- a/artiq/firmware/libboard_artiq/wrpll.rs +++ b/artiq/firmware/libboard_artiq/wrpll.rs @@ -230,7 +230,7 @@ mod si549 { write(dcxo, 255, 0x00)?; // PAGE write_no_ack_value(dcxo, 7, 0x80)?; // RESET - clock::spin_us(50_000); // required? not specified in datasheet. + clock::spin_us(100_000); // required? not specified in datasheet. write(dcxo, 255, 0x00)?; // PAGE write(dcxo, 69, 0x00)?; // Disable FCAL override. @@ -287,7 +287,9 @@ pub fn init() { si549::program(i2c::Dcxo::Helper, h_hsdiv, h_lsdiv, h_fbdiv) .expect("cannot initialize helper Si549"); - clock::spin_us(10_000); // Settling Time after FS Change + // Si549 Settling Time for Large Frequency Change. + // Datasheet said 10ms but it lied. + clock::spin_us(50_000); unsafe { csr::wrpll::helper_reset_write(0); } clock::spin_us(1);