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.

[参考译文] TMS570LS1224:速率低于1ms 时的 SPI 问题

Guru**** 2540720 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1036707/tms570ls1224-spi-issue-at-less-than-1ms-rate

器件型号:TMS570LS1224
主题中讨论的其他器件:HALCOGEN

我已将 HALOCOGEN 中的 SP1 5配置为2000KHz 内部时钟频率。 我在 MATLAB 中编写了一个 S 函数包装程序、用于读取和发送 SPI 数据。 读取和传输的速率为1ms。 但是、当我尝试将 s 函数包装程序的采样时间更改为小于1ms (例如:100us)时、整个 ECU 卡在 操作系统中、不会递增 xTimerPeriodInTicks。

请帮帮我。

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

    你好 Sachin、

    我不熟悉 Matlab S-function。 如果使用2000khz 的波特率、发送20个字(每个16位)将至少需要160us。 您的 s 函数如何不轮询 TX 或 RX 状态? 是否使用了中断?

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

    我们是主器件、我们尝试通过 SPI 读取从器件芯片。 我们仅使用内部时钟作为触发器来读取 SPI 数据。 读取 SPI 的工作时间不小于1ms。 是否有任何我们应该研究的 HALOCGENconfiguration 设置。 目前、我们正在读取 SP15、并且已配置数据格式2、  

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

    你好 Sachin、

    为了使 SPI 从器件发送数据、SPI 主器件必须向从器件提供 SPI 时钟。  

    如果从器件希望传输8字节数据、SPI 主器件可以向从器件发送8字节虚拟数据、而从器件使用时钟向主器件发送8字节数据。 您的 SPI 主器件是否生成了正确的 SPI 时钟?

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

    您好 QJ、

    SPI5是主器件。 请参阅随附的 SPI5时钟配置图像

    我们尝试了两种方法

    1. 进行 CRC 计算
    2. 而不进行 CRC 计算

     

    Halcogen spiTransmitData、spiTransmitAndReceiveData 使用两个 API。 由于运行缓慢、我们尝试使用另一个包装程序、只调用 spiTransmitAndReceiveData、这也花费了9.6us 来提供输出。

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

    为什么要花10us 的时间执行? 通过数学运算、它只需1.6us 执行(从器件侧的芯片需要16个时钟周期来传输数据)。 您能否想到 API 花费过多时间的其他原因?

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

    @王 QJ 有什么关于出错的线索?

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

    您已为此同一问题打开了一个新主题。 我将关闭该线程。