信号源与射频

Valon 5009、DDS AD9959、Agilent、Rigol 等频率合成器与射频仪器驱动。

概述

Quatm 支持从通用函数发生器到矢量网络分析仪的多种射频仪器,涵盖频率合成、任意波形和 S 参数测量。


Valon 5009 双通道微波频率合成器

概述

Valon 5009 是一款双通道频率合成器(23.5 MHz – 6 GHz),通过串口控制。Quatm 通过 valon 封装,支持独立设置两路输出频率和功率。

⚙️ Valon 5009 Dual RF Synthesizer
通信串口 (RS232)
频率范围23.5 MHz – 6 GHz
通道数2
输出功率-30 ~ +10 dBm
频率分辨率0.1 Hz
广泛应用于离子阱实验中驱动微波跃迁(如 Ba⁺ 9.9 GHz 超精细跃迁)或作为 AOM 驱动源。
驱动模块:valon

初始化

from quatm.drivers.valon.valon_quatm import valon

# 连接 Valon(默认 /dev/ttyUSB0)
valon = valon(port="/dev/ttyUSB0")

# 设置通道 1 频率为 500 MHz
valon.set_frequency(freq=500e6, source=1)

# 设置通道 2 频率为 9.925 GHz(需外部倍频)
valon.set_frequency(freq=9.925e9, source=2)

# 发送原始指令
valon.sendRaw("LOCK 1 ON\r\n")

关键方法

方法说明
set_frequency(freq, source)设置通道 1 或 2 输出频率 (Hz)
sendCommand(source, command, value)发送格式化 SCPI 命令
sendRaw(cmd)发送原始字符串命令

串口通信

Valon 驱动底层通过 VSerialPortserial.Serial 子类)通信,典型参数:

# 串口参数(驱动默认)
port = "/dev/ttyUSB0"
baudrate = 115200
timeout = 0.1
🔬 Ba⁺ 微波跃迁扫描 Ba⁺

使用 Valon 5009 驱动 9.925 GHz 超精细跃迁,扫描频率测量 Rabi 振荡。

关键参数
起始频率9.924 GHz
终止频率9.926 GHz
步进10 kHz
每点重复100 次
# 实验片段:频率扫描
import numpy as np
frequencies = np.arange(9.924e9, 9.926e9, 10e3)
for f in frequencies:
    valon.set_frequency(freq=f, source=2)
    # ... 执行探测序列 ...

class quatm.drivers.valon.valon_prog.Valon_Standalone(name='Valon')

Bases: object

  • Standalone driver for the Valon frequency generator. Commands can be sent via the Commandhub and are processed in parallel to the experiment, thereby the experiment is not delayed by the Valon.

    • run()
  • function quatm.drivers.valon.valon_prog.run()


DDS AD9959 四通道直接数字合成

概述

AD9959 驱动封装 AD9959 评估板,通过 SPI 总线控制 4 个独立 DDS 通道,实现精密频率、幅度和相位控制。

⚙️ AD9959 评估板 4 通道 DDS
通信SPI
通道数4
频率分辨率32-bit (0.12 Hz @ 500 MHz 时钟)
相位分辨率14-bit
幅度控制10-bit DAC
广泛应用于冷原子/离子实验中的 AOM 驱动、边带生成和相干操控。
驱动模块:AD9959

初始化

from quatm.drivers.dds import AD9959

dds = AD9959()

# 配置通道 0 — 冷却光 AOM
dds.set_frequency(0, 80e6)       # 80 MHz
dds.set_amplitude(0, 0.5)        # 50% 幅度
dds.set_phase(0, 0)              # 0° 相位

# 配置通道 1 — 再泵浦光 AOM(+0.1 MHz 差频)
dds.set_frequency(1, 80.1e6)
dds.set_amplitude(1, 0.3)

关键方法

方法说明
set_frequency(ch, freq_hz)设置通道频率 (Hz)
set_amplitude(ch, amp)设置通道幅度 (0–1 分数)
set_phase(ch, phase_deg)设置通道相位 (°)
update_all()一次性更新所有通道

设备配置

"aom_dds": {
    "type": "local",
    "module": "drivers.DDS",
    "class": "AD9959",
}

dds.set_amplitude(1, 0.5)


## 典型应用

| 应用 | 配置 |
|------|------|
| AOM 驱动 | 单通道固定频率 |
| 拉曼跃迁 | 双通道差频锁定 |
| 阱驱动 | 多通道相位控制 |
| 边带冷却 | 频率调制 |

## 替代驱动

还提供基于串口(AT 命令)接口的 AD9959 板替代驱动:

