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.

[参考译文] CCS/TM4C1237H6PM:第一次传输后 SSI 从机模式无响应

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/820699/ccs-tm4c1237h6pm-ssi-slave-mode-no-replies-after-the-first-transmission

器件型号:TM4C1237H6PM

工具/软件:Code Composer Studio

您好!

我正在尝试实现一个 SSI 从机、在该从机中、我读取1个字节的命令并在接收到下一条命令时返回结果。  

我所面临的问题是、在第一次传输后、即使我将新数据放入 TX 缓冲区、我也会收到零。

此外、当我轮询 GetDataNonBlocking 时、即使在逻辑分析仪上看到主器件发送数据、它也会显示 RX 缓冲区为空。

为了检查操作、我在 TX 缓冲区中放置2个字节、并在其间的某个时间发送2条命令。

下面是我的配置:  

我尝试使用进行读取  

SPIDataGet 和非阻塞版本  

while (!SSIDataGetNonBlocking (SSI0_BASE、&ret_val)){} 

在第一个接收之后、标志的状态为:  

从图中可以看出、传输 FIFO 中仍然有数据、但由于 SSI 卡在某种程度上、数据永远不会发送。

如果我在第一次传输后重新配置 SPI、我会在传输时看到两个值、因此我不知道问题为什么会被模块卡住。  

是否有人知道模块为什么会卡住?  

谢谢阅读。

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

    你好,金枪鱼

    您显示的 API 仅用于接收、您能否共享正在为传输执行的操作? 没有这一点、我很难理解整个图片。

    另外还有几个问题:

    此设置是在两个 TM4C 器件之间还是在另一个主机器件与 TM4C 之间?

    您的 SPI 时钟设置是非常规的、选择1MHz 时钟值的原因是什么?

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

    您好 Ralph、

    感谢您的回复。  

    Raspberry Pi Model 3B+和 Tiva 芯片之间进行通信。

    圆周率日的 SPIDev 库是非常规价值的原因。  

    我刚意识到,在金融监督院的联系上出现了问题,造成了这一问题。  

    我猜芯片仍然在发送数据并等待传输完成。

    现在、我得到预期的行为。  

    此致、

    金枪鱼比希姆