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.

[参考译文] TMS320F280049:有关使用快速串行接口(FSI)的问题

Guru**** 2526840 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/741943/tms320f280049-questions-for-usage-of-fast-serial-interface-fsi

器件型号:TMS320F280049
主题中讨论的其他器件:C2000WARE

我的客户对 F28004x 中的快速串行接口(FSI)表现出极大的兴趣、我对 FSI 有一些问题、如下所示。

  1. FSI 可以实现跨隔离的高速通信、如何通过延迟线控制实现这一点? 正如 TRM 中所述、延迟线元件会在相应的线路上引入延迟、因此我想知道为什么可以使用延迟来补偿隔离器或信号缓冲器引起的延迟。 是否有任何进一步的说明或示例项目来显示用法?

    2.如何使用 FSI 进行多个器件(N)的通信? 我正在评估两种连接方法:

    (1)星型连接(如单主/多从);     (2)类似菊花链的连接。

     由于同步的握手机制必须在实际数据传输之前发生、因此我的问题如下:

 1) 1) 是否可以使用具有星形连接的 FSI?  主器件如何在握手期间检测从 N-1从器件发送的正确信息?  可以一一一一一一地完成吗?

 2) 2)对于类似菊花链的连接、如何进行握手?

以下是我的假设: 器件1向器件2发送特定的 ping、然后器件2向器件3…发送另一个 ping。、器件 N 向器件1发送 ping、因此器件1可以通过检测器件 N 的 ping 是否为预定义的 ping 来确定通信是否成功。  这是一个有效的握手过程吗?

 3) 3)如何通过 FSI 实现多个器件的最快通信?  我想尝试 DMA 功能,还有其他建议吗?

 4) 4) 您是否有与 FSI 进行通信的多个器件的示例项目?

期待您的评论、谢谢!

