Thanks for the hint. Long story short: I don't understand the synchronization architecture of the Urukul. Any hint would be welcome, otherwise I will, again, waste days trying to figure it out on my own by looking at schematics, datasheets, and source code (there seems to be no documentation describing the architecture, just a bunch of variables without explanation how they are linked together).
Phase ambiguity in Urukul
To understand how the DDS chip synchronization works there is no substitute to reading the chip datasheet. It would be redundant to replicate that information. I'm not aware of an alternative.
The core of the problem is twofold: to synchronize SYNC_CLK, accurate and deterministic generation of SYNC_IN pulses to meet S/H to (DDS) SYS_CLK This requires tuning starting from a seed value that stored either in EEPROM or given in the device db.
Additionally the IO_UPDATE pulses need to be placed deterministically to meed (DDS) SYNC_CLK S/H.
OK, I read the datasheet, but that does not explain how the sinara-hw/sw interacts with the DDS. I don't even know what question to ask. One starter may be: It seems like I will need a TTLClockGen. The manual says, that I cannot use a regular TTL channel for that. What are regular TTL channels and which ones are the ones I need? Is this an extra hardware?
You don't say what you did to get to where you are now. Which system is this?
Usually you only need to do what I referenced (https://forum.m-labs.hk/d/228-phase-ambiguity-in-urukul/3) and you are done. The rest happens behind the scenes.
Can I reproduce this without having a TTL card? I have a Kasli, Urukul, Zotino and Fastino card.
Sure. This also shows up as deterministic carrier-envelope phase between the Urukul RF switch TTL (envelope) and the RF phase (carrier).
- Edited
rjo You don't say what you did to get to where you are now. Which system is this?
Usually you only need to do what I referenced (https://forum.m-labs.hk/d/228-phase-ambiguity-in-urukul/3) and you are done. The rest happens behind the scenes.
Custom system. I did not see your edit yet. I will give that a try, I have not seen this option anywhere in the manual...
sb10q Where?
In
https://m-labs.hk/artiq/manual/core_drivers_reference.html#artiq.coredevice.ttl.TTLClockGen
it reads:
This should be used with TTL channels that have a clock generator built into the gateware (not compatible with regular TTL channels).
Ok, but TTLClockGen has nothing to do with Urukul synchronization.
Ok, but TTLClockGen has nothing to do with Urukul synchronization.
TTLClockGen
is the component that implements Urukul synchronization.
This should be used with TTL channels that have a clock generator built into the gateware (not compatible with regular TTL channels).
A misunderstanding. "This" meaning the coredevice
driver that's documented here, "channel" referring to the gateware PHY. They both don't refer to the hardware.
- Edited
FabianS One starter may be: It seems like I will need a TTLClockGen. The manual says, that I cannot use a regular TTL channel for that. What are regular TTL channels and which ones are the ones I need? Is this an extra hardware?
Sorry to ask after almost 3 years,do you finally solve the problem or find something else useful? I seem to have similar problem about synchronization of Urukul