"主题中讨论的其他器件: ADS1015"
工具/软件:
您好、团队、
Harman 目前正在将 ADS1015-Q1集成到我们的软件系统中、并遇到需要您专业知识才能解决的问题。
以下是详细信息:
- 默认寄存器值不匹配:从器件读取的默认寄存器值与数据表中列出的规格不一致。
- 写入/读取不一致:向寄存器写入值后、仅转换寄存器更新。 但是、从寄存器读回的值与我们写入的值不匹配。
T Ü V S Ü D I²C 已验证、没有明显的信号完整性问题。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
您好、团队、
Harman 目前正在将 ADS1015-Q1集成到我们的软件系统中、并遇到需要您专业知识才能解决的问题。
以下是详细信息:
T Ü V S Ü D I²C 已验证、没有明显的信号完整性问题。
你好 Joel、
您能否确认 ADDR 引脚已上拉至 VDD? [/报价]ADDR 引脚上拉到 VDD、如下所示。
以下四个屏幕截图发生在开机后。
从器件读取的寄存器值与 数据表中列出的复位默认值不一致(除外 转换寄存器)。
此问题的可能原因是什么?
图1 (通用呼叫+读取转换寄存器=0000h、复位默认值=0000h)
图2 (读取配置寄存器= 0100h、复位默认值= 8583h)
图3 (读取 Lo_thresh 寄存器=0000h、复位默认值=8000h)
图4 (读取 Hi_thresh 寄存器=1B59h、复位默认值= 7FFFh)
您好 Alan、
我想我发现了这个问题。 默认情况下、ADS1015会上电至断电模式以保持功耗、并且不会主动执行任何转换。 要在单次模式下执行转换、您必须写入 Config 寄存器、并将 OS 位设置为高电平。 器件上电并启动转换后、将再次上电。 数据表的第7.4.2.1节说明了此操作。
上面的还说明了为什么在第二张图片中从 Config 寄存器读取时发送了读回0x10、这表示 MODE 位为高电平、并且该器件处于单次模式或断电状态。 我认为这是器件处于断电模式时的预期结果、但默认值似乎为0x8583。 我可以确认在通用广播复位后预期行为是什么。
阈值寄存器更难解释。 值得注意的是、由于 Lo_threshold MSB 为0且 Hi_threshold MSB 为1、该器件看起来已启用 ALERT/RDY 引脚的转换就绪功能。
如前所述、观察通用广播+复位是否导致器件的启动配置出现任何问题可能会很有趣。 是否可以按相同的顺序删除此项?
另一个建议是尝试发送完全停止条件、然后发送完全启动条件、而不是在地址指针寄存器帧发送后出现重新启动条件。 根据数据表、它应该支持停止条件或重复启动条件、但值得一试。 下面的句子给出了该指示、但时序图仅显示了停止条件、而不是重启条件。
"对 Address Pointer 寄存器进行写入后、目标进行响应、控制器发出停止或重复启动条件。"
针对寄存器写入的类似建议。 发送地址指针寄存器帧后、能否发送停止条件、后跟启动条件? 根据数据表、停止条件似乎是可选的、寄存器写入可能会在没有停止条件的情况下继续。 这可通过添加停止条件、然后发出启动条件并从寄存器读取来验证。
"要更改读取的寄存器、必须向 P[1:0]写入一个新值。 为了将新值写入 P[1:0]、控制器在 R/W 位为低电平时发出目标地址字节、后跟 Address Pointer 寄存器字节。 无需发送额外的数据、控制器可以发出停止条件。 控制器现在可以发出启动条件并在 R/W 位为高电平时发送目标地址字节以开始读取。"
此致、
Joel
你好 Joel、
请允许我更新 Harman‘s 回复:
我们已经确定了问题 子器件的 I2C 通信 (下图所示为拓扑)。
当 I2C 总线的 PMIC 分支断开时、ADC 正常通信、并且可以无错误地读取/写入。
但是、两个子器件的地址不会发生冲突: ADC 使用0x49、而 PMIC 使用0x48 。 问题的根本原因仍不清楚。
您能否就此问题分享任何见解或建议? 感谢您的支持。