Motivo para elegir dispositivos flash basados en SPI sobre dispositivos I2C [duplicado]

4

He leído el siguiente enlace que dice que u-boot es compatible con tres tipos de tecnología flash

enlace

1.Nand 2.NOR 3.SPI Serial Flash

Me gustaría saber por qué se elige SPI para ser utilizado como dispositivos flash no I2C.

¿Por qué no podemos tener tecnología flash basada en I2C?

    
pregunta Amit Singh Tomar

2 respuestas

5

Hay tres razones por las que creo que SPI es una mejor opción que I2C en la mayoría de los proyectos.

  1. SPI se puede sincronizar más rápido que I2C. He usado SPI hasta 50Mhz en circuitos integrados que soportan esa velocidad, mientras que la velocidad máxima de I2C es de 3.4Mhz.

  2. Dado que I2C es una línea de datos 'compartida', el maestro debe liberar el control de la línea de datos para que el esclavo responda. He sido quemado en varios proyectos antes donde el maestro soltó el control y el IC esclavo procedió a bloquearse (principalmente debido al ruido en la línea). Ahora está en un estado en el que ambas partes esperan que la otra responda y usted necesita restablecer todo. Muy frustrante. Con SPI, usted salta de lado todas las líneas de datos compartidas porque cada línea tiene una dirección dedicada.

  3. Si tiene una diferencia de nivel de voltaje entre los traductores de voltaje unidireccionales de su IC (digamos, 3.3V frente a 5V), es más fácil lidiar con ellos que con los tri estados necesarios para I2C.

En una nota al margen, me resulta más fácil depurar SPI si está usando las líneas de selección de chip, ya que puede usar esa línea para disparar en su alcance. Básicamente, todo se reduce a, si tiene los pines de repuesto, use SPI y ahórrese el dolor de cabeza. Si, por otro lado, solo tienes 2 pines, estás atascado con I2C. Pero, en serio, agregue una línea de restablecimiento por separado a su IC esclavo I2C, para que pueda recuperarse de un bus bloqueado.

    
respondido por el Peter
9

Ancho de banda. I 2 C remata a 3.4MHz. SPI no suda a 50MHz. Obviamente, se requiere un enrutamiento inteligente si desea alcanzar esa velocidad, pero es posible.

También, múltiples canales. SPI puede funcionar en "modo cuádruple", donde se transfieren 4 bits en cada ciclo en lugar de 1. Esto resulta en una tasa de datos de docenas de megabytes por segundo.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas