Pulse sequencer
Revision as of 02:03, 29 August 2018 by imported>Kot (→Program for Arduino Due)
To issue pulses we use two-level modulation using profile pins. To find cluster information for lower switching times see map.
Arduino due + DDS AD9959
| Number | Description | arduino channel | chip number | color | DDS channel | Frequency, [MHz] | AOM delay, [ns] | AOM shortest pulse, [ns] |
|---|---|---|---|---|---|---|---|---|
| 1 | Cool | 39 | PC7 | green | "3" | 110 | ||
| 2 | Repump | 34 | PC2 | red | "1" | 90 | ||
| 3 | Magnetic coils | 36 | PC4 | no | TTL | |||
| 4 | Cavity lock AOM | 38 | PC6 | blue | through AOM driver | 44 | 2000 | ? |
| 5 | Cavity gate | 33 | PC1 | no | TTL | |||
| 6 | Spectrum analyzer trigger | 31 | PA7 | no | TTL | |||
| 7 | Probe laser MBR | 0 | yellow | through AOM driver | 80 | 800 | ||
| 8 | Side pump toptica | 45 | PC18 | orange | "0" | -56 | 950 | ? |
| 9 | Side pump MBR | 41 | PC9 | violet | "2" | 100 | 800 ns +300 ns electr delay |
Below are pins for DDS AD9959 connection to arduino due.
| Number | Description | arduino channel | chip number |
|---|---|---|---|
| 1 | master reset | 40 | PC8 |
| 2 | SDIO 3 | 42 | PA19 |
| 3 | SDIO 2 | 44 | PC19 |
| 4 | SDIO 1 | 46 | PC17 |
| 5 | SDIO 0 | 48 | PC15 |
| 6 | SCLK | 50 | PC13 |
| 7 | CS | 52 | PB21 |
| 8 | DIN P0 | 45 | PC18 |
| 9 | DIN P1 | 34 | PC2 |
| 10 | DIN P2 | 41 | PC9 |
| 11 | DIN P3 | 39 | PC7 |
| 12 | IO update | 37 | PC5 |
If we want to lock the cavity and be in resonance with both cavity lock and MBR + 80. We need to set signal generator for the lock to be 17.87 MHz
Program for Arduino Due
We use two-level modulation - no RU/RD
write_CSR(0xf0); // we are going to use all for channels => F0
write_FR1(0xd0,0x00,0x00); // [14:12]-profile pin configuration xxx doesn't matter for tis setting,
// [11, 10] -> 00 no RURD; [9:8]-> 00 2 level modulation
write_FR2(0x00,0xc0); // make the DDS the master for synchronization
write_CFR(0x40, 0x03, 0x00); // [23:22] -> 01 amplitude modulation, [14]->0 linear sweep disable,[9:8]-> 1 full amplitude scale, table 5;
write_ACR_1(0xb8,0xc0,0x00); // we use modulation between two levels. This function sets upper limit. We adjusted it to be a bit lower then a possible maximum,
// since on full power the output oscillates a lot (one forth of the full range)
set_frequency(10e6); // address 0x04, set reference signal, initial frequency set in Hz
set_phase(0); // address 0x05, set phase from 0 to 2, where 2 correponds to 2pi
write_ACR(0x01, 0xd8, 0x00); //address 0x06, 0x3af 100% modulation, sets lowest power.
//set proper frequencies:
write_CSR(0x20); // choose channel 1, optical pump, frequency 105 MHz
set_frequency(115e6); // set optical pumpp freq
write_CSR(0x40); // channel 2, violet side pump, frequency 115 MHz
set_frequency(115e6); // MBR spectroscopy
write_CSR(0x10); // channel 0, orange side toptica local oscillator frequency 86 MHz
write_ACR(0x00,0x10,0x10);
set_frequency(105e6); // toptica pump