Comments (1)
Thanks for opening this issue for this problem. To provide more context, we are currently on Artiq 7 and measuring the frequency output of the Mirny around 5 GHz on a frequency counter. We noticed that there was a Hz-level frequency error when operating at f = 5GHz, which is much larger than the specified 52-bit precision of the chip.
Frequency was set using the artiq.coredevice.adf5356.set_frequency
command. In this test, I am using a f_ref = 125 MHz, and get f_PFD = 125 MHz. At 5 GHz, from the fractional-N PLL formula, we get n = 40, frac1 = frac2 = 0, mod2 = 1 (mod1 = 2^24, fixed). As the set frequency deviates from the round 5GHz, only frac2 and mod2 change (frac1 only changes every 125MHz / 2^24 = 7.45 Hz).
frac2 and mod2 are 28-bit integers nominally, which are each separated into a 14-bit MSB and 14-bit LSB and written to registers 2 and 13 on the ADF5356 chip. From the measured error, I guessed that the MSB on either frac2 or mod2 was wrongly bit-shifted by 1. After messing around a bit, it was only when I coerced them both to 14-bit (such that only the LSB registry was written) did that remove the frequency error (up to the new resolution of 38-bit).
I'm not sure why writing the MSB register for frac2 and mod2 (REG13) is problematic.
(Also note that the native artiq.coredevice.adf5356.set_frequency
command rounds the set frequency to the nearest Hz, but it seems like it can be set to a float and that works fine as well)
More details:
Our frequency counter was referenced to 10 MHz from our maser, and the Mirny is clocked externally to a 125 MHz DDS which is also referenced to the 10 MHz maser. The device_db entry:
device_db["mirny2_cpld"] = {
"type": "local",
"module": "artiq.coredevice.mirny",
"class": "Mirny",
"arguments": {
"spi_device": "spi_mirny2",
"refclk": 125000000.0,
"clk_sel": "sma"
},
}
from artiq.
Related Issues (20)
- handle cancelled interactive argument requests properly
- expand interactive argument example
- interactive args: unclear error message when supplying args simultaneously
- issues with moving existing item in `DictSyncModel`
- What happens in the gatware when there is a delay/jitter on the reference clock provided to the KC705? HOT 3
- dashboard/master: Calling setattr_argument() for the same key but different type raises a TypeError on the master HOT 4
- Conda installation on windows couldn't find artiq HOT 3
- Fastino garbage output with long sequences HOT 4
- DRTIO aux packets do not use the whole space HOT 5
- support EFC hardware revision in JSON
- Dashboard target name error HOT 10
- Almazny v1.2 driver doesn't work HOT 2
- using multiple server IP addresses in afws_client HOT 1
- Should Zadig be included in the offline installer? HOT 3
- AFWS interface HOT 2
- LMDB databases break single argument XY Plot Applet HOT 1
- `nix develop` doesn't allow building firmware without git repo HOT 2
- `openocd-unstable-2021-09-15` not reproducible from source
- Minor issues/suggestions on `flake.nix` and `.gitignore` HOT 2
- Unexpected Sequence Error in ARTIQ 8 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from artiq.