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.

[参考译文] TMS320F280025:3线 SPI

Guru**** 2540190 points
Other Parts Discussed in Thread: TMS320F280049, TMS320F280025, C2000WARE, MSP430G2744, TMS320F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034804/tms320f280025-3-wire-spi

器件型号:TMS320F280025
主题中讨论的其他器件:TMS320F280049C2000WAREMSP430G2744TMS320F280049C

您好!

我使用3线 SPI 在 TMS320F280049 (主器件)和 TMS320F280025 (从器件)之间进行通信。

任一控制器的时钟和 STE 引脚已相互连接。 根据 TRM 中的指示、主设备的 SIMO 连接到从设备的 SOMI。

我能够观察示波器线路上的正确数据、时钟和 CS 切换。 因此、可以得出这样的结论:主器件正在正常通信。

但是、从器件中的 RXBUF 始终为空、RXISR 也不会被触发。

有一个用于 TMS320F280025的三线制 SPI 从器件示例、 它在 C2000ware 中不可用。

谢谢

Srikrishna Sarangan

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

    对延迟答复表示歉意。 遗憾的是、我们在 C2000ware 中没有将 SPI 配置为3线模式的示例。

    您能否确认 两个器件中的 TRIWIRE 寄存器位都已设置?

    您是否已经检查了器件 TRM 中的"SPI 3线模式代码示例"部分?

    此致、

    Veena

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

    是的、TRIWIRE 在两个器件中均已激活。

    后来发现来自主器件的 STE 信号存在问题。 虽然时钟和实际 SIMO 信号  良好、但持续时间不足以满足数据包的长度要求。

    我们通过将引脚初始化为 SPI 外设(SPIB_STE)和 GPIO (在 发送函数前后手动设置和复位)来检查这两种情况。 在这两种情况下、信号持续时间都小于 所需的时间。

    通过 将 STE 引脚配置为 GPIO 并将其设置为永久启用、我们能够在从器件上接收数据包。 尽管这 可能不是一个好的解决方案。

    我认为 TMS320F280049C 的 SPI_STE 引脚存在问题、因为在另一个尝试与49C (主器件)和 MSP430G2744 (从器件)通信的项目中发现了该问题。

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

    BTW、在另一个项目中、我们使用的是采用4线配置的 SPI。

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

    您好 Srikrishna、

    器件数据表中指定了时序参数。 在示波器中观察时、您是否以不同的方式看到它?

    此致、

    Veena

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

    您好、Veena、

    是的、我在示波器中观察到不同的时序。 我正在传输八个16位值(我使用的是16位格式的 SPI)、这占用128个时钟周期。

    当将引脚用作 GPIO 时、STE 变为低电平的持续时间仅为持续时间的十分之一。

    我遇到的另一个问题是、当引脚作为外设(SPI_STE)启用时、SIMO 信号的逻辑高电平仅为1.7V (必须为3.3)。 因此、即使是主器件在回读期间也未检测到该数据。

    谢谢

    Srikrishna

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

    您好 Srikrishna、

    我将邀请 SPI 设计专家参加

    此致、

    Veena

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

    SriKrishna、

    您可以共享主/从代码吗? 此外、您是否正在使用 FIFO/非 FIFO 模式?

    您可以共享的任何示波器快照。

    此致、

    曼诺伊

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

    Manoj、您好!

    现在、我还没有启用 FIFO。 我认为我们不打算使用它。

    主设备初始化:-

    主机发送:-

    在发送中、STE 引脚当前用作 GPIO、该 GPIO 被永久启用(设置为低电平)。 8个16位值从0x0000、0x1111、...、0x7777发送。

    从器件初始化:-

    从机接收:-

    当 STE 引脚被启用为一个外设时、主器件输出信号的电压电平为0至大约1.7、这是不够的。 示波器的下图显示了 CLK (0至3.3V 范围内为绿色)和 SIMO (0至1.7V 范围内为黄色)。

    当引脚用作 GPIO 并手动切换时、我们 将观察 SIMO 上所需的行为。

    我没有 STE 信号的图像、但是当手动切换(在主发送功能之前和之后)时、它的持续时间约为1/8时钟持续时间。

    谢谢

    Srikrishna

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

    Srikrishna、

    您已在主初始化代码中启用 FIFO。 您是否尝试禁用它?

    此致、

    曼诺伊

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

    Manoj、您好!

    感谢你的帮助。

    我禁用了 FIFO、并且能够获得所需的性能。

    此致

    Srikrishna