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.

[参考译文] TMP126-Q1:SPI 总线上有多个器件存在问题

Guru**** 2502065 points
Other Parts Discussed in Thread: TMP126-Q1, TMP126

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1556756/tmp126-q1-issues-with-multiple-devices-on-spi-bus

器件型号:TMP126-Q1
主题中讨论的其他器件: TMP126TMP127

工具/软件:

我将在电路板上使用 TMP126-Q1。 我有一个数字连接器、可从 Raspberry Pi 4B 连接 SPI 总线 (CLK、MISO、MOSI、CS)。

插入 1 块电路板后、我能够对传感器进行配置和通信。 我可以轮询 ID 寄存器以确保通信正常、然后读取温度数据。

当我插入另一个电路板数字连接器时、这一切都会中断。 我最初使用了 10k 隔离电阻器、但我尝试用 0 Ω 电阻器替换它。 这使我能够更快地运行(在 6MHz 下测试、10MHz 出现故障)、而不是使用 10k 时的 500kHz。 但连接 2 块电路板后、我无法再从芯片返回数据。

如果我直接在 SIO 线路上进行探测、我可以看到命令字写入正常、但输出字节不存在、或者脉冲在上升时钟沿和较低电压下非常窄。 这看起来像是 SPI 线路中正在加载的内容? 我只针对与之通信的温度传感器将 CS 拉低、并依次轮询它们的 ID。 对于看起来像是尝试输出的寄存器、我可以看到值为 0x2126、这是正确的、但由于脉冲实际上不存在、因此它仍然被读取为 0。 我在 RasPi 和我的板之间使用缓冲区。 我的电路板在 2.4V 下运行(缓冲器从 3.3V 降至 2.4V)。

有什么想法为什么这不起作用? 我已经确认我仍然可以与同一 SPI 总线上的其他器件通信、但温度传感器不喜欢连接其他设备。 如果拔下其中一个数字连接器、则可以成功地与另一个温度传感器通信、反之亦然。

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想会更清楚。 RasPi 通过其 40 针接头插入“主板“。 我使用的 SPI 和 GPIO 引脚通过该主板上的缓冲器放置。 然后、对于每个带有温度传感器的电路板、都有一个从这个主板连接到温度板的数字连接器、还有一个缓冲器将 3.3V 电压转换为 2.4V 电压。 因此总共有 2 个缓冲器和电压变化。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉这么晚才回复;我们进行了内部变更、导致传感器组织错过了新的 E2E 帖子。 正常情况下期望在 24 小时内回复 E2E 帖子。

    简单答案是 TMP126 需要 10k Ω 电阻。 TMP126 的 SIO 在其 SIO/SIO VOH 规范中仅具有–3mA 输出驱动能力 VOL。 如果没有电阻器来限制来自 PICO 的电流、则无法赢得 PICO 输出。 实际上、在 0 欧姆的条件下、TMP126 的 SIO 引脚可能会损坏(称为 EOS)。  

    我建议改用 TMP127、它可以在单个 POCI 引脚上传输温度数据、而不会产生额外的开销。

    谢谢、