CN / EN
CN / EN

Ask a New Question

Design Support

If you need one-on-one support for confidential technical issues with your project, please click on "Contact Us" below.

【GH3011 + EC800M + QuecPython】I2C 已 ACK 但 Chip ID 读不到 0x04,求寄存器手册与 HBD 算法 SDK GH3011

131***415

2026-05-13 11:49

各位 Goodix 师好,

我们在儿童情绪监测手环项目里选用了 GH3011,做完打样后 I2C 通路一直无法稳定起算 BPM,

卡在了"扫得到设备但确认不了 Chip ID、写不了正确的 PPG 初始化序列"这一步。希望寻求贵司

寄存器手册和 HBD 算法 SDK 的支持,详细信息按官方模板列在下面。

#### 1. 软件版本

| 项目 | 版本 |

|-------------------|-----------------------------------------|

| MCU 固件框架 | QuecPython(基于 移远 EC800M 模组) |

| QuecPython 版本 | 【EC800MCNLE_QPY_V0008】 |

| 主机固件版本 | EmoBand v1.1.0(自研) |

| 上位机 / IDE | Thonny 4.x via USB CDC REPL |

| 已参考资料 | GH3011 公开 brief / 部分网络上残缺的 datasheet 片段 |

| 已申请 NDA 文档 | 暂无(这是申请重点) |

#### 2. 硬件环境信息

- **MCU**:移远 EC800M-CN(Cat.1 4G 模组),裸 PCB(非 EVB)

