EMK850+ 低功耗分析仪 · 串口驱动 + MCP 服务器

逆向英加 EMK850+ 低功耗分析仪串口协议,提供 Python 命令行工具与 MCP 服务器(Streamable HTTP + REST),实现 µA/µW 级功耗自动采集与可编程电源控制,打通 AI 自动化低功耗优化闭环。

EMK850+ 实物图

项目亮点

原厂 EMK850+ 低功耗分析仪存在极大的自动化使用局限,设备仅提供 Windows 可视化操作界面,无官方开放 API 接口,无法对接脚本、程序、AI 自动化平台,不能实现功耗测试、设备控制的自动化闭环操作,极大限制了设备在批量测试、智能调试、低功耗优化迭代场景的应用。

针对以上痛点,本项目完成协议逆向与功能优化升级,完美适配自动化场景:

快速上手

命令行读取功耗

uv sync
python emk850_analyzer.py power COM19
电压: 4.202 V   电流: 6.940 uA   功耗: 29.20 uW

启动服务(REST + MCP)

python emk850_mcp_server.py --port COM19 --http 37749

启动后同一进程同时提供 REST 接口MCP 服务器 两套接入方式:

REST 端点:

端点 方法 说明
/power?sample_s=0.8 GET 读功耗(V/I/P,自动 启动→采样→停止)
/output POST 设输出:{"state":"on","voltage":3.3} 设 3.3V,{"state":"off"} 设 0mV
/clear POST 空载清零,需 {"confirm":true}
/version · /config · /health GET 版本 / 校准参数 / 服务与设备状态
/start · /stop POST 手动开始 / 停止采样

MCP 工具(REST 路由自动转换,工具名 = 路由 operationId):

工具 参数 说明
read_power settle_s, sample_s 读功耗(V/I/P)
read_version 读设备版本
read_config 读校准配置
start_sampling / stop_sampling 手动开始 / 停止采样
set_output state, voltage 设输出电压 / 切断供电(掉电重启休眠芯片)
clear_counter confirm, wait_s 空载清零(需 confirm=true
get_port_info / open_port / close_port port 串口管理
health 服务与设备状态

用 MCP 客户端连接

MCP 端点:http://localhost:37749/mcp

典型实战:唤醒休眠 MCU

低功耗场景下 MCU 进入深度休眠后调试器断连,可用仪器断电复位唤醒:

  1. 关闭输出:POST /output {"state":"off"}
  2. 等待电容放电 10~15 秒
  3. 恢复 3.3V 输出:POST /output {"state":"on","voltage":3.3}
  4. 芯片复位,调试器可重新连接

注:"off" 通过设 0mV 间接拉低输出(协议无直接关断命令)。实测 0mV 时测量端约 2.6V,是否真正断电请用万用表确认,别只靠这个判断芯片已掉电。

协议关键信息

完整命令表、数据换算公式详见:docs/EMK850_PROTOCOL.md

注意事项

免责声明

本项目协议通过逆向原厂上位机实现,与英加厂商无关、未获官方认可。固件或型号升级可能导致不兼容,使用风险自负。


项目地址:https://github.com/createskyblue/Yingjia_EMK850_low-power_analyzer_MCP