使用说明
ppk2-mcp
北欧半导体的MCP服务器 功率分析器套件II (PPK2)。提供12个工具,用于直接从Claude Code或Claude Desktop发现、连接、配置和测量电流消耗。
特征
- 发现 USB上的PPK2设备
- 连接 具有自动校准加载功能
- 配置 电源/电流模式和电源电压
- 测量 约100kHz本机采样率下的电流
- 日志 将原始测量值转换为带时间戳的CSV文件
- 检查 在不离开对话的情况下保存日志
需求
- Python 3.10+
- 北欧半导体PPK2硬件
- USB连接到PPK2
快速开始
git clone https://github.com/Ultrahuman-tech/ppk2-mcp.git
cd ppk2-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
然后配置您的MCP客户端(见下文)。
配置
克劳德代码
添加 ~/.claude.json 在...之下 mcpServers:
{
"mcpServers": {
"ppk2": {
"command": "/path/to/ppk2-mcp/.venv/bin/python3",
"args": ["/path/to/ppk2-mcp/ppk2_server.py"],
"type": "stdio"
}
}
}
克劳德桌面
添加 claude_desktop_config.json:
{
"mcpServers": {
"ppk2": {
"command": "/path/to/ppk2-mcp/.venv/bin/python3",
"args": ["/path/to/ppk2-mcp/ppk2_server.py"]
}
}
}
替换 /path/to/ppk2-mcp 使用实际的克隆位置。
工具参考
| 工具 | 说明 |
|---|---|
list_devices |
扫描USB以查找连接的PPK2设备 |
connect |
连接到PPK2并加载校准(返回会话ID) |
disconnect |
断开、停止测量、关闭DUT电源 |
set_mode |
设置操作模式: source (PPK2为DUT供电)或 ampere (外部电源) |
set_voltage |
设置电源电压,单位为mV(仅源模式,800-5000mV) |
power_control |
打开/关闭DUT电源 |
get_session_info |
显示当前会话状态 |
start_measuring |
开始连续电流测量 |
stop_measuring |
停止连续测量 |
measure |
Atomic:启动、收集N秒、停止、保存CSV、返回统计数据 |
list_logs |
列出保存的测量CSV文件 |
get_log |
读取已保存的日志文件(元数据+前N行) |
典型工作流程
list_devices → find PPK2 on USB
connect → get session_id
set_mode "source" → PPK2 supplies power
set_voltage 3300 → 3.3V to DUT
power_control "on" → power up the device
measure 5.0 → capture 5 seconds of current data
disconnect → clean up
日志
原始测量数据保存到 logs/ 将目录转换为带时间戳的CSV文件。每个文件包含:
- 带有元数据(日期、持续时间、模式、电压、样本计数、样本率)的注释标题
- CSV数据列:
sample_idx,current_ua(可选digital数字频道)
例子:
# PPK2 Raw Measurement Log
# Date: 2025-02-18 19:57:00
# Duration: 2.01s
# Mode: source
# Voltage: 3300 mV
# Samples: 200,544
# Sample Rate: 99,773 sps
sample_idx,current_ua
0,1523.45
1,1518.22
...
已知问题
- 重新连接时串行缓冲区损坏:在前一个会话崩溃或中断后,PPK2的串行缓冲区可能包含剩余的二进制测量数据。服务器通过在读取校准数据之前刷新缓冲区来自动处理此问题。
- 元数据解码错误:上游
ppk2-api库可能会因串行缓冲区中的二进制噪声而崩溃。此服务器包含一个内置补丁(latin-1回退),因此不需要手动编辑库。
许可证
麻省理工学院-见 许可证.