请使用手机 â"扫一扫"x

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

    Aki、我将为您提供答案。 我今天会发布它!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    延迟线元素位于 FSIRX 模块上。 为了使 FSI 正确接收数据、需要在 FSIRXD1 FSIRXD2和 FSIRXCLK 之间进行特定的时序。 在进行隔离时、根据隔离的性质以及 PCB 布局等其他因素、这些信号的延迟可能会有所不同。 在每个数据或 CLK 线路上启用不同数量的这些延迟线路元素将使您能够满足正确接收数据的时序要求。

    我们目前没有 C2000ware 中的项目。 有一个正在进行的项目展示了如何设置 RX 延迟线元件、以确保两个 F280049器件能够以最大50MHz 时钟速率进行通信、并且由于不同的因素而出现非理想延迟。 很可能会在2019年完成。


    2.从技术角度讲、对于 F280049、只有菊花链连接+软件才能在多个器件之间创建双向通信。 对于星型连接、主器件和 N 器件之间只能实现单向通信。 由于主设备上只有一个 FSIRX 模块、而无需外部硬件、因此只有一个从设备能够向主设备发送数据。 但是、即使我尚未对此进行测试、通过外部多路复用器、从器件的 FSI TX 引脚也可以进行多路复用、并且可以采集单个 TXD0和 TXD1并将其连接到主器件。 然后主设备可以选择接收数据的用户。


    为了确保数据被正确发送和接收、握手机制是必要的。 对于多个器件而言、这可能很复杂、但并非不可能。 对于我上面提到的星型连接、每个从器件都必须与主器件执行一个握手。 考虑到所有从器件将同时从主器件接收数据、可能需要做更多的事情。
    对于菊花链、每个器件(索引 I)必须与 deivce i+1的 FSITX 和 I-1的 FSIRX 握手。

    对于50MHz 时钟双倍数据速率、C2000Ware 中提供了一个 DMA 示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Nima:

    感谢您的解释。 我仍有一些困惑:

    延迟线控

    可能是我误解了它、因为在 我之前的看法中、 延迟线控制可用于补偿隔离芯片引起的延迟。  如前所述、延迟线控制用于保证 在  隔离通信期间 FSIRXD1、FSIRXD2和 FSIRXCLK 上的信号具有相同的延迟?  那么  、由于隔离、传输数据速率将无法避免地降低?

    您能否进一步解释一下如何使用延迟控制? 实际上、我们的客户现在需要这种解决方案(明年可能太晚了、因为大多数数字电源应用都基于隔离式通信。

    2.多  个器件的菊花链连接的握手机制

    我还认为、这将是与 FSI 的挑战或星形连接。  如前所述、对于菊花链、每个器件(索引 I)必须与 deivce i+1的 FSITX 和 I-1的 FSIRX 握手。  但是、我已经测试了示例工程(P2P 连接)中给出的握手机制、 握手需要两个器件之间的 TX 和 RX 连接、因此如何将其用于 菊花链、如下所示?   握手用于保证 两个芯片的发送和接收工作、对吗?

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

    隔离芯片不影响传输速率。 它将引入偏斜、延迟线元件可用于确保在最大速率(50MHz DDR)下正确完成通信

    我将在 FSI 延迟控制的初步工作中发布另一个答案。

    菊花链中每个器件的 TX 模块必须向下一个器件发送 ping、直到所有器件成功接收到 ping。

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

    因此、您需要担心3个信号。 FSIRXD1、FSIRXD2和 FSIRXCLK。 首先、您需要为 FSIRXD1和 FSICLK 选择最佳延迟、因此您可以运行 FSI 握手(使用 signle 数据线)、在两个器 件之间实现超时、并扫描 RXD1和 CLK 的2 * 32种延迟线控制可能性。 (保持 CLK 延迟=0、RXD1延迟0-31,然后 RXD1延迟 =0,CLK 从0-31)。 检查 RXD1和 CLK 延迟的值会导致 ping 传输成功。 通过这种方法、您可以在 CLK 和 RXD1之间找到最佳延迟。

    这将是以下场景之一。 下面的数据再次检查了每个可能的延迟设置,但您实际上只需要检查2*32 (而不是32*32)。

    绿色表示握手成功、蓝色表示最佳点。

    已知 CLK 和 RXD1的最佳点集后、您可以扫描[最佳 CLK、最佳 RXD1]延迟 与 RXD2延迟(32种可能)、并找到最佳 CLK、RXD1和 RXD2延迟。

    选择以绿色为中心的蓝色最佳点可让系统以最佳裕度运行。

    我确信这部分内容令人困惑、因此请告诉我您的问题是什么!

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

    感谢您的善意解释。

    这是我的另一个问题。

    1.我想进一步确认 菊花链连接的握手机制。

    假设有3个器      件连接、对于器件1握手:器件1向 device2发送 ping1、然后 device2向器件3发送 ping1、然后器件3将 ping1发送回器件1、最后一个器件1判断接收到的 ping 是否为 ping1、如果是、则握手完成。  然后、对器件2执行相同的过程。  以上是否正确?

    2.对于延迟线控制、我仍在消化您的工作。 正如您说过的、 此过程在 握手期间完成。 但是、我从 TRM 中了解到、只应在 FSIRX 保持软复位时调整延迟值、因此我想确认是否错过了 STH。  

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

    添加到我的答复中。  

     

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

    您的菊花链握手正确。 ping 1成功后、尝试执行另一轮 ping 以确保稳定性。  

    是的、在应用期间、更改 RX 时保持在软件复位状态。 但是、当您进行校准时、您将继续重置并尝试不同的 RX 延迟值。

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

    谢谢你。

    实际上、如果器件1的 ping1轮成功、我们可以说 握手已完成。 因此 、器件1的第二轮 ping2用于进一步确认 通信是否正常、对吧?  

    因此,如果我们要为 FSIRXD1和 FSICLK 选择最佳延迟,我们需要 重置,然后握手2 * 32次?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.是的。 但我无论如何都会这样做。

    2.这是大多数应用中的一次性应用。 如果您知道环境、PCB、导线、隔离器等不会发生变化、则可以运行此操作并获得最佳点、然后将其放入应用中。 FSI 还具有看门狗计时器和帧、可用于检测坏链路。 您可以通过在检测到故障时进入校准模式的方式编写软件。 有许多不同的方法可以捕获不良链路。

    但是、要找到 FSI RX 延迟线的最佳点、您需要扫描上面发送的图的 x 轴和 y 轴、以找到成功通信延迟设置的中间点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.关于延迟线控制的一次性问题,大规模生产产品如何,因为使用继电器控制难以调整每个设备? 因此、我认为每次器件上电时都需要运行、对吗? 或者在检测到故障时将其作为校准机制启用、如您所说。

    2.如何解释最大200Mbps 数据速率? 在最大50MHz 时钟速率下、如果使用双倍数据线进行双向传输、我们可以得到该值吗? 是否有任何测试方法来验证最大数据速率?

    3.对于具有 DMA 的 FSI、给出的示例工程用于内部回送、不使用握手。 我正在尝试使用 DMA 进行2器件通信、因此握手应该像 p2pconnection 项目那样执行、然后为2个器件配置 DMA 用于 TX 和 RX、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.纠正这是我要做的事情。

    您可以获得200Mbps。 它是50MHz、双线路(使其为100)和双倍数据速率、这意味着数据在时钟的两个边沿上传输和接收、200Mbps。

    正确、建立链路后、执行握手、配置为使用 DMA。