I2C pros / SPI contras
- I2C necesita menos conexiones: solo se necesitan 2 cables de señal, frente a 3 + n para SPI donde n es el número de dispositivos esclavos que necesitan líneas SSEL o CS (es decir, en SPI, si tiene cinco dispositivos, necesita 3 + 5 líneas).
- I2C usa direccionamiento de chip, lo que significa que no hay necesidad de líneas SSEL / CS (igual que arriba), y los dispositivos I2C se pueden agregar fácilmente al bus. Para agregar un dispositivo a un bus SPI, necesitaría agregar una línea SSEL / CS adicional, y necesitaría saber exactamente qué líneas SSEL / CS están conectadas a qué dispositivos.
- I2C utiliza un bus de colector abierto, que permite cierta flexibilidad en el voltaje del bus (en muchos casos, pero no en todos los casos, se pueden mezclar dispositivos lógicos de 3.3V y 5V). En SPI, el voltaje del bus debe ser el que sea compatible con todos los dispositivos.
- I2C es multimaestro. Es posible que múltiples dispositivos en el bus sean el dispositivo maestro, y también cambiar un dispositivo entre dispositivo maestro y esclavo (si es compatible), sin necesidad de cambiar el cableado. En SPI, las relaciones maestro / esclavo se fijan mediante el cableado.
Pros de SPI / Contras de I2C
- SPI tiene un protocolo más simple, y en la mayoría de los microcontroladores tiene menos gastos generales de procesamiento. I2C en la mayoría de los microcontroladores requiere una pila controlada por software para controlar el protocolo.
- SPI tiene velocidades más rápidas y rangos más largos. SPI puede usar push-pull y, por lo tanto, puede conducir líneas más rápido que I2C, cuyo diseño de colector abierto significa que las velocidades de rotación son limitadas y se ven afectadas por la capacitancia de línea.
- SPI ejecuta full-duplex ya que tiene líneas separadas para transmitir y recibir. I2C es solo half-duplex.
- SPI utiliza líneas SSEL / CS, lo que permite conectar múltiples chips del mismo tipo. En I2C, generalmente hay un número limitado de combinaciones de direcciones seleccionables por el usuario para un chip (y requiere que la dirección se seleccione en la etapa de diseño del circuito), y los conflictos de direcciones son posibles entre dos chips diferentes.
Resumen: I2C es más flexible. SPI es más rápido.
- ¿Cuál es la diferencia entre el mecanismo de comunicación de I2C y USB?
- ¿Qué lenguaje de programación necesitas para programar micro chips?
- ¿Es necesaria la OOP para la ingeniería integrada?
- ¿Cómo podrían ayudarme los sistemas integrados?
- ¿Cuál es la diferencia entre el gestor de arranque, el código de inicio y el cargador de arranque?