# Sinara 7210 Clocker

[Wiki](https://github.com/sinara-hw/Clocker/wiki)

## JSON

Put the `ext_ref_frequency` field into the JSON description if the Kasli is going to use an external frequency:

```json
{
  "hw_rev": "<hw rev>",
  "base": "<base>",
  ...
  "ext_ref_frequency": <freq in Hz>,
  ...
  "peripherals": [...]
}
```

On peripherals you should choose `"clk_sel": 2` on connected devices.

## Setup external clocker

For tests, you may need an external RF generator, depending on customer needs.
Here is example setup for SynthNV RF signal generator:

1. Connect SynthNV to the workstation via USB, and 
2. Install and run `cutecom`: `nix-shell -p cutecom`
3. Set settings as on the picture below:
![](../img/cutecom_settings.png)
4. Open the device, usually it is `/dev/ttyACM0`
5. Put `?` into `Input` field and press `Enter` for current settings and help commands
6. For changing the frequency, enter `f<freq in MHz>`, e.g. `f125.0` for 125 MHz
7. Set RF power so that clocker would recognize the signal with `a<power>` command, e.g. `a63`
8. Check for desired amplitude and frequency at the `RFOut` (see picture below for reference) pin via oscilloscope
![](../img/synthnv_pins.jpg)
9. If everything is ok, connect `RFOut` to the `CLK IN` on the Clocker (see instructions below for details)

### Setup the Clocker

1. Switch `CLK SEL` pin to `EXT`/`INT` according to customer needs
2. Connect MMCx cables according to the customer needs and boards specifications (see image below for reference): 
   if the `INT` source is chosen, connect MMCx cable to `INT CLK`, otherwise connect external clocker to SMA `EXT CLK` 
3. Connect the Clocker to the Kasli via 30-pin ports
   ![](../img/clocker_ref.jpg)
4. Connect the Clocker's SMA output to the Kasli's `CLK`/`CLK IN` SMA pin
5. After assembling the crates and flashing the firmware, start Kasli and write config as follows:
   `artiq_coremgmt config write -s rtio_clock ext0_bypass`. Please refer to the [official manual](https://m-labs.hk/artiq/manual/installing.html#miscellaneous-configuration-of-the-core-device)
   for the details and available options
6. Reboot either via `artiq_coremgmt reboot` or via power supply if the board's firmware doesn't have such command

## Testing

Run `artiq_sinara_test` and check that it doesn't fail on the connected devices.

Alternatively, if it would be shipped standalone:
1. Switch to external source
2. Connect to the external `CLK IN` clock source (frequency generator) via SMA cable
3. Power up Clocker with power supply or EEM
4. Check via oscilloscope all (internal and external) clocker outputs, that they output clock signal respective to the input frequency
5. Shut down Clocker
6. Switch to internal source
7. Connect clock source to the internal `CLK IN` via MMCx cable
8. Check outputs' signals via steps 3-4
