IO Expander para XIAO

Este producto ya no está disponible para su compra.
El IO Expander para XIAO es una placa de expansión de última generación diseñada para mejorar las capacidades de la serie Seeed Studio XIAO. Impulsada por el chip MCP23017, esta placa ofrece 16 pines IO adicionales, lo que permite a los usuarios ampliar sus proyectos sin limitaciones. Tanto si eres un aficionado que quiere experimentar con más componentes como si eres un profesional que busca una solución fiable de expansión de IO, esta placa está diseñada para satisfacer tus necesidades. Su compatibilidad con la serie XIAO garantiza una integración perfecta, haciendo que tu proceso de desarrollo sea más fluido y eficiente.
Características
- Integración perfecta con XIAO: Diseñada para funcionar a la perfección con la serie Seeed Studio XIAO.
- 16 pines IO adicionales: Impulsada por el MCP23017, proporciona 16 pines 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 garantizar durabilidad y fiabilidad.
Especificación
- Chip: MCP23017
- Número de pines IO: 16
- Protocolo de comunicación: I2C
- Dirección I2C predeterminada: 0x21 (configurable a 0x20)
- Voltaje de funcionamiento: 3.3V
- Dimensiones: 21mm x 17.8mm
Aplicaciones
El IO Expander para XIAO es versátil y se puede utilizar en multitud de aplicaciones, incluidas, entre otras:
- Sistemas de automatización del hogar: Amplía el número de dispositivos que puedes controlar en tu configuración de hogar inteligente.
- Robótica: Añade más sensores, motores u otros componentes a tu robot sin quedarte sin pines IO.
- Consolas de juego: Diseña controladores personalizados u otros periféricos con una gran cantidad de botones e interruptores.
- Sistemas de control industrial: Gestiona más dispositivos y sensores en tu entorno industrial.
- Proyectos educativos: Enseña a los estudiantes sobre microcontroladores y electrónica sin estar limitado por el número de pines IO.
Descripción general del hardware
Esta sección proporciona una descripción detallada de los distintos componentes e interfaces de la placa XIAO IO Expander.

0. Pads estándar de XIAO
Estos son los pads estándar para conectar el microcontrolador XIAO.
1. Pads J1
Los pads J1 permiten a los usuarios decidir si conectan los pines RST, INTB e INTA del MCP23017 a los pines D6, D1 y D0 de XIAO mediante soldadura. De arriba a abajo, son RST, INTB, INTA.
De forma predeterminada, cuando utilizas la placa de expansión, los pads de salida adicionales en el área 8 están habilitados. Si no deseas habilitarlos, debes cortar con un cuchillo las dos almohadillas adyacentes en el área J1.
2. Chip MCP23017
Este es el chip principal de expansión de E/S, que proporciona 16 IO adicionales.
3. Pads J2
Este pad es para seleccionar la dirección I2C. La dirección predeterminada es 0x21. Si sueldas este pad, 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 desde PA0 hasta PB7, proporcionando un total de 16 IO.
5. Pads Grove
Si deseas conectar un módulo Grove, puedes soldar el zócalo Grove proporcionado. Esta interfaz Grove está conectada al bus I2C. Si decides utilizar aquí los pines IIC, entonces no podrás utilizar los pines IO extendidos en el área 4.
6. Pin VCC
Este es un pin de salida que se puede utilizar para alimentar otros componentes.
7. Pin GND
Este también es un pin de salida que se puede utilizar como tierra para otros componentes.
8. Pads de salida adicionales
Estos son algunos pads de salida adicionales, incluidos GND, INTB, INTA, RST. Si deseas soldar estos pines para utilizarlos en otro lugar, puedes hacerlo.
Primeros pasos
Bienvenido a la guía de inicio rápido del IO Expander para XIAO. Esta guía tiene como objetivo ayudarte a configurar y comenzar a utilizar tu nueva placa IO Expander junto con el controlador principal XIAO RP2040.
Preparación de hardware
Hay tres formas principales de utilizar esta placa de expansión,
Modo 1: SMD
Si tu XIAO no tiene pines soldados, entonces puedes elegir el método SMD directo para soldar el XIAO y la placa de expansión a la placa PCB para utilizar la función de expansión GPIO.

Las PCBs que se muestran son solo para exhibición y no estaban en los estantes para la venta en el momento de redactar el artículo.
Modo 2: XIAO se conecta directamente con la placa de expansión a través de la hilera 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 hilera larga de pines, y la placa de expansión se amplía soldando la hilera de pines
Con este método de conexión, eres libre de instalar cables DuPont en la placa de expansión GPIO. 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 ordenador. Para una guía detallada sobre cómo programar el XIAO RP2040, consulta este Wiki.

Preparación de software
Antes de poder empezar 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 IO en nivel alto y bajo
En el IDE de Arduino, 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);
}
Sube el código anterior a tu XIAO. Después de que el código se cargue correctamente, verás que todos los pines están a un nivel alto de 3.3V 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ógica.
Direccionamiento de pines
Cuando se utilizan operaciones de un solo pin como pinMode(pinId, dir) o digitalRead(pinId) o digitalWrite(pinId, val) entonces los pines se direccionan utilizando los ID que aparecen a continuación. Por ejemplo, para establecer el modo de GPB0 utiliza pinMode(8, ...). NOTA El MCP23008 y el 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 (FAQ)
1. ¿Por qué mi IO Expander para XIAO no responde?
Respuesta: Asegúrate de que el módulo XIAO esté correctamente conectado a la placa de expansión. Además, comprueba si las bibliotecas necesarias están instaladas y si la placa y el puerto correctos están seleccionados en el IDE de Arduino.
2. ¿Puedo usar el IO Expander para XIAO con otros microcontroladores?
Respuesta: Sí, el IO Expander está diseñado principalmente para el módulo XIAO, pero se puede usar con otros microcontroladores que admitan 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 el IO Expander para XIAO?
Respuesta: La dirección I2C predeterminada está configurada en 0x21. Si quieres cambiarla a 0x20, hay un puente etiquetado como "J2" en la placa. Necesitarás soldar el puente J2 para cambiar la dirección.
4. Estoy obteniendo ruido o un comportamiento errático en mis pines IO. ¿Cuál podría ser la causa?
Respuesta: Asegúrate de que las conexiones sean firmes y que no haya interferencias. El uso de resistencias pull-up o pull-down puede ayudar a estabilizar los pines de entrada. Además, 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 debate sobre el producto
Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.