当前位置: 代码迷 >> 单片机 >> 关于SPI协议的操作,该怎么处理
  详细解决方案

关于SPI协议的操作,该怎么处理

热度:162   发布时间:2016-04-28 16:26:42.0
关于SPI协议的操作
1:我在做PTR8000通信时,用了SPI操作协议,可是那时候做时时钟线,MISO,MOSI,CSN都是自己模拟的。(对了关于模拟有个地方不明白,就是读操作和写操作的延时是多少,这个有点模糊,当时是看了别人用了10个机器周期,我就照样子用了,可又发现读和写的延时不同,具体的请大侠们指点一下延时问题)
2:学长说模拟的SPI在模拟上占了不少单片机的资源,所以尽量用不模拟的办法,这样传输效率比较高。可是这样子具体是么样的步骤操作,SPI接口是哪些。我都不明白(可以说完全不知道),请各位GG,JJ指点迷津啊!!

------解决方案--------------------
读操作和写操作的延时可以在datasheet找到
SPI接口可以在网上一搜就知道了
------解决方案--------------------
很多单片机带有SPI接口,就可以简化程序.
一般会用SPI中断来提高效率.
------解决方案--------------------
如果说你的处理器,内部没有集成SPI,就只能IO口模拟SPI的时序,10个机器周期,你可以用汇编NOP实现,C嵌套汇编是可以的,延时确实不太准确的

如果说你的处理器内部有SPI,从处理器上会有MISO,MOSI,CLK,你只要配置相应寄存器,就可以了
------解决方案--------------------
延迟多少其实就是通信频率的设定而已.

如果是从机,不用考虑延迟,跟着clock信号走就对了.
如果是主机,你爱设置成多少就是多少,对方的步伐会跟着你的clock走.


------解决方案--------------------
探讨
如果说你的处理器,内部没有集成SPI,就只能IO口模拟SPI的时序,10个机器周期,你可以用汇编NOP实现,C嵌套汇编是可以的,延时确实不太准确的

如果说你的处理器内部有SPI,从处理器上会有MISO,MOSI,CLK,你只要配置相应寄存器,就可以了

------解决方案--------------------
查你的芯片,是否带有硬件的SPI,如果有的话,配置好相关寄存器就可以了。
如果没有硬件的SPI,那么就需要软件模拟SPI。
软件模拟SPI的话,需要定你是主方还是从方,主方拉时钟。

------解决方案--------------------
向楼主好好学习!
------解决方案--------------------
探讨
延迟多少其实就是通信频率的设定而已.

如果是从机,不用考虑延迟,跟着clock信号走就对了.
如果是主机,你爱设置成多少就是多少,对方的步伐会跟着你的clock走.

------解决方案--------------------
SPI是以主SPI设备的CLK走的
  相关解决方案