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.

[参考译文] TPS274C65:在菊花链模式下使用 BS 版本

Guru**** 2652575 points

Other Parts Discussed in Thread: TPS274C65

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1556736/tps274c65-use-of-bs-version-in-daisy-chain-mode

器件型号: TPS274C65

工具/软件:

您好:

我考虑 在 24 位模式的 SPI 菊花链中使用两个 TPS274C65BS 器件。 我了解 DSPI 引脚的连接以及器件与主器件之间的 SPI 连接。

但是、我对于从器件(从器件)到主器件的数据传输的发生方式不完全清楚。

从数据表可以看出、TPS274C65BS 通常会在从主器件接收数据(命令)时同时(或在相同的 24 位周期内)发送数据(或响应)。 即数据表中的图 8-13 进行读取操作。

但是、在菊花链中、TPS274C65BS 必须将 SDI 引脚上接收到的数据移动到 SDO、以便传输到下一个器件。 因此、它无法同时发送其数据(或响应)。

TPS274C65 是否在下一个时钟周期发送响应?

这意味着、对于由两个 TPS274C65 器件组成的 24 位菊花链、使用前 48 个时钟周期向两个器件发送命令、还需要另外 48 个时钟周期来接收从器件的响应(总共 96 个时钟周期)? 还是需要 3x24 时钟周期来获得所有响应?

也许更详细地以图表形式展示两个器件在 24 位菊花链模式下的两个读取命令(和响应)会有所帮助。

非常感谢&谨致问候、

Guillaume  

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

    纪尧姆

    您的理解是正确的:对于菊花链配置、您本质上必须执行双重事务:一个写入事务用于指定要读取的地址、另一个事务用于读取有效载荷。 我将浏览我们的设计架构指南、看看我们是否有更清晰的图表来指定这一点。

    或者、我们确实具有可寻址 SPI 模式、在该模式下它将进一步简化读取操作。 以下位置提供了 EVM 和参考源代码:

    https://www.ti.com/tool/TPS274C65USBEVM

    此致、
    Tim  

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

    您好、Tim:

    感谢您的答复。

    理想情况下、我们希望继续使用菊花链模式、因为 1. 通过隔离器可节省数据/控制线 2. 它允许“同步“菊花链上两个器件的输出、因为我假设移位寄存器中的数据在 CS 低电平到高电平转换时加载、这意味着两个器件的输出将同时切换。

    关键是从两个器件发送和接收数据需要多长时间、我实际上无法从数据表中看到数据何时/如何发生。

    您是否设法在体系结构指南中找到了该图表?

    当您说两个事务时、您是指保持器件时钟而不从主器件发送任何数据(即 CS 在整个时间内保持低电平)? 或者、芯片选择是否需要从低电平转换为高电平以启动响应(即器件在下一个 SPI 帧上进行响应)?

    我已经订购了一些评估板来玩。

    此致、

    Guillaume

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

    尊敬的 Guillaume:

    感谢您的答复、我们的一位工程师将在本周初帮助您澄清一些问题。

    谢谢、

    Alek Kaknevicius

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

    尊敬的 Guillaume:

    请查看下面菊花链的更好序列图:

    在菊花链模式下、如 TIM 所述、读取输出从读取请求延迟一个 SPI 帧。

    无需在每个事务内的 SPI 帧之间切换 CS、因为您希望所有器件在读取和写入期间锁存数据的时间同步。

    因此、对于 2 个器件、该过程为:

    - CS 变为低电平

    - 32 个时钟周期向两个设备发送写入

    -读取两个器件需要 48 个时钟周期(num_devices + 1 帧、因为在菊花链模式下、读取输出将读取请求滞后 1 帧)

    - CS 变为高电平

    每个读取 SPI 事务中的最后一个字节可以是任何内容(不是读取清除,以避免意外读取清除)、因为它将在下一个 SPI 事务开始时被忽略。

    这有什么用吗?

    谢谢、

    Patrick

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

    您好 Patrick、

    感谢您的澄清。

    我不是完全清楚它(抱歉! :)。 我 认为 、对于菊花链、  如果器件响应数据如何通过链传播、器件会在其 SDO 上的下一个 SPI 周期转发在上一个 SPI 周期中在 SDI 上看到的数据?

    如果我们继续以菊花链模式下两个器件的示例(SPI 帧大小为 16 位)绘制一些精确的图:

    -对于写入,它是部分清除,我们需要发送超过 32 个时钟周期。 因此、假设我们要将 0x01 写入寄存器 0x21 到器件 1 (16 位= 0xA1 01)、并将 0x00 写入寄存器 0x21 到器件 2 (16 位= 0xA1 00)、该序列如下所示:

    在这 32 个时钟周期中、对每个器件的写入请求完成。

    还有一个问题、在数据表图中、8-12 显示了 8 位 DATA_OUT 和 8 位 FAULT_STATUS、以响应 16 位菊花链 写入请求。 何时会发生这种情况? (DATA_OUT 中包含什么内容?)

    -对于读取周期、假设我们 要 在 48 个时钟周期内读取寄存器 0x01 并激活器件 1 的所有输出 (16 位= 0x01 0F) 和读取寄存器 0x02 并停用器件 2 的所有输出 (16 位= 0x02 00)、序列图如下所示:

    还是我完全错了?

    我仍然不理解在 32 个时钟周期结束时、器件 1 和器件 2 如何决定在各自的 SDO 上将其响应发送到读取请求(而不是仅仅转发他们在 SDI 上看到的数据,以保持菊花链正常运行,即转发请求)? 我认为,需要一些东西来启动响应(如 CS 过渡)..

    希望评估板将于下周初送达、便于我使用物理器件。

    此致。

    Guillaume

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

    尊敬的 Guillaume:

    很抱歉耽误您的时间、感谢您耐心等待。 您是否让菊花链可用于该器件?

    我们制作了一个代码示例 — 您是正确的,对于读取,必须有一个 32 位帧、然后是 CS 切换、再有一个 32 位帧将包含每个器件的读取响应。

    对先前的混淆表示歉意。

    谢谢、

    Patrick