Cómo habilitar SPI / I2C en Raspberry Pi (y para qué usarlos)

Probablemente conozca los pines GPIO en la Raspberry Pi, pero ¿qué pasa con los conectores SPI e I2C? ¿Para qué son y cómo puedes hacer uso de ellos?

Probablemente conozca los pines GPIO en la Raspberry Pi, pero ¿qué pasa con los conectores SPI e I2C?  ¿Para qué son y cómo puedes hacer uso de ellos?
Anuncio

La Raspberry Pi se puede usar para casi cualquier cosa. Desde los centros multimedia para el hogar hasta las configuraciones de juego retro personalizadas, es seguro decir que el Pi y las computadoras de una sola placa se están volviendo omnipresentes.

Cuando comienzas a experimentar con los pines GPIO en Raspberry Pi, las cosas se ponen aún más interesantes. Ya hemos cubierto lo que hacen todos esos pines, así que ahora veamos cómo habilitar los protocolos SPI e I2C en su Pi y por qué es posible que desee hacerlo.

¿Qué es SPI en Raspberry Pi?

Antes de sumergirse, cubramos brevemente lo que hacen estos dos protocolos.

SPI (o Interfaz Periférica Serial) permite que un microcontrolador como el Pi se comunique con más de 100 componentes periféricos a la vez. El microcontrolador actúa como un "maestro" para todos los componentes "esclavos" y puede comunicarse con ellos a alta velocidad. Este diagrama describe una simple conexión SPI:

SPI e I2C en la Raspberry Pi
Crédito de la imagen: Cburnett / wikipedia.org

Si esta es la primera vez que lee sobre SPI, puede parecer bastante intimidante, ¡pero quédese con eso! SCLK es la velocidad de reloj establecida por el maestro que determina la velocidad con la que se comparte la información entre los dispositivos.

En cada ciclo (o "tic") del reloj, tanto el maestro como el esclavo envían y reciben un bit de información. Esto es para lo que son los pines MOSI (Master Out Slave In) y MISO (Master In Slave Out).

El pin SS o Slave Select (marcado CE0 o CE1 en el Pi) se utiliza para indicar a un dispositivo esclavo que se comunique con el maestro, o no, en un momento dado. En la mayoría de los casos, cada dispositivo esclavo requiere su propio pin SS, pero puede compartir los pines SCLK, MOSI y MISO.

Algunos dispositivos se pueden conectar en "margarita" para compartir un pin SS, manteniendo los pines totales usados ​​en cuatro, más dos para poder y tierra. SPI es conocido por ser increíblemente rápido y se usa comúnmente en registros de desplazamiento o ADCs (convertidores analógico a digital) para pasar datos entre dispositivos.

El canal de YouTube de Startups aumentados tiene un manual fácil de seguir para SPI que explica el protocolo más adelante:

Cómo habilitar SPI en Raspberry Pi

Para activar SPI en su Raspberry Pi, abra raspi-config desde el terminal ingresando:

sudo raspi-config 

Vaya a Opciones de interfaz, y en el siguiente menú seleccione P4 SPI Habilitar / Deshabilitar la carga automática del módulo kernel SPI . Seleccione en el indicador de la ventana. ¡SPI ahora está habilitado!

SPI e I2C en la Raspberry Pi

Alternativamente, puede habilitar SPI desde el archivo /boot/config.txt . Abra una ventana de terminal e ingrese:

 sudo nano /boot/config.txt 

Busque una línea que diga # dtparam = spi = on y elimine el símbolo # . Cualquiera sea la forma en que habilite SPI, se reiniciará su Pi y SPI.

¿Qué se puede hacer con SPI en Raspberry Pi?

Si bien hay cientos de proyectos diferentes que utilizan muchos periféricos SPI diferentes, un buen proyecto inicial es la programación de su propio lector de RFID.

Usamos el lector MFRC-522 en nuestro DIY Smart Lock con Arduino y el tutorial RFID DIY Smart Lock con Arduino y RFID DIY Smart Lock con Arduino y RFID Aquí se explica cómo construir un simple bloqueo inteligente basado en RFID usando un Arduino como la red troncal y una pocos componentes baratos. Lee mas . Para una introducción a RFID con sabor a Raspberry Pi, echa un vistazo a Instructable en profundidad de piddlerintheroot.

