◀︎ Conectando Periféricos
Agora você sabe um pouco mais sobre o seu dispositivo. Mas e se você tiver vários dispositivos e quiser fazer com que eles se comuniquem?
Existem várias maneiras de conectar elementos de hardware e permitir que eles troquem dados. Essa troca de dados é feita através de pequenas variações de tensão. Os dados podem ser trocados através de uma tensão variável entre 0V e 3,3V (pinos analógicos), ou através de uma simples mudança de estado ligado/desligado (0V/3,3V) (pinos digitais). Os dados também podem ser trocados por meio de alternância digital especial referida por seus protocolos de comunicação. Os protocolos de comunicação (como GPIO, SPI, I2C e UART) envolvem um conjunto predefinido de pinos usados de uma maneira específica. Esses protocolos são usados para codificar mensagens complexas. É muito parecido com o código Morse, mas para eletrônicos.
Em eletrônica embarcada, os protocolos mais usados são:- GPIO (pinos entrada/saída de uso geral)
- SPI (Interface Periférica Serial)
- I2C (Circuito Inter-Integrado)
- UART (Receptor/Transmissor Assíncrono Universal)
Aqui, fornecemos uma breve visão geral desses protocolos e discutimos alguns dos pontos fortes e fracos de cada um.
Na maioria das vezes, você escolherá seu protocolo com base nas peças que usará ao projetar seu módulo. Outras coisas a considerar são os pinos disponíveis, bem como os requisitos de velocidade de comunicação. A tabela a seguir pode ser usada como referência rápida.
Protocolo | Número de pinos necessários | Velocidade Máxima |
---|---|---|
GPIO | 1 | 8 Kbit/s Pode ser até 180 MHz para o modo de velocidade mais alta |
SPI | (MOSI, MISO, SCK + 1 pino GPIO) | 25 MBit/s |
I2C | 2 (SCL e SDA) | 400 kbit/s Fast mode 1 Mbit/s Fast mode plus or Fm+ Modo de alta velocidade de 3,4 Mbit/s |
UART | 2 (TX - Transmitir e RX - Receber) | 8 Mbit/s |
Referência de seleção de protocolo
Uma nota sobre mudança de nível
Todos os diagramas e discussões a seguir sobre protocolos de comunicação pressupõem que os módulos de hardware com os quais você está se comunicando operam em 3,3 V. Se você tiver um dispositivo em seu módulo personalizado que opere em 5 V, 1,8 V ou qualquer outra voltagem diferente de 3,3 V, tenha cuidado! A conexão direta de componentes com tensões operacionais diferentes pode danificar seu dispositivo.
Você pode usar dispositivos que operam em voltagens diferentes empregando uma técnica chamada 'mudança de nível'. Sparkfun tem um bom artigo e tutorial sobre divisores de tensão e mudança de nível que você pode usar como ponto de partida.