Nos hemos acostumbrado a que las funciones disponibles de GPIO de las computadoras Raspberry Pi permanezcan prácticamente iguales a lo largo de los años, por lo que podría haber pasado un poco desapercibido: la Raspberry Pi 4 tiene seis controladores SPI, seis controladores I2C, y seis UART, todo en su encabezado de 40 pines. No puede hacer uso de todos estos a la vez, pero con hasta cuatro conexiones diferentes conectadas a un solo pin, puede crear una combinación bastante poderosa de periféricos para su próximo proyecto de robótica, automatización o pastoreo de gatos.
La hoja de datos para estos periféricos es agradable de leer, con todos los mapas de registro bien diseñados, incluso si no planea trabajar con los mapas de registro usted mismo, ¡los mantenedores de sus bibliotecas de habilitación de hardware preferidas lo tendrán más fácil! Y, por supuesto, estos periféricos también están presentes en el Compute Module 4. Puede parecer que tal avalancha de interfaces es excesiva, sin embargo, te permite lograr algunas cosas geniales que de otro modo no serían posibles.
Tener múltiples interfaces I2C ayuda a lidiar con varios problemas específicos de I2C, como conflictos de direcciones, problemas de rendimiento y dispositivos de mezcla que admiten diferentes velocidades máximas, lo que significa que ya no necesita chips mux sofisticados para ejecutar cinco sensores de cámara térmica Melexis de baja resolución al mismo tiempo. una vez. (¡Ah, y el error de estiramiento del reloj I2C se ha solucionado!) Las interfaces SPI se utilizan para dispositivos con un gran ancho de banda, y con algunos puertos SPI separados, puede ejecutar varias pantallas de resolución relativamente alta a la vez, estilo de reloj No-Nixie Nixie .
En cuanto a los UART, la interfaz UART de una y media de Raspberry Pi ha sido durante mucho tiempo un problema en las aplicaciones de robótica y automatización del hogar. Con una gran cantidad de dispositivos como receptores/transmisores de radio, LIDAR e interfaces multipunto RS485 resistentes disponibles en forma de UART, es bueno que ya no tenga que sacrificar Bluetooth o una consola de depuración para conectar algunos sensores sofisticados al cerebro de su robot. Puede habilitar hasta seis UART.
¿Cómo utilizar estas interfaces?
Habilitar estas interfaces parece ser sencillo, y las personas en los foros de Raspberry Pi y otros lugares las han estado probando para sus propios esfuerzos. Los tres tipos de interfaces se pueden habilitar usando líneas dtoverlay
config.txt
. Para SPI, el blog [MaSt] proporciona algunos ejemplos útiles:
# enabling SPI6 with two CS pins - one on GPIO16 and other on GPIO26
dtoverlay=spi6-2cs,cs0_pin=16,cs1_pin=26
Para I2C y UART, los hilos del foro de Raspberry Pi proporcionaron algunos ejemplos. Ejemplo I2C:
# Enabling I2C3, with SDA on GPIO4 and SCL on GPIO5
dtoverlay=i2c3,pins_4_5
ejemplo UART:
# Enabling UART, with RTS and CTS pins (omit the 'ctsrts' part to disable them)
dtoverlay=uart3,ctsrts
Desde aquí, estas interfaces aparecerán como las esperaría, como /dev/spi6
, /dev/i2c-3
y /dev/ttyAMA*
respectivamente. (Los puertos serie aún no tienen alias, por lo que obtendrá un /dev/ttyAMA
agregado a los existentes).
Nos sorprendió enterarnos de estos nuevos periféricos, ¿y tal vez usted también? No podemos esperar a ver qué harás con ellos.
Imagen principal remezclada del diagrama de distribución de pines GPIO de Raspberry Pi 4 por [Les Pounder].