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:从 SPI 接口生成 32 位连续位流

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1531685/tms570ls1224-generating-a-32-bit-continuoious-bit-stream-from-the-spi-interface

器件型号:TMS570LS1224

工具/软件:

您好、

 多年来、我们一直在产品中成功使用 TMS570LS1224 器件。 到目前为止、我们已经在 8 位或 16 位模式下使用了 SPI 端口。

我们现在要求生成一个 32 位连续 串行数据字、但是器件每个字仅支持 16 位。

我们已经尝试将器件设置为 16 位模式、并背对背加载两个 16 位字(即在加载下一个字之前不等待 TX 完成)。

我们可以以所需的速率 (2MHz) 从器件中获得 32 位、但第一个和第二个 16 位字之间插入了小延迟(约 60ns)。

这会导致接收设备出现问题、因为插入的间隙会导致数据损坏。

是否有方法可以减少这种间隙/重新加载时间。 当 从缓冲区加载下一个数据字时、我假设这是内部 SPI 硬件获取时间?

我们目前已按如下方式配置设备:-

SPI 通道       = SPI3
写入延迟        = 0;
奇偶校验极性      =偶数 (0);
奇偶校验启用      =启用 (0);
启用时等待    = NO_WAIT (0)
位移方向      = MSB_FIRST (0);
时钟极性       = POLARITY_LO (0);
时钟相位       = NO_DELAY (0);
比特率           = 2MHz;
数据字长  = 16U;

我们可以使用外部移位寄存器来解决此问题、但我们曾希望在可能的情况下使用内部 SPI 来实现、因为我们的电路板上的空间非常短缺。

非常感谢您提供的任何建议。

此致、

Paul

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

    您好、Paul:

    [引述 userid=“320547" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1531685/tms570ls1224-generating-a-32-bit-continuoious-bit-stream-from-the-spi-interface

    我们可以以所需的速率 (2MHz) 从器件中获得 32 位、但第一个和第二个 16 位字之间插入了小延迟(约 60ns)。

    这会导致接收设备出现问题、因为插入的间隙会导致数据损坏。

    [/报价]

    您确定此 50ns 额外时间会导致问题吗?

    我还怀疑在传输之间存在这种情况 CS 线路将进行切换、如下所示:

    为了防止这种情况发生、我们应使用 CSHOLD 位:

    如果不是由于传输之间的芯片选择处于非活动状态、请尝试确保将这些延迟配置为零、如下所示:

    如果这些延迟已经为零、那么我们可能无法进一步将此延迟降低 50ns 至 60ns、但是、也可以尝试使用 DMA 一次、而不是手动 CPU 写入。

    --
    此致、
    Jagadish。