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.

[参考译文] AM6442:传输之间的 MCSPI 延迟

Guru**** 2330840 points
Other Parts Discussed in Thread: SK-AM64B
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1512396/am6442-mcspi-delay-between-transfers

器件型号:AM6442
Thread 中讨论的其他器件:SK-AM64B

工具/软件:

大家好、我们开发了一个需要快速读取(它只能读取)的 SPI 从设备。   SPI 传输之间存在延迟、延迟约为50微秒。  我们 从 R5内核访问 SPI ,我已经尝试了轮询,中断(阻塞和非阻塞 )和 DMA(阻塞和非阻塞)。

此行为 之前在这里讨论过:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1234641/am6442-spi-dma-mode-transfer-consumes-more-time-before-starting-actual-transfer?tisearch=e2e-itesearch&keymatch=spiTransaction.dataSize

我对此有两个问题。

1.这种延迟是由于驱动器(软件)还是控制器(硬件)? (在您尝试开发自己的驱动程序之前应了解)

2.在上面的链接中 、建议将 PRU 作为解决方案。 这还能走吗?  

此致

Tobias

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

    尊敬的 Tobias:

    我假设您已经了解处理器 AM64x 的 MCSPI 性能数字: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_00_00_15/exports/docs/api_guide_am64x/DATASHEET_AM243X_EVM.html#autotoc_md529

    还请阅读有关添加硬件时间的注释。

    看起来硬件增加的时间大约为190纳秒、与您提到的更大延迟相比、这将是一个很小的数字:50微秒。

    您还能告诉我、如果您的要求是作为此处提到的第三个选项(单外设)运行 SPI 接口: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1414084/faq-sk-am64b-mcspi-integration-guide/5428405#5428405

    或者、您希望将 SPI 接口运行为单控制器/多控制器。

    Unknown 说:
    我们在  SPI 传输之间遇到延迟、

    您是说时间 T 高了约50微秒吗?

    通过逻辑分析仪可以看到线路上的第一次传输

    T 所需的时间

    通过逻辑分析仪可以看到线路上的第二次传输

    此致、

    Vaibhav

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

    我们将其作为 单个外设运行。  我还没有使用逻辑分析仪查看过它、但会在有逻辑分析仪后立即使用。

    我可以看到、传输后的控制器 必须等待至少50微秒 、然后才能再次传输。 如果它没有等待这么长的时间、外设会损坏。  

    控制器将连续向外设发送数据、因此我们不会出现这样的延迟(不知道我们可以承受多大的延迟、但50us 太大)。   

     

    这就是我在控制器上 为了使外设正常工作而必须做的事情:

    -第一次转接。

    -等待50 μ s 或否则外围设备被留在后面,并停止按预期工作。   

    -在电汇上进行第二次转账。

    -等待50 μ s 或否则 外围设备被留在后面,并停止按预期工作。   

    -电汇上的第三笔转账。

    ——等等……

    我知道需要等待、因为50us 对于我们的用例来说太长了。  

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

    您好、Tobias、

    感谢您澄清我们的 Sitara 处理器上配置了外设。

    关于这一点、我也了解了 你下面提到的流程:

    [引述 userid="644126" url="~/support/processors-group/processors/f/processors-forum/1512396/am6442-mcspi-delay-between-transfers/5815125 #5815125"]

    -第一次转接。

    -等待50 μ s 或否则外围设备被留在后面,并停止按预期工作。   

    -在电汇上进行第二次转账。

    -等待50 μ s 或否则 外围设备被留在后面,并停止按预期工作。   

    -电汇上的第三笔转账。

    --等等..

    [/报价]

    我需要了解这种等待是什么。

    这是否会通过以下方式在外设侧处于50微秒的睡眠状态:

    1. MCSPI 参数初始化

      这里引入了50微秒的等待时间吗?


    2. mspsi_transfer()

      或者在 MCSPI_TRANSFER 完成后、引入50微秒?

    此致、

    Vaibhav

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

    我正在开发一个主设备和一个从设备。 主器件用于测试从器件的性能。 延迟被输入到主器件中(我试图使该延迟尽可能小、最终达到50us)。 我下周回来时会得到更多的信息(其他一些事情突然变得更重要)。 我基本上是想弄清楚 是否必须写驱动程序。  

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

    尊敬的 Tobias:

    延迟到主服务器

    感谢您提到这一点、如果能更详细地了解这些信息、将会非常有帮助。 例如、从驱动程序本身来看、您能否指出引入50微秒该延迟的 Code/API?

    此致、

    Vaibhav

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

    你(们)好。 经过一些进一步的调查,我意识到,延迟是非常小(不是50us )。   

    您建议使用什么方法来  读取连续数据?   

      

      

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

    尊敬的 Tobias:

    您好。 经过一些进一步的调查,我意识到,延迟是非常小(不是50us )。  [/报价]

    很高兴知道这个。

    您建议使用什么方法来  读取连续数据?   [/报价]

    我建议读取连续数据如下。

    我知道 MCSPI 配置为单外设、但我们假设 MCSI 配置为单控制器。

    在本例中、MCSPI 是控制器、我们希望从外部外设读取连续数据、一个很好的软件代码配置是将 MCSPI_TRANSACTION_PARAMETER_CSDisable 设置为 FALSE。

    其作用是将控制器和外设之间的芯片选择保持为低电平、因此调用了连续的 MCSPI_TRANSFERS。

    因此、您的控制器与我们的 MCSPI 外设进行交互可以期待类似的实现。

    此致、

    Vaibhav

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

    谢谢你。 我还有一个问题。

    我正在阅读 技术参考手册第 12.1.4.5章"MCSPI 编程指南"。 如果我正确理解、事务的概念不仅是软件概念、而且是硬件的一部分(至少在使用 DMA 时)。 对于事务、我是指系统在接收/传输数据之前必须知道数据的大小。 请注意、我没有任何问题、我只是想知道它是如何工作的。  

    我们正在试图弄清楚 FPGA (内部开发的)是否应该流式传输数据、或者是否应该以块形式将数据发送到 SK-am64b。 如果 SPI 硬件正在处理事务、那么我们不必费心尝试进行流式传输。

    此致

    Tobias

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

    尊敬的 Tobias:

    也是硬件的一部分(至少在使用 DMA 时)

    我理解您从 TRM 中阅读了此信息。 你能强调这个准确的部分,让我消耗相同的.

    如果 SPI 硬件处理的是事务、那么我们不必投入任何精力来尝试流式传输。

    阅读 MCSPI 编程指南的特定章节后、我就可以对此进行评论。

    期待您的答复。

    此致、

    Vaibhav