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.

AM335X McSPI的Slave模式的配置



我想让两个Am335x通过McSPI通信,所以就需要一块AM335X的McSPI工作在Slave模式下。现在Maste模式已经能正常工作了,在发送数据时能用示波器看到数据波形。但Slave模式不管我怎么配置都无法进入接收中断,我已经禁止了Slave模式下的IDLE模式。现在已经黔驴技穷了,不知道该怎么配置这个Slave模式了。在TI的资料上,无论是TRM还是StareWare都找不到McSPI的Slave模式的指导。求解。

  • 你好,这个slave的配置这块的流程在TRM(version H)的24.3.11节Programming Aid有讲述配置过程,你的master不是配置成功了吗?slave配置也是跟着同样的流程走,把相应的master配置改成slave,输出改输入就行了。我配成功过,实现的就是一个板子做master,一个板子做slave,两者通信,速率12M。

    至于你说的没有进入接收中断,是不是已经用示波器量过了,master把数据已经送过来了,但就是没接收?

    如果这样的话,就查slave 端的配置就好了:1. 测量clock,cs信号,以及数据信号,判断发送方一切正常;2.如果都正常,在slave侧 Pinmux的配置上面,是否把SPI_SCLK以及相应的data通道配置了receiver enable,可以通过control module相应寄存器进行检查;3.mcspi的配置上面,MCSPI_CH0CONF中18bit,IS的选择是否正确,12-13bit呢?这里面有很多可以检查的东西,通过CCS寄存器的读值,一一检查下,一定能找到原因。

    等你做些测试了,再把反馈信息发上来,我们一起分析。

  • 好的,谢谢。我马上看看。到时候把结果反馈上来。

  • 你好,master的数据是已经发送出去了。

    我再按你的方法检查一下Slave的配置。谢谢!

  • 你好:

    我检查了一下我的配置。应该没错。我把主和从连接起来后,再用示波器重新看了一下波形,发现当主发出的波形不见了。我想请教一下,你的两块板子是如何连接的。谢谢!

    模式

    引脚配置

    SPIDAT[1] 发送 SOMI

    SPIDAT[0] 接收 SIMO

    IS=0, DPE1=0, DPE0=1

    SPIDAT[1] 接收 MIS0

    SPIDAT[0] 发送 MOSI

    IS=1, DPE1=1, DPE0=0

    时钟相位和极性

    POL=0,PHA=1,模式1,下降沿采样

    POL=0,PHA=0,模式0,上升沿采样

    收发模式

    发送和接收

    TRM=0

    发送和接收

    TRM=0

    SPIEN

    使用SPIEN用于片选,低电平有效

    PIN34 =0,EPOL=1

    使用SPIEN用于片选,低电平有效

    PIN34 =0,EPOL=1

    是否配置为单通道模式

    SINGLE=1

    SINGLE=1

    SPI字长

    32位

    WL=1fh

    32位

    WL=1fh

    是否使用FIFO

    IDLE模式

    无条件响应idle请求

    SIDLEMODE=0

    忽略idle请求

    SIDLEMODE=1

    中断使能

    TX0_EMPTY_ ENABLE=1

    RX0_FULL_ ENABLE=1

    TX0_EMPTY_ ENABLE=1

    RX0_FULL_ ENABLE=1

  • Hi, Steven

    我正好也在做这方面的工作,能否把你测试成功的代码共享下?谢谢

    我的代码是基于linux-PSP, 我的这样做的:在自己的生成的模块内,挂载在linux的spi总线系统上,通过改写SPI的寄存器来实现slave模式,不知道这样可行吗?

    谢谢

  • 可否发下你的从模式的demo.配置过程。我的产品了里要用SPI的Slave模式。自己配置没成功,也没有任何参考Demo. 非常感谢:wangyaozj@126.com

  • 你好。我现在Master模式没有正常工作,用的是官方提供的SPI_FLASH例程,在发送数据时能够用示波器看到数据波形,但是说是无法收到数据。能否给予指导下,谢谢。

  • 我也遇到同样的问题,你解决了么?

    q1833630366

  • 你说把相应的master配置改成slave,输出改输入就行了,具体是怎么改,还请说一下

  • 你好可以把你的调试过程和你交流一下吗我的qq 1217328931