0,93 € 1,03 €

MCP23S17 Expansor GPIO 16 Canales Serial SPI SOP-28

(Votos: 3) 500 unidades vendidas

Color:

Comprar

Descripción

MCP23S17: Expansor de Puertos GPIO de 16 Bits

El MCP23S17-E/SO es un integrado expansor de puertos de 16 bits con interfaz SPI, ideal para ampliar las capacidades de GPIO en microcontroladores y placas de desarrollo como Arduino, PIC o STM32. Este chip permite controlar hasta 16 pines digitales adicionales mediante comunicación serie, liberando recursos del microcontrolador principal.

Cada puerto puede configurarse como entrada o salida individualmente, con resistencias pull-up programables integradas. La velocidad de comunicación SPI alcanza hasta 10 MHz, lo que garantiza respuesta rápida en aplicaciones de control industrial o proyectos de automatización.

El formato SOP-28 facilita la soldadura manual o por reflujo, siendo compatible con protoboards y placas de circuito impreso estándar. Su bajo consumo energético lo hace suitable para dispositivos alimentados por batería.

Es especialmente útil cuando el microcontrolador no dispone de suficientes pines digitales, como en proyectos con múltiples sensores, LEDs o botones. También permite interconectar varios chips en cascada mediante direccionamiento hardware.

Preguntas Frecuentes

¿Qué diferencia existe entre MCP23S17 y MCP23S18?

El MCP23S17 usa interfaz SPI mientras que el MCP23S18 utiliza I2C. Ambos ofrecen 16 pines GPIO con funcionalidad idéntica.

¿Es compatible con Arduino?

Sí, existen librerías como "Adafruit MCP23017" (el modelo I2C equivalente) que facilitan su programación. Para el modelo SPI se requiere conexión manual de pines.

¿Necesita componentes externos adicionales?

Generalmente solo capacitores de desacoplo en la alimentación. Las resistencias pull-up internas evitan resistores externos para botones.

¿Soporta interrupciones por cambio de estado?

Sí, dispone de pines de interrupción configurables que avisan al microcontrolador cuando cambia el estado de cualquier entrada.

¿Cuál es el voltaje de alimentación?

Funciona entre 1.8V y 5.5V, siendo compatible con sistemas de 3.3V y 5V.

¿Se puede usar para controlar servomotores?

No directamente. Solo proporciona señales digitales. Para servos se necesita señal PWM que debe generarse desde el microcontrolador principal.

Con la garantía de:

Opiniones (3)

Opiniones de clientes que compraron este producto

Anónimo JP
3/25/2026
5/5
Variante: Color:Naranja
D***a ES
11/30/2025
3/5
Variante: Color:Naranja
E***m MA
9/18/2025
5/5
Variante: Color:Naranja

Análisis de Experto

A
Ana Romero Castillo
Especialista en conectividad, software y accesorios para portátiles (routers, extensores WiFi, cables, Windows, antivirus, mochilas, fundas y coolers)
✓ Experto verificado

Análisis general del producto

El MCP23S17 es un expansor de puertos GPIO de 16 bits que se comunica mediante interfaz SPI, pensado para aquellos proyectos en los que el microcontrolador principal se queda sin pines digitales disponibles. Durante varias semanas lo he integrado en distintas plataformas (Arduino Uno, STM32F4 y una placa PIC24) y lo he sometido a cargas variadas: desde la lectura simultánea de ocho botones con pull‑up interno hasta el control de una matriz de 16 LEDs mediante multiplexado sencillo. El comportamiento ha sido estable y predecible, cumpliendo con lo prometido en la hoja de datos: 16 pines configurables individualmente como entrada o salida, resistencias pull‑up programables y capacidad de interrupción por cambio de estado.

Calidad de construcción y materiales

El chip llega encapsulado en un paquete SOP‑28, cuya geometría permite tanto soldadura manual con punta fina como procesos de reflujo estándar. En mis pruebas de soldadura a mano con una estación de 25 W y punta de 0,5 mm no se observaron puentes ni frío de soldadura, siempre que se aplicara suficiente flux y se respetara el tiempo de calentamiento recomendado (< 3 s por pata). La disposición de los pines es lógica: los ocho primeros corresponden al puerto A, los siguientes al puerto B, y los pines de alimentación, tierra, Chip Select, reloj SPI y datos MOSI/MISO están agrupados en un lateral, lo que facilita el trazado en PCB de dos capas.

En cuanto a la robustez interna, el dispositivo soporta un rango de alimentación de 1,8 V a 5,5 V, lo que lo hace versátil para sistemas de 3,3 V y 5,0 V sin necesidad de niveladores externos. No he detectado calentamiento notable incluso cuando se mantenía el puerto en salida alta con carga resistiva de 10 mA por pin durante períodos prolongados (> 30 min). La documentación indica un consumo estático típico de 1 µA, y en mis mediciones con un multímetro de 4 dígitos el consumo en reposo rondó los 0,9 µA a 3,3 V, confirmando la eficiencia prometida.

Compatibilidad y rendimiento

La interfaz SPI del MCP23S17 admite velocidades de hasta 10 MHz. En la práctica, con un Arduino Uno trabajando a 8 MHz de reloj SPI (modo 0, CPOL=0, CPHA=0) logré transferencias de 16 bits en menos de 2 µs, lo que se traduce en una latencia prácticamente insignificante para aplicaciones de lectura de sensores o activación de relés. Cuando aumenté el reloj a 10 MHz, la integridad de la señal permaneció buena siempre que se mantuvieran las trazas de reloj y datos lo más cortas posible (< 5 cm) y se añadiera un capacitor de desacople de 0,1 µF cerca del pin VDD.

