请问大神什么是模拟SPI
什么是模拟SPI,找不到具体的定义。有程序代码解释是更好的。还有就是自己能够定义一种通信协议来进行通信么 相对于数字SPI??? 你对比一下这几个概念,用I/O模拟SPI,I/O模拟I2C,I/O模拟UART……,可能就会更清楚了 当然可以自己定义通信协议,如果两边都是你自己开发的 3楼所言极是,楼主参考 普通I/O口弄成SPI口使用,这就叫模拟。 与外设SPI通信时,如果单片机没有硬件SPI接口, 可以用 普通IO模拟SPI时序 作单片机的软SPI接口 利用IO做成的模拟SPI 在没有模块的时候 通讯用 如果单片机没有硬件SPI接口,可以用普通IO模拟SPI时序一般模拟的相对慢一些 三楼正解,用普通IO口做SPI的工作 打个比如吧:
本来在市场有现成的充电器卖,买一个回来直接用即可;
你偏偏要自己做一个。 如果单片机自带SPI接口,那么发送和接收时,只需要给某个寄存器赋值即可,硬件会自动发送
发送期间CPU就可以继续处理其他任务
而如果不带SPI,就需要作者读懂SPI时序,利用IO口的高/低赋值,来实现符合SPI协议的时序
效果上来说没什么差别,但是软件模拟时序时,肯定会占用更多的系统资源,效率会降低 同意11楼 xinfa190 发表于 2012-10-5 22:11 static/image/common/back.gif
当然可以自己定义通信协议,如果两边都是你自己开发的
通信协议是需要产生一些文件么?还是自己心中定义的一种规则,不需要产生文件的 52robot 发表于 2012-10-5 22:44 static/image/common/back.gif
3楼所言极是,楼主参考
呵呵 谢谢 zgxcom123 发表于 2012-10-6 12:11 static/image/common/back.gif
如果单片机自带SPI接口,那么发送和接收时,只需要给某个寄存器赋值即可,硬件会自动发送
发送期间CPU就可 ...
请问下如果自带有SPI协议的话,就是相当于单片机已经把SPI打包成相当于一个带参数的函数了。只要设计好寄存器就可以了。如果没有的话,就要按SPI时序去写程序。是这样理解么?可是SPI通行里有定义有MISO,MOSI,SCLK,CS四根线。进行SPI模拟时单片机如何知道CS为低时时从机,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取等这些SPI协议的时序。如果进行两个单片机通信,这样定义的I/O口不是只有高低电平的变化么? sunliezhi 发表于 2012-10-6 11:44 static/image/common/back.gif
打个比如吧:
本来在市场有现成的充电器卖,买一个回来直接用即可;
你偏偏要自己做一个。 ...
呵呵很形象 1987的一个人 发表于 2012-10-7 09:32 static/image/common/back.gif
请问下如果自带有SPI协议的话,就是相当于单片机已经把SPI打包成相当于一个带参数的函数了。只要设计好寄 ...
1、这样理解是可以的
2、如果是硬件SPI,那么会有不同的配置寄存器以应对不同的需求(比如主机从机,上升下降沿等(本人SPI方面做的不是很多,但可以保证的是,只要是标准SPI包含的可能,硬件SPI都会有相应设置的)); 而如果是软件SPI,就取决于作者的程序编写了…… zgxcom123 发表于 2012-10-7 12:32 static/image/common/back.gif
1、这样理解是可以的
2、如果是硬件SPI,那么会有不同的配置寄存器以应对不同的需求(比如主机从机,上升 ...
嗯 好的,谢谢! 提供一个 C51 的模拟 SPI.C 例程给楼主参考 : http://read.pudn.com/downloads33/sourcecode/embed/105552/spi0.c__.htm xyz543 发表于 2012-10-7 15:55 static/image/common/back.gif
提供一个 C51 的模拟 SPI.C 例程给楼主参考 : http://read.pudn.com/downloads33/sourcecode/embed/105552/ ...
好的 谢谢! 看了资料才知道SPI有四种模式.这么多模式...干脆自己模拟SPI算了.
页:
[1]