Plataformas y protocolos (visión general)
Esta página resume las características clave de las placas usadas y lo esencial de los protocolos UART, I2C y SPI para que cualquiera pueda replicar las conexiones sin ser experto.
Objetivo práctico: dejar definidos pines sugeridos, niveles lógicos y precauciones para evitar errores típicos (falta de GND común, pull-ups en I2C, sobre-voltaje 5V→3.3V, etc.).
1) Placas utilizadas
Arduino Nano (ATmega328P, 5 V)
- CPU / Reloj: 8-bit @ 16 MHz
- Memoria: 32 KB Flash (≈2 KB bootloader), 2 KB SRAM, 1 KB EEPROM
- I/O: 22 digitales (6 PWM), 8 analógicas
- Periféricos HW: 1×UART, 1×I2C (TWI), 1×SPI
- Nivel lógico: 5 V
- Notas prácticas: UART HW está compartido con USB-serial (D0/D1)
Pines sugeridos para esta práctica
Protocolo | Pines Nano | Comentario |
---|---|---|
UART | D1 (TX), D0 (RX) | Conectado al USB-serial |
I2C | A4 (SDA), A5 (SCL) | Requiere pull-ups |
SPI | D13 (SCK), D11 (MOSI), D12 (MISO), D10 (SS) | SS como CS/SS |
Seeed XIAO RP2040 (3.3 V)
- CPU / Reloj: 2×Cortex-M0+ @ hasta 133 MHz
- Memoria: 264 KB SRAM, 2 MB Flash a bordo
- Periféricos HW: 2×UART, 2×I2C, 2×SPI, PIO
- Nivel lógico: 3.3 V
- GPIO en la placa XIAO: 11 GPIO útiles
Pines sugeridos (ajusta si tu serigrafía varía)
Protocolo | Pines RP2040 | Comentario |
---|---|---|
UART | GP0 (TX) , GP1 (RX) | UART0 |
I2C | GP4 (SDA) , GP5 (SCL) | I2C0 + pull-ups |
SPI | GP18 (SCK) , GP19 (MOSI) , GP16 (MISO) , GP17 (CS) | SPI0 |
ESP32 DevKit (3.3 V)
- CPU / Reloj: Dual-core @ 160–240 MHz
- Memoria: ~520 KB SRAM internos, 4 MB Flash típica
- Periféricos HW: 3×UART, 2×I2C, 2×SPI (HSPI/VSPI), WiFi/BLE
- Nivel lógico: 3.3 V
Pines sugeridos
Protocolo | Pines ESP32 | Comentario |
---|---|---|
UART | GPIO1 (TX0) , GPIO3 (RX0) | O usa UART2: GPIO17 (TX) , GPIO16 (RX) |
I2C | GPIO21 (SDA) , GPIO22 (SCL) | Requiere pull-ups |
SPI | GPIO18 (SCK) , GPIO23 (MOSI) , GPIO19 (MISO) , GPIO5 (CS) | VSPI |
Precaución de niveles: En I2C, utiliza pull-ups a 3.3 V.
2) Protocolos de comunicación (qué, cuándo y cómo)
Protocolo | Líneas | Topología | Velocidad típica | Dirección | Pros | Contras |
---|---|---|---|---|---|---|
UART | TX, RX (+GND) | Punto a punto | 9 600 – 1 000 000 baudios | Sin direcciones | Simple, muy común, fácil de depurar | No multi-nodo, timing sensible |
I2C | SDA, SCL (+GND) | Bus compartido maestro–múltiples esclavos | 100 k / 400 k (hasta 1 MHz en fast mode+) | Por dirección | Solo 2 cables, multi-nodo, hot-swap | Requiere pull-ups, más ruido/latencia |
SPI | SCK, MOSI, MISO, CS (+GND) | Maestro–varios esclavos (CS por dispositivo) | 1–10+ MHz (según placa/cables) | Por línea CS | Muy rápido, full-duplex | Más cables, un CS por esclavo |
Checklist por protocolo
- UART: TX↔RX cruzados, misma configuración (baud/paridad/stop), GND común.
- I2C: pull-ups en SDA/SCL, dirección correcta, GND común, cable corto.
- SPI: define CS por esclavo, misma polaridad/fase (modo SPI), GND común.
Consejo: siempre empieza probando solo 1 enlace (p. ej., RP2040↔ESP32 por UART), valida eco y luego escala a I2C/SPI.
3) Qué archivos y dónde?
- Códigos por placa →
----
- Esquemas (PNG/SVG exportados) →
----
- Fotos de conexiones reales →
----
- Logs CSV de cada prueba →
----
- Videos cortos de demostración →
----