-
Notifications
You must be signed in to change notification settings - Fork 10
Moving_lattice
Moving lattice functionality is an example of doing a non-linear frequency chirp of one of the DDS board. This is useful when we need to have a well-defined functional form of the frequency (as a function of time) programmed into the DDS and run upon receiving an external triggering. For lattice clocks, we might implement this to move the atoms in and out of a black-body radiation chamber for reduction of BBR shift.
A concrete example can be seen here:
Suppose that we want to start at 40.0 MHz, and then chirp the frequency up to 40.1 MHz, stay there and then chirp back down to 40.0 MHz. Then we repeat with the same curve but going instead to 39.9 MHz. The point here is that the non-linear part of the curve is a well-defined 4-th order polynomial function.
The idea is to program a curve into a built-in memory of the DDS FPGA. When we chirp to 40.1 MHz, then we simply add the frequency offset (from the output of the ROM) to our center frequency. This is done by counting the ROM address incrementally until the end of the ROM. When we want to chirp back, simply count the ROM address back to 0.
The next part of the curve is implemented similarly, with instead of adding you subtract the offset frequency from the center frequency.
Example of a GUI interface is shown below:
We need to do some modifications to the DDS boards to have it listen to an external trigger independent from the DDS/Pulse system.