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.

[参考译文] AM3358:AM3358:SPI 作为仅接收从器件不接收任何内容

Guru**** 2393965 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1492921/am3358-am3358-spi-as-receive-only-slave-does-not-receive-anything

器件型号:AM3358

工具与软件:

您好!

我有一个可直接对硬件进行编程的裸机应用、其中我要使用 SPI1作为仅接收从器件、使用 SPI1_CS0进行芯片选择、使用 SPI1_D1接收数据、使用 SPI1_SCLK 接收来自主器件的时钟。 来自主器件的硬件信号看起来正常、但我没有收到任何信号。 这是我目前在代码中执行的操作:

  • 唤醒并配置模块的时钟(我假设此部件工作正常、因为 SPI0能够正常发送数据)
  • 数据和时钟线路的引脚多路复用:为焊盘 McASP0_AXR0和 McASP0_ACLK 设置模式3
  • CS 线路的引脚多路复用:为焊盘 MCASP0_AHCLKR 设置模式3
  • 注册 SPI-1-interrupt 125的中断服务例程并将优先级设置为10
  • 启用 SPI-1-中断
  • 设置 MODULCTRL 寄存器中的 MS 位来启用从模式
  • 设置 CH0CONF 寄存器中的 RXONLY 位(0x1000)以启用仅 Rx 模式
  • 将 CH0CONF-register 中的 DPE0和 DPE1位置1、以开启发送
  • 设置为 CH0CONF-register 中的位、以选择数据线1来接收数据
  • 设置 CH0CTRL 寄存器中的 EN 位以启用通道0
  • 将 CH0CONF 寄存器中的 SPIENSLV 位设置为0来选择 CS0进行从器件选择
  • 在 CH0CONF-register 中将字长设置为8、将极性设置为低电平(与 SPI0相同、因此应正确)
  • 通过设置 CH0CONF-register 中的位 FFER 来启用 RX-FIFO
  •  通过设置 IRQENABLE 寄存器中的 RX0_FULL_ENABLE 位来启用 TX 完整中断
  • 通过设置 CH0CTRL 寄存器中的 EN 位来启用通道0

尽管如此、也不会发生中断、也不会通过检查 CH0STAT 寄存器中的 RXFFE 位看到任何接收到的数据、Rx FIFO 始终显示为空。

所以...这里可能会遗漏什么? 有什么想法我做错了什么?

谢谢!

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

    您好!

    我们不能再支持 在 AM335x 上进行裸机软件开发。  请参阅 此公告 并在其中查找资源。

    同时、我来邀请我们的 SPI 硬件专家、进一步获取支持。

    此致、

    建中

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

    您好、建中:

    感谢您的反馈。 此开发针对的是一些当时启动的旧硬件、其中没有可用的 RTO 或类似的硬件。 因此、我们 a)已经被迫使用裸机编程;b)当然、现在无法将这个(非常庞大的)应用程序轻松转换到其他一些 API。

    所以,这是真的很好,你试图找到人为这个问题:-)

    谢谢

    Mike

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

    Mike、您好!  

    与此同时、让我循环使用我们的 SPI 硬件专家以获得进一步支持。

    关于硬件、您有什么问题我可以解决或支持吗?

    此致、

    Sreenivasa

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

    好的、我同时发现了这个问题:虽然只对通道0从器件接收是可能的、但是我意外地对通道1进行了一些配置(所以这是一个 明显的初始化错误)。 感谢您的帮助!

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

    Mike、您好!  

    感谢您发送编修。

    此致、

    Sreenivasa