程序代码见附件,用的M4的评估板,想完成于flash的通讯。执行两个命令之后收到的数据都是0。请问,没有数据发送时,clk引脚应该有脉冲吧?测试的波形不太对啊。。。
SPI有相位和极性需要设置,楼主请检查一下设置的是否正确。另外楼主也可以测量一下时序,看看是否符合FLASH芯片的时序要求,以便确认问题原因。
flash芯片的datasheet中说明了支持模式0和模式3,程序是设置好了,可是使能了SSI1之后,clk并没有时钟,可是cpu资料里说的是在RCGC1寄存器里使能了SSI之后,时钟就应该有了。还是说发送数据的时候,clk立即就有了?没发现那
是,SSI在idle的时候是没有SSICLK的。
xiaoyan lou:
貌似是初始化没设置好
参考如下:
www.deyisupport.com/.../7504.aspx
不发数据是没有clk的。SPI通讯的结构形象点可以看成一个移位寄存器的结构。slave的数据是由master发出的时钟顶出来的。所以即使是想从slave读数据,master也是需要发数据出去才能产生clk将slave的buffer里面的数据顶出来。
hi,jack。我想读取slave的状态,发送一条读状态命令之后,回的数据是0,再发送一条命令(0或者其他),回的数据才是我发送第一条命令应该回复的结果。我想这应该是由于您解释的这个原因吧?只是,为什么第一条命令回的是0呢?这个0原来存在于slave的buffer里?谢谢