信号源与射频
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 驱动底层通过 VSerialPort(serial.Serial 子类)通信,典型参数:
# 串口参数(驱动默认)
port = "/dev/ttyUSB0"
baudrate = 115200
timeout = 0.1
使用 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)
# ... 执行探测序列 ...
参考:参见离子阱实验 → 量子态检测
频率精度
Valon 5009 内部参考频率稳定性有限。对于高精度光谱或量子操控实验,建议:
- 外接 10 MHz 铷钟参考信号
- 或使用 HighFinesse 波长计 / 频谱分析仪实时监测输出频率
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.
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() | 一次性更新所有通道 |
同步更新
AD9959 支持同步更新模式:先对 4 个通道分别调用 set_* 方法(缓冲区),再调用 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 信号源扩展内容 ===
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() | 一次性更新所有通道 |
同步更新
AD9959 支持同步更新模式:先对 4 个通道分别调用 set_* 方法(缓冲区),再调用 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)
支持型号
| 驱动类 | 适用型号 |
|---|
Agilent33500 | 33500B、33510B、33520B、33522B |
Agilent33220A | 33220A、33250A |
RigolDG1000 | DG1022、DG1032 |
RigolDG1020Z | DG1022Z、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::..."},
}