半双工SPI通信调试

spi主从通信 本文只说问题,具体协议网上比较多
master和slave方式配置要一致
半双工 CPHA为1(第二个沿采样) CPOL为1(时钟空闲为高)MSB传输,时钟5.88M(实测)
调试遇到问题,从端发不出来数
问题排查1,看Master时钟有没有供,发现时钟确实没供,但是clk线不接到从端时候,主端的clk是有的。
对于接收状态,clk是在每次使能完接收控制寄存器后硬件自己产生。
对于发送状态,clk是在将待发送数据填充到发送寄存器中自己产生。
slave没收到时钟导致一直等待tx_fifo空。
主端clk在接到从端之后时钟就没了,很神奇,最后发现是输入输出接反了。。。
问题排查2,时钟有了之后还是发不出来数,最后发现是片选未拉低,我以为从端片选是可以自己控制的自己检测片选拉低,然后开始收数,实际片选就是使能信号。
总结:spi的时钟是主端直接供的不用自己供,也不用担心是否供的合适,实际上主端供了以后从端会等待主端时钟来。

你可能感兴趣的:(笔记)