关于CP2112的IIC上位机HidSmbus Example的一些资料
HidSmbus Example 是 Silicon Labs 为 CP2112(USB 转 SMBus I2C 桥接芯片)提供的官方
图形化调试工具,用于无需编写代码即可连接、配置 CP2112 并对挂载的 I2C SMBus 从设备
进行读写操作 。
核心使用流程
1硬件连接:将 CP2112 开发板通过 USB 连接 PC,将其 SDA SCL GND 引脚正确对接目标 I2C
从设备(注意电平匹配,通常需 3.3V 供电及上拉电阻)。
2 软件启动:安装 Silicon Labs CP2112 SDK 后,运行 HidSmbusExample.exe(Windows 路径
通常为 ...\SiLabs\MCU\CP2112_SDK\Software\HidSmbusExample\Windows\)。
3 设备连接:点击 Connect 按钮识别 CP2112,状态栏显示连接成功。
4 参数配置(可选):在 Configuration 页签设置 SMBus 时钟频率(如 100kHz)、超时时间等,
点击 Set 应用并验证返回 HID_SMBUS_SUCCESS。
5 数据读写:切换至 Data Transfer 页签,选择读写模式填入从机地址与数据,点击对应请求
按钮执行。
关键操作详解(Data Transfer 页签)
6 写入操作 (Write Request): Slave Address:填入从机 7 位地址(**忽略
IIC 读写位**)左移 1 位后的 8 位写地址(例如 7 位地址 0x50 对应写入地址 0xA0)。
Data to Write:依次填入寄存器地址字节 + 实际数据字节。若需向寄存器 0x80 写入 0x03,
则输入 80 03;若寄存器地址为 2 字节(如 0x1080),则输入 10 80 03 。 点
击 Write Request,底部状态栏确认传输完成。(注意:写入寄存器 0x80 的数据诸如:0x03 0x1f
0x2a 0x5e 需要这样填 DATA: 80 03 1F 2A 5E.这样之后,eeprom 里面地址为 80 81 82 83 分
别对应的数据就是 03 1F 2A 5E ,也就是地址只需填写一次后面的数据会自加新地址+1).
7 读取操作 (Read Request Address Read Request): Slave Address:填
入从机读地址(7 位地址左移 1 位 +1,例如 0xA1)。
(注意:这里在我使用时比如设备的 7 位地址为 1010 000 =0x50,左移 1(<<1) 位=0xA0,但不
需要加 1 也可以,所有的设备地址无论读写都可以使用 0xA0)
Address Command:填入要读取的寄存器起始地址。 Number of Bytes:设定
读取长度。 点击 Read Request,数据将显示在接收缓冲区 。
(注意:我这里是需要点 Force read response 在点 get read response 才可以读取到数据的,
不排除我的 EEPROM 是损坏的可能)
8 注意事项
a 地址格式:软件中所有地址均按 8 位格式输入(已包含读写位),切勿直接填入 7 位地址。
数据顺序:写操作时,“数据框”内需按先寄存器指针、后数据内容的顺序连续填写十六进制字
节,中间用空格分隔或直接连写(视软件版本提示而定)。
b 驱动依赖:CP2112 为标准 HID 设备,Windows Mac 通常免驱,若无法连接请检查 USB 线
缆是否支持数据传输或重新插拔。 Mac 兼容性:旧版 macOS 工具可能存在崩溃
问题,建议使用最新 SDK 或确认系统兼容性 。 如需编程调用,
可 参 考 SDK 目 录 下 的 HidSmbus.lib 及 示 例 代 码 ( C C++ ), 通 过 API 函 数 ( 如
HidSmbus_WriteRequest)实现自动化控制 。 文章摘取自
百度,个人只负责了部分标注