Este tipo de configuración no es solo para dispositivos electrónicos hobby. En nuestra colección de los mejores proyectos de Raspberry Pi Los 13 mejores proyectos de Raspberry Pi en 2017 Los 13 mejores proyectos de Raspberry Pi en 2017 Te sorprenderán estos impresionantes proyectos creativos de Raspberry Pi. Lea más, presentamos un sistema MES a escala completa que se ejecuta con Raspberry Pi y RFID, como parte de una operación de fábrica a gran escala en Europa.

¿Qué es I2C en Raspberry Pi?

I2C es un protocolo de comunicación creado por Phillips Electronics, que ha experimentado un aumento de uso en proyectos de hobby basados ​​en microcontroladores. La razón para esto es obvia: utiliza solo dos cables en lugar del mínimo de SPI cuatro. También es bien soportado por bibliotecas creadas por el usuario. Hay muchos componentes diseñados para ser utilizados con I2C en Raspberry Pi. Si bien es más lento que SPI, todavía funciona lo suficientemente rápido para la mayoría de los usos diarios.

Al igual que SPI, el protocolo tiene un dispositivo maestro, como el Pi, y un dispositivo esclavo, como una pantalla, registro de desplazamiento o un controlador de motor.

La primera conexión entre los dispositivos es el SCL (Serial Clock) que establece el maestro para sincronizar la transferencia de datos. La segunda línea es el SDA (datos en serie) que transfiere los datos entre todos los dispositivos en el bus I2C.

El dispositivo maestro comienza la comunicación con un bit de inicio y una dirección hexadecimal de siete bits. Esto debe coincidir con el dispositivo esclavo para que puedan comunicarse. Así es como se pueden usar tantos dispositivos con solo dos cables.

El dispositivo maestro luego especifica si desea leer o escribir ( R / W ) el esclavo, antes de recibir un acuse de recibo o ACK .

Las Startups Aumentadas de YouTuber brindan una vez más fácil de seguir y profundizar en I2C:

Cómo habilitar I2C en Raspberry Pi

I2C también está habilitado en el Pi a través del menú raspi-config . Abra la terminal e ingrese:

 sudo raspi-config 

Use las teclas de flecha para seleccionar Opciones de interfaz, seguido de P5 I2C Habilitar / Deshabilitar la carga automática del módulo del kernel I2C . Confirme que desea habilitar el protocolo, y debería ver una pantalla de confirmación.

SPI e I2C en la Raspberry Pi

Al igual que con SPI, también puede habilitar I2C modificando su archivo config.txt. Abra una terminal e ingrese:

 sudo nano /boot/config.txt 

Modifique # dtparam = i2c_arm = on, eliminando el símbolo # .

SPI e I2C en la Raspberry Pi

Reinicia tu Pi e I2C está listo para funcionar.

¿Qué se puede hacer con I2C en Raspberry Pi?

I2C es ideal para cualquier proyecto que requiera una gran cantidad de salidas. Un uso típico es para pantallas LCD, que requieren hasta 16 pines para usar. I2C reduce esto a solo dos para comunicación y dos para potencia y tierra.

Muchas pantallas LCD vienen con una "mochila" I2C unida, lo que las hace mucho más simples de configurar, y liberando el resto de sus pines Pi para otros sensores y periféricos.

TheRaspberryPiGuy tiene un tutorial detallado de YouTube sobre la configuración y el uso de una pantalla LCD con I2C en Raspberry Pi

¡Utilizando SPI e I2C Saves Pins!

SPI e I2C en Raspberry Pi ciertamente no son para principiantes de electrónica de hobby completos, pero tampoco son nada de qué temer.

Antes de sumergirse, sería una buena idea seguir nuestra guía para principiantes sobre Raspberry Pi para aprender los conceptos básicos.

Trabajar a través de algunos proyectos de ejemplo es la mejor manera de aprender, ¡y esperamos ver lo que se te ocurra! ¿Quién sabe qué extrañas y maravillosas creaciones de Raspberry Pi? 10 Proyectos más raros de Raspberry Pi 10 Proyectos de Raspberry Pi más raros Hay un científico loco dentro de cada uno de nosotros, y el Raspberry Pi permite que tu bribón interno salga y juegue. A veces, las cosas se ponen raras. Muy raro. Leer más lo harás?

In this article