Skip to content
RFrftools.io
PROTOCOLbeginner

UART x SPI x I2C

UART, SPI e I2C são os três protocolos seriais mais comuns para sistemas embarcados. Cada um foi projetado para um caso de uso diferente: UART para links assíncronos ponto a ponto, SPI para barramentos periféricos de alta velocidade e I2C para comunicação de vários dispositivos por meio de dois fios. A escolha correta depende da velocidade, do número de pinos e da topologia.

UART (receptor/transmissor assíncrono universal)

O UART é um protocolo serial assíncrono ponto a ponto que usa linhas TX e RX separadas. Sem relógio compartilhado — ambos os lados devem concordar com a taxa de transmissão. Velocidades padrão de 9600 a 4 Mbps. Usado para consoles de depuração, módulos GPS e módulos Bluetooth.

Advantages

  • Hardware simples — apenas dois fios (TX, RX)
  • Não é necessário sinal de relógio — operação assíncrona
  • Suportado universalmente — quase todos os MCU têm um UART
  • Funciona com cabos longos e é fácil de depurar com um terminal

Disadvantages

  • Somente ponto a ponto — sem barramento nativo para vários dispositivos
  • Ambos os lados devem concordar com a taxa de transmissão — a configuração incorreta causa dados distorcidos
  • Velocidade mais baixa que o SPI para transferências em massa
  • Requer bytes de enquadramento e bits de início/parada — ~ 20% de sobrecarga

When to use

Use o UART para links ponto a ponto: receptores GPS, módulos Bluetooth/WiFi, registro de depuração e dispositivos industriais com RS-232/RS-485. Ideal quando a simplicidade e a comunicação de longo alcance são mais importantes do que a velocidade.

Calculadora de taxa de transmissão UART

I2C (Circuito Interintegrado)

O I2C é um protocolo de barramento de dois fios (SDA+SCL) que suporta vários mestres e até 127 dispositivos em um único barramento. Velocidades padrão: 100 kbps, 400 kbps, 1 Mbps (Fast+), 3,4 Mbps (Alta velocidade). Usa endereçamento de 7 bits.

Advantages

  • Somente dois fios (SDA + SCL), independentemente da contagem de dispositivos
  • Barramento para vários dispositivos — até 127 dispositivos endereçáveis
  • Não são necessárias linhas de seleção de chip — o endereçamento é em banda
  • Adequado para sensores, EEPROMs, RTCs e controladores de tela

Disadvantages

  • Mais lento que o SPI para transferências de dados em massa
  • O barramento de drenagem aberta requer resistores de tração — limita a velocidade em traços longos
  • Possíveis conflitos de endereço com dispositivos de endereço fixo
  • Não é adequado para fluxos de dados de alta velocidade

When to use

Use o I2C quando tiver vários periféricos de baixa a média velocidade compartilhando um barramento e quiser minimizar a contagem de pinos. Perfeito para sensores (IMUs, temperatura, umidade), EEPROMs, RTCs e drivers de tela.

Calculadora pull-up I2C

Key Differences

  • Contagem de fios: UART = 2 (TX/RX); I2C = 2 (SDA/SCL, barramento compartilhado); SPI = 4+ (MOSI/MISO/SCK+CS por dispositivo)
  • Velocidade: SPI > I2C > UART para transferências em massa; UART é mais rápido para streaming simples
  • Topologia: UART = ponto a ponto; I2C/SPI = barramento de vários dispositivos (I2C usa endereçamento, SPI usa linhas de seleção de chip)
  • O UART é assíncrono; SPI e I2C são síncronos (relógio compartilhado)
  • O SPI é full-duplex; I2C e UART podem ser full-duplex (UART) ou half-duplex (I2C)

Summary

Use o UART para links seriais ponto a ponto e saída de depuração/registro. Use o I2C quando precisar conectar vários sensores ou periféricos de baixa velocidade em dois fios. Use o SPI quando precisar de transferências de alta velocidade para um único periférico (monitores, memória flash, ADCs). A contagem de pinos e a velocidade geralmente são os fatores decisivos.

Frequently Asked Questions

O que é mais rápido: SPI, I2C ou UART?

O SPI é mais rápido — implementações típicas são executadas a 10—50 MHz (10—50 Mbps), limitadas principalmente pela capacitância de rastreamento. O I2C atinge o máximo de 3,4 Mbps (modo de alta velocidade). O UART normalmente é de 115,2 kbps a 4 Mbps para implementações padrão.

Posso conectar vários dispositivos em um barramento UART?

O UART padrão é ponto a ponto. O RS-485 (uma extensão multi-drop da sinalização UART) permite até 32 nós em um barramento diferencial de até 10 Mbps. Cada dispositivo precisa ser endereçado na camada de aplicação.

Por que a I2C precisa de resistores pull-up?

O I2C usa sinalização de dreno aberto — os dispositivos só podem puxar o barramento para baixo, não para cima. Resistores de pull-up externos (normalmente 4,7 kΩ para 100 kbps, 2,2 kΩ para 400 kbps) elevam a linha quando nenhum dispositivo a está acionando. A constante de tempo RC do pull-up e da capacitância do barramento limita a velocidade máxima.

Para que serve o SPI que o I2C não pode fazer?

O SPI é preferido para dados em massa de alta velocidade: cartões SD (até 25 MHz), flash SPI (até 133 MHz), telas coloridas (SPI TFT) e ADCs/DACs de alta velocidade. O I2C não pode operar de forma confiável acima de 3,4 Mbps devido às restrições do barramento de drenagem aberta.

Related Comparisons

Related Calculators