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.

[参考译文] TMS320F28377S:320F2837x - SPI 模块 SPISTE 控制

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1391775/tms320f28377s-320f2837x---spi-module-spiste-control

器件型号:TMS320F28377S

工具与软件:

TMS320F28377S - SPI 模块

主器件究竟是如何设置/清除 SPISTE 的? 寄存器中是否有控制位?

技术参考手册- TMS320F2837xS

17.4.4数据传输示例-似乎表明 SPISTE 直接通过 DSP 固件进行控制。

从器件将0D0h 写入 SPIDAT、并等待主器件移出数据。
B 主器件将从器件 SPISTE 信号设置为低电平(有效)。
C 主器件将058h 写入 SPIDAT、从而启动传输过程。
D 第一个字节完成并设置中断标志。
E 从器件从 SPIRXBUF 中读取0Bh (右对齐)。
f 从器件将04Ch 写入 SPIDAT、等待主器件移出数据。
G 主器件将06Ch 写入 SPIDAT、从而启动传输过程。
H 主器件从 SPIRXBUF 读取01Ah (右对齐)。
I 第二个字节完成并设置中断标志。
J 主器件读取89h、从器件从其各自的 SPIRXBUF 读取8Dh。 在用户的软件屏蔽了之后
未使用的位、主器件接收09h、从器件接收0Dh。
K 主器件将从器件 SPISTE 信号清除为高电平(未激活)。

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

    Paul、你好!  

    没有位可将 SPISTE 设置为高电平/低电平。 如果该 GPIO 被初始化/配置为 SPISTE、则 SPISTE 活动由 SPI 硬件固有地控制。 数据表中也列出了该模式的时序详细信息。

    您也可以通过使 GPIO 成为输出并在通信传输之前/之后手动将其写入低电平/高电平来手动控制作为芯片选择引脚的 GPIO。

    此致、

    Allison

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

    Fghfgh

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

    您好、Allison、

    感谢您的答复。 跟进问题:

    对于多字符主传输、是否可以安排 SPI 硬件在整个传输期间使 SPISTE 保持活动状态? 我们不希望它在字符之间变为无效状态。 那么、如何实现呢?

    谢谢!

    Paul

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

    Paul、你好!

    SPISTE 硬件的行为将基于数据表部分中的时序。 这些图中也有注释:

    本质上、如果数据传输之间存在时间间隔、则 STE 将在数据传输之间变为高电平。 如果是这种情况、但您希望其保持低电平(运行状态)、则必须将其作为 GPIO 输出进行手动控制、而不是使用专用的 SPISTE 信号/硬件。  

    否则、如果您直接进行背靠背传输、STE 将在整个时间内保持低电平。

    此致、

    Allison

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

    您好、Allison、

    再次感谢。

    代码如何保证传输是背靠背的? 在 FIFO 模式下、是非 FIFO 模式下。

    Paul

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

    Paul、你好!

    这意味着您需要保持 SPI 发送缓冲区已满。 在 FIFO 和非 FIFO 模式下、必须在第一个字完成传输之前向 TXBUF 写入第二个16位字。  这将消除发送字之间的间隙、并在整个时间内保持 SPISTE 拉低。

    因此、利用 FIFO 模式可能会更加简单、这样您就可以填满 TX FIFO、让硬件不断 移出数据 (保持 STE 为低电平)。

    此致、

    Allison

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

    谢谢 Allison! 这是我在数据表中找不到的信息。