本文介绍调试其 I2C 固件或驱动程序软件时硬件供应商和驱动程序开发人员可能会遇到的常见问题。
如果主机或设备的 ACPI 源语言(ASL)代码无效,则 I2C 控制器驱动程序加载但设备不会出现在 Windows 设备管理器中的情况。 若要确定问题是否由于无法匹配 INF,请参阅setupapi.dev.log文件。 另一个指示问题是由于不匹配导致的是 Windows 设备管理器中的错误代码 10。
若要解决此问题,请确保:
- _CID值必须 PNP0C50。
- BIOS 中的 I2C 控制器 和设备 特征 必须准确。
- BIOS 中的 HID 描述符地址(设备)必须准确。
- GPIO 中断必须正确标识并标记为 独占、级别、ActiveLow。
有关更多详细信息,请参阅 HID I2C 协议规范的第 13 部分。
如果主机未能从设备检索正确的报告描述符,请确保:
- 在检索报表描述符之前,枚举序列必须完成运行。
- HID 描述符中的字节偏移量 4 和 6 必须有效。 (特别注意长度。
如果从设备检索到正确的报告描述符已验证,但仍存在相关问题,请确保:
- wReportDescLength 字段准确。
- HID 报表的格式正确。 (若要验证结果,请测试 USB 等备用总线。
本部分重点介绍硬件供应商和驱动程序开发人员经常提出的问题。
- Windows 8 收件箱 HIDI2C 驱动程序是否适用于通过 I2C 连接的 HID 设备?
- 可以,前提是固件符合此 HID I2C 协议规范
- 设备(如键盘)和 OS 驱动程序之间通信的数据结构是什么?
- 根据 HID 标准,数据结构采用由报表描述符定义的输入报表的形式。 设备本身而不是 HIDI2C 定义输入报告结构。 按照 HID I2C 规范提供描述符和相应的输入报告,按 USB 键盘报告键盘使用情况
- 如果同时缓冲多个报表,设备应该怎么办?
- 如果缓冲了多个报告,设备应保持断言中断,直到读取最后一个报告(已确认)。 只要在给定的读取操作后报告更多数据,设备应使用级别触发器 GPIO 设置保留断言行。
- 说我们应该获得相同的 DevicePath 进行 USB 和 I2C 连接是否准确?
- 否,USB 和 I2C 之间的设备路径 不同 。 差异很小,但值得注意。 有关详细信息,请参阅 Windows 驱动程序工具包(WDK)中的“硬件 ID”部分。
- 若要使 HIDI2C 设备使用 Windows 收件箱 HIDI2C 驱动程序,需要哪些 I2C 传输限制?
- 所有 I2C 控制器都需要支持高达 4 KB 的传输。 最大 HID 报告描述符长度为 4 KB。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/30738.html