Cómo hablan los chips (UART, I2C, SPI, CAN)
También disponible en: Català · English
La idea
Un bus son unos cables compartidos por varios dispositivos. Hay que resolver tres problemas: quién habla, a quién y cuándo.
| Protocolo | Cables | Cómo elige destinatario | Velocidad típica |
|---|---|---|---|
| UART | 2 (TX, RX) | No hace falta: punto a punto | 9600 a 1 Mbaud |
| I2C | 2 (SDA, SCL) | Dirección de 7 bits | 100 o 400 kHz |
| SPI | 4 + un CS por dispositivo | Baja la línea CS del elegido | Varios MHz |
| CAN | 2 diferenciales | ID del mensaje; gana el menor | Hasta 1 Mbit/s |
Valores típicos; dependen del chip.
UART
Bit de inicio (línea baja), 8 bits de datos con el menos significativo primero y bit de parada. El baud rate fija la velocidad. Es la base de los adaptadores USB-serie, los GPS y el bus de los servos Feetech.
I2C
Primero se envía la dirección; solo el dispositivo que coincide responde con ACK. Si nadie tiene esa dirección, se recibe NACK. Se usa en IMU, pantallas y sensores pequeños.
SPI
El controlador baja la línea CS (chip select) del dispositivo que quiere. Los datos salen y entran a la vez. Rápido, pero con más cables.
CAN
Nadie tiene dirección: cada mensaje lleva un ID. Si dos hablan a la vez, gana el ID menor y no se pierde nada (arbitraje). Se usa en coches y articulaciones de robots.
En la demo
Una pestaña por protocolo. En I2C, prueba una dirección que nadie tiene para ver el NACK.