发布于 2013-11-09 05:52:45
( 1)当然,没有任何限制。
SPI将是最简单的,因为每个设备都有一个独立的芯片选择。您只需确保SPI设备不认为其芯片选择在连接/断开进程中的某个点处于活动状态,或者它可能会断言其MISO线路并导致争用。会有许多方法来排序电源或重置的SPI设备,以确保该部分的工作。
I2C会更棘手..。作为在传输过程中连接的设备,可能会将它在正在进行的传输中看到的第一个字节解释为一个命令,并且可能会做一些不好的事情。您可以在热交换的I2C设备前面放置一个双向电平移位器或缓冲区,其中可能还有一个触发器来锁定该启用,并在总线上空闲期间设置一个二级"bus_clear“消息以启用任何新的热交换缓冲区。会有很多方法来完成同样的事情。
( 2)和( 3)没有一般答案。
SPI可以跑得更快,所以如果你需要速度的话,那是最好的选择。微到DSP意味着。然而,一个是微型的,另一个是DSP,这一事实并不能告诉你任何事情,除非你开始假设。如果微程序只是从一组DSP中获取小的结果包,该怎么办?I2C会让这更容易。
同样,ADC可能需要速度,也可能不需要速度。如果它们很多,并且所需的数据速率很低,那么I2C也更有意义。
SPI几乎总是更简单的使用,所以如果没有太多的设备,这是一个好处。I2C使用的引脚较少。
很多时候,选择I2C还是SPI是基于您想要使用的部件作为接口。另一个非常重要的因素是在系统中还需要发生什么,以及对尽可能多的部件来说,什么总线是有意义的。
还有更多的:设计重用,奇怪的固件/RTOS限制,等等。有很多原因你不能说其中一个是“更好”在一般情况下。什么对你的设计更好只是没有那么简单。
我认为这些问题是“让你说话”的问题..。
https://stackoverflow.com/questions/19872541
复制相似问题