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.

[参考译文] TMS320F28033:SPISTEA 在 SPI 发送期间变为高电平

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/908842/tms320f28033-spistea-goes-high-during-spi-transmit

器件型号:TMS320F28033

您好!

我的客户正在使用 F28033的 SPI 与 MCP2515通信。

F28033是主器件、SPISTEA 连接到 MCP2515的 CS 引脚。 波特率为2M。 客户依次发送3 8位数据。

正常波形如下:绿色时钟、蓝色 CS 引脚。

99%通信良好、但波形很低、如下所示:

时钟在中间停止、CS 引脚变为高电平、如下所示:

我们不知道为什么会这样、有什么想法吗?

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

    您好 Howard、

    我假设 SPI FIFO 已启用、字符长度设置为8位。 在此配置中、SPISTEA 将保持有效(低电平)、直到发送 FIFO 中的所有字符(请参阅下面的 POST)。 "错误"波形似乎表示在第一个字符移出后、FIFO 没有更多的字符要传输。 CPU 是否向 SPI FIFO 写入字符以进行发送?  在本次活动的中间 CPU 是否会被中断?

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/688266/2536345?tisearch=e2e-sitesearch&keymatch=spiste%252525252525252520gpio#2536345

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

    Gus、

    谢谢、我们发现这正是您所不知道的。

    CPU 在 main()的 while 循环中将数据写入 SPI FIFO,并可能被 ISR 中断。

    您建议如何防止此类小概率问题?

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

    Howard、

    您可以在 CPU 处理 SPI FIFO 写入时禁用中断。 缺点是可能会延迟一些时间关键型中断的处理。  另一个选项是将 SPISTEA 引脚配置为 GPIO、并由 CPU 直接对其进行控制。