- **PPG 传感器**:GH3011(贴片到客制化 0.96" 手环主板)

- **I2C 总线**

- SCL → EC800M `pin67`(硬件 I2C0 SCL)

- SDA → EC800M `pin66`(硬件 I2C0 SDA)

- 上拉电阻:4.7 kΩ → VDDIO(1.8 V 域)

- **GH3011 配置脚**

- `IIC_EN (pin 2)` = **NC 悬空**(已用万用表确认不与 GND 短接)

- `RSTN (pin ?)` → EC800M `GPIO7`(MAIN_RTS)

- `INT (pin ?)` → EC800M `GPIO6`(MAIN_CTS)

- **电源**

- `VDD_LED ≈ 3.3 V`(实测)

- `VDDIO ≈ 1.8 V`(实测)

- **结构**:传感器表面已加滤光片 + 透光窗口,背面 LED 与 PD 间黑胶圈隔光

- **原理图局部**:附件已上传(GH3011 周边 + I2C 上拉部分截图)

#### 3. 问题描述

按以下顺序排查,结果如下:

1. **I2C 总线扫描**(QuecPython 5-参数 API,`i2c.read(addr, reg_buf, 1, data_buf, 1, 0)`):

- I2C0 扫描到地址 **`0x36`** 有 ACK,其余地址无响应

- reg 0x00 读到 `【0x??】`,不是预期的 `0x04`

- 写回测试:reg 0x10 写 `0xA5` 后回读 `【0x??】`**写回不成功** / **写回成功**(二选一)

2. **多候选 Chip ID 寄存器尝试**(0x00 / 0x01 / 0x7F / 0x80 / 0xFC / 0xFD / 0xFE / 0xFF):

- 全部读出值见下方代码块,未找到能稳定标识 GH3011 的字段

3. **RSTN 复位时序**:已按 datasheet 推荐 `VCC 稳定 ≥4ms → RSTN 低 20ms → 高 100ms`

4. **IIC_EN**:上电前 → 悬空 → 上电后再用万用表确认对 GND 不通

也就是说:**电气连接是通的,但因为缺寄存器手册,无法确认扫到的 0x36 就是 GH3011,

更无法进入 PPG 工作模式去拿 BPM。**

#### 4. 复现步骤(含日志)

把附件里 `validate_hr.py`(5-参数 I2C API 版本)放到模组 `/usr/`

Thonny 里 `F5` 运行,得到的典型日志如下(节选):

```

==================================================

GH3011 心率芯片验证(5-参数 QuecPython I2C API)

==================================================

[RSTN] ✅ 复位序列已完成(GPIO7 低 20ms / 高 100ms)

[I2C] pins.py 配置: BUS=1 ADDR=0x28

[I2C] 扫描 I2C1 总线(0x08~0x77)...

[+] 0x36 reg0x00=0x【??】

[I2C] 扫描 I2C0 总线(0x08~0x77)...

❌ 总线上无设备响应

[TGT] I2C1 地址 0x36

[CID] 尝试多个候选 Chip ID 寄存器位置:

reg 0x00 = 0x【??】

reg 0x01 = 0x【??】

reg 0x7F = 0x【??】

reg 0x80 = 0x【??】

reg 0xFC = 0x【??】

reg 0xFD = 0x【??】

reg 0xFE = 0x【??】

reg 0xFF = 0x【??】

[WB] reg 0x10 写前=0x【??】 写后=0x【??】

```

> 论坛贴里请把【??】替换成实际跑出来的值,越具体 FAE 越容易判断。

#### 5. 期望获得的帮助

希望贵司能在 **NDA 框架下**提供以下三类资料中的任一项(最好全套):

1. **GH3011 Register Manual / 完整 Datasheet**

- 寄存器映射、真实 Chip ID 寄存器位置和期望值

- PPG / LED / 采样率 / FIFO 配置位

2. **GH3011 Reference Driver C SDK**

- 含 HBD(心率算法引擎)调用、佩戴检测、信号质量评估

- 任何 Cortex-M 平台示例都可以,我们会移植到 QuecPython

3. **GH3011 硬件参考设计 Application Note**

- 推荐光学叠层、LED 走线、滤光片选型、PCB 布局

**项目背景**(便于评估优先级):

- 项目阶段:rev 1.1 样机已打样,2026 Q3 进入小批量试产

- 预估采购量:首年 【20K】 ~ 【50K】 颗,三年累计 【150K+】 颗

- 应用:儿童(4–14 岁)情绪监测手环,端侧 BPM + 云端 HRV/音频特征做情绪分类

- 已有方案:EC800M(QuecPython)+ GH3011 + ST7735S + 4G

---

0 Favorites

0 Likes

1 Answers

che****com

Goodix Employee
2026-05-14 10:07

您好,

可以参考如下说明进行IIC通信移植:

可按照如下步骤,调通主控平台与GH30x模组间的通信功能:

1. 根据平台实现精准的μs级延时函数。

GH30x的上电时序(如图 2‑2所示)明确地规定了上电后需要完成的初始化工作及精准的μs级延时。在gh30x_example_port.c文件中,用户需实现精准的μs级延时函数hal_gh30x_delay_us(),具体实现方法可能因平台差异稍有不同。

2. 设置IIC通信。

(1) 设置IIC管脚:将IIC_EN管脚配置为IIC,并设置内部上拉(若外部硬件增加了上拉,可无需使用内部上拉)、IIC通信速率以及IIC数据传输方式等。

(2) 实现IIC读写函数:在gh30x_example_port.c文件中,实现IIC写函数hal_gh30x_i2c_write()IIC读函数hal_gh30x_i2c_read()IIC读函数需先利用IIC写函数写入一个数据,再进行读操作。对GH30x的所有操作均通过IIC读写函数实现,因此,需保证这两个函数的准确性。

(3) 验证IIC通信:在应用工程中调用gh30x_module_init()函数,并利用UART打印信息验证IIC通信是否正常。

- 如果IIC读写函数不正常或者IIC管脚设置不正确,UART会打印出类似“gh30x init error[*]”的Log信息。

- 如果IIC读写正常并且IIC管脚设置正确,UART会打印出类似“gh30x module init ok”的Log信息。

- 直接读取寄存器0x0028的值,判断是否为0x31。若寄存器值为0x31,则表示IIC通信正常。

0 Comments

0 Likes

0 Favorites

Your comment

You can answer questions after logging in, please or register

Your Voice Matters
Contact Sales

Scan to follow

Open WeChat, use "Scan" to follow.