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.

[参考译文] TDA4VM:MCSPI:数据传输所需的时间计算

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1643464/tda4vm-mcspi-calculation-of-time-required-for-data-transmission

器件型号: TDA4VM

尊敬的 TI:

希望你做得好。

我想计算在 MCSPI 器件上传输数据(以字节为单位)所需的时间。

我已经完成了以下计算:

传输 n 个字节所需的时间(纳秒)=(1 / MCSPI 时钟频率)x (n * 8) x 2


其中:
          - MCSPI 时钟频率: SPICLK 时钟频率,单位为赫兹
          -(n * 8):要传输的位数(即 n 个字节)
          - 2:所需时间乘数(不要低估它的价值)

此计算是否正确且完成、或者我是否需要考虑其他因素(如起始位,结束位或任何其他因素)?
 
期待收到您的回复。
 
此致、
Hasan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    ",="" arial,="" sans-serif;="" font-size:="" 16px;="" font-weight:="" 400;="" margin:="" 0px;="" text-decoration:="" none="" solid="" rgb(10,="" 10,="" 10);="" border-bottom:="" 0px="" 10);"="">50MHz 时钟速度理论上、 单字节 8 位的 传输时间大约为 160ns、 在理想的背靠背条件下大约为每位 20ns。

    但实际上、由于开销、可能会有一些延迟。

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    我仍然没有得到任何答案?

    在实际应用中、由于开销、可能会出现一些延迟

    如何计算您提到的这一开销?

    在我的计算中、我将计算出的时间减去系数 2、以补偿这种开销延迟、而这种延迟似乎不适用于大数据块。 对于我的应用、我需要精确地进行时间计算。

    理论上以",="" arial,="" sans-serif;="" font-size:="" 16px;="" font-weight:="" 400;="" margin:="" 0px;="" text-decoration:="" none="" solid="" rgb(10,="" 10,="" 10);="" border-bottom:="" 0px="" 10);"="">50MHz 时钟速度运行、 单字节 8 位需要大约 160ns 的 传输时间、

    因此、我不必考虑起始位、结束位或其他任何因素。 我只需要考虑要传输的实际数据、对吧?

    此致、
    Hasan

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

    您好:

    因此、我不必考虑起始位、结束位或其他任何内容。 我只需要考虑要传输的实际数据、对吧?

    没有任何位或任何其他。 是仅考虑实际数据。 在我看来、开销是硬件级延迟。

    没有 2 或 2 的乘数。

    传输 n 个字节所需的时间(纳秒)=(1 / MCSPI 时钟频率)x (n * 8)   

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    ]我认为开销是硬件级延迟

    估计此开销的最佳方法是什么?

    我在 Linux 驱动程序开发中看到、需要将 5-10 倍的系数与计算所需的时间相乘、以补偿开销。 TI 是否可以提出或 TI 正在使用任何类似的因素来进行驱动程序开发?

    此致、
    Hasan

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

    您好:

    估算此开销的最佳方法是什么?

    在驱动器中,我们不会在 RTOS 或 AUTOSAR 中添加任何这样的补偿,如果你有更长的 SPI 总线长度,因为它是同步的 ,那么这也会产生影响。

    这取决于您的硬件连接和 SPI 总线的长度、理想情况下从 SW 开始、RTOS 中不会增加额外的时间。

    此致

    Tarun Mukesh  

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

    尊敬的 Tarun:

    我要介绍 TRM、有如下问题:



    问题 1:两个连续字之间有多少个时钟周期延迟?

    问题 2: 两个连续单词的延迟是否可编程?

    此致、
    Hasan

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

    您好 Hasan、

    有初始化延迟、但 SPI 中的字之间没有此类固定延迟或所需的延迟。  

    此致

    Tarun Mukesh

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

    尊敬的 Traun:

    我已经使用逻辑分析仪进行了检查、发现每次字传输后都会出现延迟。 延迟会随着 SPI 时钟频率的增加而持续降低、但不会变为零。

    我附上了每次字传输后 SPI 时钟频率与延迟之间的比较以供您参考。

    频率 SPI 时钟 (MHz) 延迟 (ns)
    100 30
    50 30
    33.33 30
    25 40
    20 40
    16.66 50
    11.11. 55
    9.09 70
    7.14 90
    6.25 100



    如上所述、为什么两个连续字的传输之间始终存在一定的延迟、那么没有延迟?

    期待收到您的回复。

    此致、
    Hasan

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

    您好 Hasan、

    这是 SPI 的内部状态机、需要处理现有字并发送下一个字。在物理硬件中、将一个字节从存储器移动到传输线路需要内部状态机转换和时钟同步、这需要有限的纳秒级时间。

    为什么在提高频率下时间更短是因为内部状态机需要一些 SPI 时钟边沿来重新加载数据缓冲器、移位寄存器和准备下一个字。 在较高频率下、时钟周期更少意味着等待时间更少。

    这就是您在上表中观察到的情况。 软件提供的我们无需在字之间提供任何延迟。

    此致

    Tarun Mukesh