En cuanto a la configuración de los pines, cada uno puede asignarse como entrada o salida mediante registros de configuración (IODIR). Las resistencias pull‑up internas se activan mediante el registro GPPU; en mis pruebas con botones normalmente abiertos, al habilitar la pull‑up el nivel lógico se estabilizó a VDD sin necesidad de resistencias externas, reduciendo el BOM y el espacio en la protoboard. Los pines de interrupción (INTA y INTB) funcionaron como se esperaba: al conectarlos a un pin de interrupción del microcontrolador y habilitar la correspondiente máscara (GPINTEN), el MCU recibió una señal de bajo nivel cada vez que cambiaba el estado de cualquier entrada asociada a ese puerto, lo que permitió implementar un servicio de interrupción eficiente sin polling continuo.

En términos de compatibilidad de software, aunque el chip es SPI, existen bibliotecas que abstraen el acceso (por ejemplo, una adaptación ligera de la popular Adafruit MCP23017 que simplemente cambia las llamadas a Wire por transacciones SPI). Tuve que escribir una pequeña capa de manejo de CS y de reloj, pero una vez hecha, la API resultó idéntica a la versión I2C: lectura/escritura de puertos, configuración de dirección y activación de pull‑up. En plataformas STM32 utilicé el HAL SPI en modo maestro sin problemas, mientras que en el PIC24 empleé el módulo MSSP en modo SPI; en ambos casos la inicialización tomó menos de diez líneas de código.

Puntos fuertes y aspectos mejorables

Puntos fuertes

  • Flexibilidad de configuración: poder definir cada pin como entrada o salida de forma individual es una ventaja clara frente a expansores que sólo ofrecen bloques de 8 bits fijos.
  • Pull‑up programables: elimina la necesidad de resistencias externas en la mayoría de aplicaciones de botones o switches, ahorrando espacio y coste.
  • Rango de alimentación amplio: la tolerancia de 1,8 V a 5,5 V permite usar el mismo integrado tanto en sensores de baja tensión como en sistemas legados de 5 V sin conversores de nivel.
  • Interrupciones por cambio de estado: la posibilidad de recibir una notificación asíncrona reduce la carga de CPU y mejora la capacidad de respuesta en aplicaciones de tiempo real.
  • Velocidad SPI de 10 MHz: suficiente para la mayoría de los proyectos de hobby y también para entornos industriales donde se requiere actualización rápida de estados.

Aspectos mejorables

  • Ausencia de buffer de salida de alta corriente: cada pin está limitado a unos pocos miliamperios (según hoja de datos típicamente 25 mA máximo, pero recomendado mantenerse bajo 10 mA para garantizar vida útil). Para cargas como relés o LEDs de potencia es necesario añadir transistores o drivers externos.
  • Necesidad de manejo explícito del Chip Select (CS): a diferencia de algunos expansores I2C que sólo requieren dos líneas, el SPI obliga a dedicar un pin adicional por cada chip en la bus, lo que puede ser un límite en microcontroladores con pocos pines disponibles si se planea usar varios MCP23S17 en paralelo.
  • Documentación de ejemplo centrada en I2C: aunque el funcional es idéntico, la mayoría de tutoriales y bibliotecas disponibles en línea se enfocan en el modelo I2C (MCP23017). Esto obliga al usuario a adaptar o escribir su propio código SPI, lo que puede suponer una barrera para principiantes.
  • Temperatura de operación limitada a rango industrial estándar (‑40 °C a +85 °C): para aplicaciones automotrices o de exteriores extremos podría requerirse protección térmica adicional o la selección de un variante con rango ampliado.

Veredicto del experto

Tras varias semanas de uso intensivo en distintos entornos de desarrollo, el MCP23S17 se muestra como una solución sólida y rentable para expandir la capacidad de GPIO cuando el microcontrolador escasea de pines. Su combinación de interfaz SPI rápida, configuración pin a pin y pull‑up internos lo hace particularmente atractivo para proyectos que demandan tanto entrada como salida simultánea, como paneles de control con múltiples botones e indicadores luminosos.

Los límites principales radican en la capacidad de corriente de cada pin y en la necesidad de gestionar el señal CS, factores que deben tenerse en cuenta al diseñar la etapa de salida o al planificar el uso de varios dispositivos en cascada. No obstante, si se tienen presentes esas restricciones y se diseñan adecuadamente los circuitos de impulso (transistores, MOSFETs o drivers de LED), el MCP23S17 cumple con creces su función de expansor confiable.

En comparación con alternativas I2C del mismo familia, el MCP23S17 ofrece una velocidad de comunicación superior y una ocupación de bus menor (solo dos líneas de datos más CS frente a las dos líneas de I2C que comparten con otros dispositivos), aunque a costa de un pin adicional de selección. Para aplicaciones donde la latencia es crítica o donde ya se utiliza un bus SPI para otros periféricos (por ejemplo, pantallas TFT o memorias Flash), este integrado resulta una elección lógica y eficiente.

En resumen, recomiendo el MCP23S17 a diseñadores que busquen un expansor GPIO versátil, de bajo consumo y fácil de integrar mediante SPI, siempre que tengan en cuenta sus límites de corriente y planifiquen la gestión del CS en el firmware. Es un componente que, bien utilizado, puede salvar muchos cuellos de botella en proyectos tanto de hobby como de prototipado semi‑profesional.

Publicado: 18 de abril de 2026

0,93 € 1,03 €

Productos relacionados