```python
from quatm.drivers.dds.alibaba import AD9959Board

Rigol DG1020Z 双通道函数发生器

DG1020Z

⚙️ DG1020Z Rigol 函数发生器
通信VISA (USB/LAN)
通道数2
频率范围1 µHz – 25 MHz
幅度1 mVpp – 10 Vpp
采样率200 MSa/s
用于生成 AOM/EOM 驱动信号、调制波形和自定义任意波形。
驱动模块:RigolDG1020Z
from quatm.drivers.AWG.specific import RigolDG1020Z
fg = RigolDG1020Z(addr="USB0::...")
fg.set_frequency(80e6)
fg.set_amplitude(1.0)       # 1.0 Vpp
fg.enable_output(channel=1, enable=True)
fg.set_function(channel=1, function="SIN")

=== Agilent 信号源扩展内容 ===

  • run()

DDS AD9959

概述

AD9959 驱动封装 AD9959 评估板,通过 SPI 总线控制 4 个独立 DDS 通道,实现精密频率、幅度和相位控制。

⚙️ AD9959 评估板 4 通道 DDS
通信SPI
通道数4
频率分辨率32-bit (0.12 Hz @ 500 MHz 时钟)
相位分辨率14-bit
幅度控制10-bit DAC
广泛应用于冷原子/离子实验中的 AOM 驱动、边带生成和相干操控。
驱动模块:AD9959

初始化


dds = AD9959()

# 配置通道 0 — 冷却光 AOM
dds.set_frequency(0, 80e6)       # 80 MHz
dds.set_amplitude(0, 0.5)        # 50% 幅度
dds.set_phase(0, 0)              # 0° 相位

# 配置通道 1 — 再泵浦光 AOM(+0.1 MHz 差频)
dds.set_frequency(1, 80.1e6)
dds.set_amplitude(1, 0.3)

关键方法

方法说明
set_frequency(ch, freq_hz)设置通道频率 (Hz)
set_amplitude(ch, amp)设置通道幅度 (0–1 分数)
set_phase(ch, phase_deg)设置通道相位 (°)
update_all()一次性更新所有通道

设备配置

"aom_dds": {
    "type": "local",
    "module": "drivers.DDS",
    "class": "AD9959",
}

dds.set_amplitude(1, 0.5)


## 典型应用

| 应用 | 配置 |
|------|------|
| AOM 驱动 | 单通道固定频率 |
| 拉曼跃迁 | 双通道差频锁定 |
| 阱驱动 | 多通道相位控制 |
| 边带冷却 | 频率调制 |

## 替代驱动

还提供基于串口(AT 命令)接口的 AD9959 板替代驱动:

```python

Rigol DG1020Z

DG1020Z 双通道函数/任意波形发生器

⚙️ DG1020Z Rigol 函数发生器
通信VISA (USB/LAN)
通道数2
频率范围1 µHz – 25 MHz
幅度1 mVpp – 10 Vpp
采样率200 MSa/s
用于生成 AOM/EOM 驱动信号、调制波形和自定义任意波形。
驱动模块:RigolDG1020Z
from quatm.drivers.awg.specific import RigolDG1020Z

fg = RigolDG1020Z(addr="USB0::0x1AB1::0x0642::DG1ZA123456789::INSTR")
fg.set_frequency(80e6)     # 80 MHz
fg.set_amplitude(1.0)      # 1.0 Vpp
fg.enable_output(channel=1, enable=True)
fg.set_function(channel=1, function="SIN")

DP1116A 可编程直流电源

⚙️ DP1116A Rigol 直流电源
通信VISA
输出16V/10A 或 32V/5A
通道数1
分辨率1 mV / 1 mA
用于线圈电流控制、激光二极管驱动和电路板供电。
驱动模块:DP1116A
from quatm.drivers.rigol.power_supply import DP1116A

ps = DP1116A(addr="USB0::0x1AB1::0x0E11::DP1A123456789::INSTR")
ps.set_voltage(12.0)       # 12V
dc.set_current(0.5)        # 500 mA 限流
ps.enable_output(True)

示波器

Rigol DS 系列示波器兼容 Tektronix SCPI 指令集,通过 ITektronixScope 驱动控制:

from quatm.drivers.tektronix.base import ITektronixScope

scope = ITektronixScope(addr="USB0::0x1AB1::0x04CE::DS123456789::INSTR", nchannels=4)
scope.set_timebase(scale=1e-6)     # 1 µs/div
scope.set_vertical(channel=1, scale=0.5)  # 0.5 V/div
waveform = scope.acquire(channel=1)

关键方法(信号发生器)


Agilent / Keysight 33500 系列任意波形发生器

