El MCP2515 es un popular módulo controlador CAN (Controller Area Network) que permite a los dispositivos Raspberry Pi comunicarse con sistemas compatibles con CAN. Esto lo hace ideal para proyectos automotrices, automatización industrial y aplicaciones IoT. Esta guía explica cómo configurar y usar el MCP2515 con una Raspberry Pi.
Qué necesitarás
- Raspberry Pi (cualquier modelo con soporte GPIO, p. ej., Pi 3, Pi 4)
- Módulo CAN MCP2515
- Protoboard y cables de puente
- Un equipo con acceso SSH a la Raspberry Pi o un teclado y monitor conectados
- Python instalado en la Raspberry Pi
- Módulo transceptor CAN (si no está incluido con el MCP2515)
Paso 1: Cableado del MCP2515 a la Raspberry Pi
El MCP2515 se comunica con la Raspberry Pi usando el protocolo SPI.
Conexiones (Modo SPI)
| Pin de MCP2515 | Pin de Raspberry Pi |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Tierra (Pin 6) |
| CS | GPIO8 (Pin 24, SPI0_CE0) |
| SO | GPIO9 (Pin 21, SPI0_MISO) |
| SI | GPIO10 (Pin 19, SPI0_MOSI) |
| SCK | GPIO11 (Pin 23, SPI0_SCLK) |
| INT | GPIO25 (Pin 22) |
Paso 2: Habilitar la interfaz SPI en la Raspberry Pi
- Abre la herramienta de configuración de Raspberry Pi:
sudo raspi-config - Navega a Interface Options > SPI y habilítala.
- Reinicia la Raspberry Pi:
sudo reboot
Paso 3: Instalar librerías y herramientas necesarias
- Actualiza tu Raspberry Pi:
sudo apt update && sudo apt upgrade -y - Instala el paquete
can-utilspara comunicación CAN:sudo apt install -y can-utils
Paso 4: Configurar la interfaz CAN
-
Abre el archivo
/boot/config.txt:sudo nano /boot/config.txt -
Agrega las siguientes líneas para habilitar el overlay del MCP2515:
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835Guarda y sal.
-
Reinicia la Raspberry Pi:
sudo reboot -
Activa la interfaz CAN:
sudo ip link set can0 up type can bitrate 500000 -
Verifica la interfaz CAN:
ifconfig can0
Paso 5: Probar el MCP2515
-
Enviar un mensaje CAN: Usa el comando
cansendpara enviar un mensaje de prueba:cansend can0 123#DEADBEEF -
Recibir un mensaje CAN: Usa el comando
candumppara monitorizar mensajes entrantes:candump can0
Paso 6: Usar Python para comunicarse con el MCP2515
Instala la librería python-can para enviar y recibir mensajes CAN desde Python.
Instalación
pip install python-can
Script de ejemplo en Python
import can
# Create a CAN bus instance
bus = can.interface.Bus(channel='can0', bustype='socketcan')
# Send a CAN message
msg = can.Message(arbitration_id=0x123, data=[0xDE, 0xAD, 0xBE, 0xEF], is_extended_id=False)
bus.send(msg)
print("Message sent: ", msg)
# Receive a CAN message
print("Waiting for a message...")
message = bus.recv()
print("Received message: ", message)
Solución de problemas
-
Interfaz CAN no encontrada:
- Verifica que la interfaz SPI esté habilitada.
- Revisa el cableado entre la Raspberry Pi y el MCP2515.
- Asegúrate de que el archivo
/boot/config.txtesté configurado correctamente.
-
No hay mensajes CAN:
- Verifica que el bus CAN esté correctamente terminada/o con resistencias de 120 ohm.
- Asegúrate de que la velocidad (bitrate) coincida en todos los dispositivos del bus CAN.
-
Errores en Python:
- Asegúrate de que la librería
python-canesté instalada. - Revisa el script de Python por errores tipográficos o de configuración.
- Asegúrate de que la librería
Aplicaciones del MCP2515
- Diagnóstico y monitorización automotriz
- Sistemas de automatización industrial
- Redes de comunicación en robótica
- Proyectos IoT que requieren protocolos de comunicación fiables
Conclusión
El módulo controlador MCP2515 CAN controller module añade capacidades de comunicación robustas a tu Raspberry Pi, lo que lo hace ideal para aplicaciones automotrices, industriales y de IoT. Siguiendo esta guía, puedes configurar y probar el MCP2515 y comenzar a construir proyectos potentes que aprovechen el protocolo CAN.





