Expansor de GPIOs para XIAO
El Expansor de IO para XIAO es una placa de expansión de última generación diseñada para mejorar las capacidades de la serie Seeed Studio XIAO. Alimentada por el chip MCP23017, esta placa ofrece 16 pines de IO adicionales, permitiendo a los usuarios expandir sus proyectos sin limitaciones. Ya seas un aficionado que busca experimentar con más componentes o un profesional que necesita una solución confiable para la expansión de IO, esta placa está diseñada para satisfacer tus necesidades. Su compatibilidad con la serie XIAO asegura una integración sin problemas, haciendo que tu proceso de desarrollo sea más fluido y eficiente.
Características
- Integración sin problemas con XIAO: Diseñada para funcionar perfectamente con la serie Seeed Studio XIAO.
- 16 pines de IO adicionales: Alimentada por el MCP23017, proporciona 16 pines de IO extra para tus proyectos.
- Interfaz I2C con dirección configurable: La dirección I2C predeterminada es 0x21, pero se puede configurar a 0x20.
- Diseño robusto: Construida con materiales de alta calidad para asegurar longevidad y fiabilidad.
Especificaciones
- Chip: MCP23017
- Número de pines de IO: 16
- Protocolo de comunicación: I2C
- Dirección I2C predeterminada: 0x21 (configurable a 0x20)
- Voltaje de operación: 3.3V
- Dimensiones: 21mm x 17mm
Aplicaciones
El Expansor de IO para XIAO es versátil y puede ser utilizado en una variedad de aplicaciones, incluyendo pero no limitándose a:
- Sistemas de automatización del hogar: Expande la cantidad de dispositivos que puedes controlar en tu configuración de casa inteligente.
- Robótica: Añade más sensores, motores u otros componentes a tu robot sin quedarte sin pines de IO.
- Consolas de videojuegos: Diseña controladores personalizados u otros periféricos con una gran cantidad de botones y interruptores.
- Sistemas de control industrial: Gestiona más dispositivos y sensores en tu configuración industrial.
- Proyectos educativos: Enseña a los estudiantes sobre microcontroladores y electrónica sin estar limitado por la cantidad de pines de IO.
Visión general del hardware
Esta sección proporciona una descripción detallada de los diversos componentes e interfaces en la placa Expansor de IO para XIAO.
0. Pads estándar de XIAO
Estas son las Pads estándar para conectar el microcontrolador XIAO.
1. Pads J1
Las Pads J1 permiten a los usuarios decidir si conectar los pines RST, INTB e INTA del MCP23017 a los pines D6, D1 y D0 del XIAO mediante soldadura. De arriba hacia abajo, son RST, INTB, INTA.
Por defecto, cuando uses la placa de expansión, las Pads de salida adicional en el área 8 están habilitadas. Si no deseas habilitarlas, debes cortar las dos Pads adyacentes en el área J1 con un cuchillo.
2. Chip MCP23017
Este es el chip principal de expansión de I/O, proporcionando 16 pines de I/O adicionales.
3. Pads J2
Esta almohadilla se utiliza para seleccionar la dirección I2C. La dirección predeterminada es 0x21. Si soldas esta almohadilla, la dirección se puede cambiar a 0x20.
4. Pines de salida del MCP23017
Estos son los pines de salida del chip MCP23017. La definición de cada pin se puede ver en la parte posterior de la placa. Van de PA0 a PB7, proporcionando un total de 16 pines de I/O.
5. Pads Grove
Si deseas conectar un módulo Grove, puedes soldar el conector Grove proporcionado. Esta interfaz Grove está conectada al bus I2C. Si decides usar los pines IIC aquí, no podrás usar los pines de I/O extendidos en el área 4.
6. Pin VCC
Este es un pin de salida que puede ser utilizado para alimentar otros componentes.
7. Pin GND
Este también es un pin de salida que puede ser utilizado para la conexión a tierra de otros componentes.
8. Pads de salida adicionales
Estas son algunas Pads de salida adicionales, que incluyen GND, INTB, INTA y RST. Si deseas soldar estos pines para usarlos en otro lugar, puedes hacerlo.
Empezando
Bienvenido a la guía rápida de inicio para el Expansor de IO para XIAO. Esta guía tiene como objetivo ayudarte a configurar y comenzar con tu nueva placa Expansor de IO junto con el controlador principal XIAO RP2040.
Preparación de hardware
Existen tres formas principales de utilizar esta placa de expansión:
Modo 1: SMD
Si tu XIAO no tiene pines soldados, puedes optar por el método SMD directo para soldar el XIAO y la placa de expansión a la placa PCB y utilizar la función de expansión GPIO.
Las PCBs mostradas son solo para exhibición y no estaban disponibles para la venta en las estanterías al momento del artículo.
Modo 2: XIAO se conecta directamente con la placa de expansión a través de la fila de pines
En este enfoque, tienes la opción de soldar cables de conexión directamente a la placa de expansión GPIO para conectar tu dispositivo objetivo.
Modo 3: XIAO se conecta con la placa de expansión a través de la larga fila de pines, y la placa de expansión se amplía soldando la fila de pines
Con este método de conexión, tienes la libertad de instalar cables DuPont en la placa de expansión GPIO. Un cableado conveniente para tu aplicación.
Una vez que la soldadura esté completa, puedes proceder a conectar la placa de expansión al controlador principal XIAO RP2040.
Para programar el XIAO RP2040, necesitarás un cable de datos USB TYPE-C. Conecta un extremo al XIAO RP2040 y el otro a tu computadora. Para una guía detallada sobre la programación del XIAO RP2040, consulta este Wiki.
Preparación del software
Antes de comenzar a programar la placa, necesitarás una biblioteca específica para XIAO. Descarga la biblioteca MCP23017 desde este enlace de GitHub. Una vez descargada, instala la biblioteca en tu entorno de programación.
Demo: Salida de IO en niveles alto y bajo
En el Arduino IDE, abre un nuevo sketch y copia el siguiente código de ejemplo:
#include <Adafruit_MCP23X17.h>
Adafruit_MCP23X17 mcp;
void setup() {
Serial.begin(9600);
Serial.println("MCP23xxx Blink Test!");
if (!mcp.begin_I2C()) {
Serial.println("Error.");
while (1);
}
Serial.println("Looping...");
for(int i=0; i<16; i++) {
mcp.pinMode(i, OUTPUT);
}
}
void loop() {
mcp.digitalWrite(15, LOW); //PB7
mcp.digitalWrite(14, HIGH); //PB6
mcp.digitalWrite(13, HIGH); //PB5
mcp.digitalWrite(12, HIGH); //PB4
mcp.digitalWrite(11, HIGH); //PB3
mcp.digitalWrite(10, HIGH); //PB2
mcp.digitalWrite(9, HIGH); //PB1
mcp.digitalWrite(8, HIGH); //PB0
mcp.digitalWrite(7, HIGH); //PA7
mcp.digitalWrite(6, HIGH); //PA6
mcp.digitalWrite(5, HIGH); //PA5
mcp.digitalWrite(4, HIGH); //PA4
mcp.digitalWrite(3, HIGH); //PA3
mcp.digitalWrite(2, HIGH); //PA2
mcp.digitalWrite(1, HIGH); //PA1
mcp.digitalWrite(0, HIGH); //PA0
delay(1000);
}
Carga el código anterior a tu XIAO. Después de que el código se haya cargado correctamente, verás que todos los pines están a 3.3V (nivel alto), excepto el pin PB7.
Esta placa de expansión solo puede utilizar entradas y salidas digitales, no funciones de PWM ni de entrada y salida analógicas.
Dirección de pines
Cuando utilices operaciones de un solo pin, como pinMode(pinId, dir), digitalRead(pinId) o digitalWrite(pinId, val), los pines se direccionan utilizando los ID's que se indican a continuación. Por ejemplo, para establecer el modo de GPB0, usa pinMode(8, ...). NOTA: El MCP23008 y MCP23S08 solo tienen pines GPAx.
Pin MCP23x17 | Nombre de Pin | ID de Pin |
---|---|---|
21 | GPA0 | 0 |
22 | GPA1 | 1 |
23 | GPA2 | 2 |
24 | GPA3 | 3 |
25 | GPA4 | 4 |
26 | GPA5 | 5 |
27 | GPA6 | 6 |
28 | GPA7 | 7 |
1 | GPB0 | 8 |
2 | GPB1 | 9 |
3 | GPB2 | 10 |
4 | GPB3 | 11 |
5 | GPB4 | 12 |
6 | GPB5 | 13 |
7 | GPB6 | 14 |
8 | GPB7 | 15 |
Preguntas Frecuentes
1. ¿Por qué mi Expansión de IO para XIAO no responde?
Respuesta: Asegúrate de que el módulo XIAO esté correctamente conectado a la placa de expansión. También verifica que las bibliotecas necesarias estén instaladas y que se haya seleccionado la placa y el puerto correctos en el Arduino IDE.
2. ¿Puedo usar la Expansión de IO para XIAO con otros microcontroladores?
Respuesta: Sí, la Expansión de IO está diseñada principalmente para el módulo XIAO, pero puede usarse con otros microcontroladores que soporten comunicación I2C. Es posible que necesites ajustar el código y las conexiones en consecuencia.
3. ¿Cómo cambio la dirección I2C del chip MCP23017 en la Expansión de IO para XIAO?
Respuesta: La dirección I2C por defecto es 0x21. Si deseas cambiarla a 0x20, hay un jumper etiquetado como "J2" en la placa. Necesitarás soldar el jumper J2 para cambiar la dirección.
4. Estoy obteniendo ruido o comportamientos erráticos en mis pines de IO. ¿Cuál podría ser la causa?
Respuesta: Asegúrate de que las conexiones estén seguras y no haya interferencias. Usar resistencias pull-up o pull-down puede ayudar a estabilizar los pines de entrada. También, asegúrate de que la fuente de alimentación sea estable y pueda proporcionar la corriente necesaria para todos los dispositivos conectados.
Recursos
- [ZIP] Archivo Eagle
- [PDF] Hoja de datos - MCP23017
Soporte Técnico y Discusión del Producto
¡Gracias por elegir nuestros productos! Estamos aquí para ofrecerte soporte y asegurarnos de que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a tus preferencias y necesidades.