⚙️ 33500B / 33220A / 33250A Agilent/Keysight
通信VISA (USB/LAN/GPIB)
通道数1–2
频率最高 120 MHz (33500B)
分辨率14-bit
采样率250 MSa/s
波形正弦/方波/锯齿/脉冲/噪声/ARB
实验室标准信号源,用于 AOM 驱动、调制信号和参考时钟生成。
驱动模块:Agilent33500 / Agilent33220A
from quatm.drivers.awg.specific import Agilent33500

awg = Agilent33500(addr="USB0::0x0957::0x2C07::MY52801234::INSTR")

# 配置 80 MHz 正弦波
awg.set_function(channel=1, function="SIN")
awg.set_frequency(80e6)
awg.set_amplitude(1.0)      # 1 Vpp
awg.enable_output(channel=1, enable=True)

# 脉冲串模式 — 生成 N 个周期后自动关闭
awg.enable_burst(channel=1, ncycles=100)

支持型号

驱动类适用型号
Agilent3350033500B、33510B、33520B、33522B
Agilent33220A33220A、33250A
RigolDG1000DG1022、DG1032
RigolDG1020ZDG1022Z、DG1032Z

Instek AFG2000 / AFG2225 双通道

⚙️ AFG-2225 / AFG-2100 Instek
通信VISA
通道数1 (AFG2000) / 2 (AFG2225)
频率最高 25 MHz
采样率200 MSa/s
性价比高的双通道任意波形发生器。
驱动模块:InstekAFG2225 / InstekAFG2000
from quatm.drivers.awg.specific import InstekAFG2225

awg = InstekAFG2225(addr="USB0::...")
awg.set_frequency(10e6)
awg.set_amplitude(2.0)
awg.enable_output(channel=1, enable=True)
awg.enable_output(channel=2, enable=True)

Tektronix AFG1000 任意波形发生器

⚙️ AFG1022 / AFG1062 Tektronix
通信VISA
通道数2
频率最高 60 MHz (AFG1062)
采样率300 MSa/s
任意波形64 MB 存储
双通道高性能 AWG,支持大容量自定义波形。
驱动模块:TektronixAFG1000
from quatm.drivers.awg.specific import TektronixAFG1000

awg = TektronixAFG1000(addr="USB0::...")
awg.set_function(channel=1, function="ARB")
# 加载自定义波形...

Tektronix DPO/MSO 系列示波器

⚙️ DPO2000 / MSO4000 系列 Tektronix 示波器
通信VISA
带宽100 MHz – 1 GHz
通道数2–4
采样率最高 5 GS/s
通过 SCPI 自动化波形采集和参数测量。常用于实验调试和脉冲序列验证。
驱动模块:ITektronixScope
from quatm.drivers.tektronix.base import ITektronixScope

scope = ITektronixScope(
    addr="USB0::0x0699::0x0401::C012345::INSTR",
    nchannels=4
)

# 配置触发
scope.set_trigger(source=1, level=0.5, slope="POS")
scope.set_timebase(scale=1e-6)          # 1 µs/div
scope.set_vertical(channel=1, scale=0.1) # 0.1 V/div

# 采集波形
waveform = scope.acquire(channel=1)

Agilent E5071C 矢量网络分析仪

⚙️ E5071C Agilent VNA
通信VISA
频率9 kHz – 20 GHz
端口2–4
功能S 参数、阻抗、史密斯圆图
用于 RF 器件特性表征——滤波器、放大器、天线和传输线的 S 参数测量。
驱动模块:AgilentE5071C
from quatm.drivers.Agilent.vna import AgilentE5071C

vna = AgilentE5071C(addr="TCPIP::192.168.1.100::INSTR")
vna.set_frequency_range(start=1e6, stop=1e9, points=1001)
vna.set_if_bandwidth(100)       # 100 Hz IFBW
vna.set_averaging(count=10)

# 读取 S21 参数
freq, s21 = vna.read_S_parameters(parameter="S21")

PicoVNA 便携式矢量网络分析仪

⚙️ PicoVNA Pico Technology
通信TCP/SCPI (端口 5025)
频率300 kHz – 8.5 GHz
端口2
动态范围

100 dB

紧凑型 USB 控制 VNA,适合实验室桌面 RF 调试。
驱动模块:PicoVNA
from quatm.drivers.PicoTech.vna_scpi import PicoVNA

vna = PicoVNA(addr="localhost")  # 或 IP 地址
vna.set_frequency_range(start=10e6, stop=500e6)
s_params = vna.read_S_parameters(parameter="S21")

通用 SCPI 设备配置

"function_gen": {
    "type": "local",
    "module": "drivers.awg.specific",
    "class": "Agilent33500",
    "arguments": {"addr": "USB0::..."},
}