🔧
Manuais Técnicos
  • Manuais Técnicos
  • Eletrônica
    • Motores DC
      • Princípios do Eletromagnetismo
      • Diferenças na construção de motores DC elétricos
      • Escolha de Motores
      • Modelagem motor brushed
    • PCBs
      • Conceitos Básicos
        • Resistores
        • Capacitores
        • Indutores
        • Diodos
      • Conceitos Avançados
        • Reguladores
        • Comunicações Digitais
        • Simulação de Sinais
        • Tratamento de sinais
        • Filtros de sinal RC
      • Altium
        • Normas
        • Organização no esquemático
          • Net Labels (Rótulos de Rede)
          • Nomeclatura dos componentes
          • Estética e Leitura Rápida
        • Criação da PCB no Altium
          • Espaçamento entre Componentes, Trilhas e Vias
          • Encapsulamento, Gerbers e Footprints
    • Programação
      • 1. Introdução
      • 2. Comentários
      • 3. Identação
      • 4. Variáveis
      • 5. Funções
      • 6. Bibliotecas
      • 7. Pré-Processamento
      • 8. VS Code
      • 9. GitHub
    • Baterias LiPo
      • Conceitos básicos
        • Resistência interna
        • Taxa de descarga
        • Capacidade de carga
        • Tensão nominal
      • Dimensionando e escolhendo uma bateria
        • Sistema de Locomoção
          • Cálculo de torque
          • Dados dos motores
          • Corrente no sistema
          • Consumo total do sistema
          • Conclusões
          • Exemplo
        • Sistema de Arma
          • Obtendo o torque da arma
          • Correntes da arma
          • Conclusões
          • Exemplo
        • Escolha de uma bateria
          • Sistemas em Paralelo
          • Sistemas em Série
          • Escolha da Bateria
      • Utilização do carregador
        • Opção de carga
        • Opção Storage
        • Opção Balance
      • Notas para uma operação segura
      • Práticas para aumentar a vida útil da bateria
      • Como montar uma bateria Li-Po
    • Altium
      • Instalação e Ativação
      • Esquemático
      • Roteamento
    • Controle de PS4
      • Hardware
      • Software
      • Aplicações
      • Conclusão
    • Módulo Bluetooth HC-05
  • Mecânica
    • Solidworks
      • Instalação, Ativação e Interface
      • Esboço 2D
      • Recursos
      • Montagem
      • Desenho
      • Projeto com Ajustes e Tolerâncias
      • Pack & Go
    • Tratamento Térmico
    • Componentes Mecânicos
      • Parafusos
      • Prisioneiros
      • Porcas
      • Arruelas
      • Anel Elástico
      • Chavetas
      • Rolamentos
      • Correias
      • Engrenagens
      • Eixos
      • Molas Prato
    • Ajustes e Tolerâncias
    • Desenho Técnico
    • Motores
    • Dimensionamentos
    • Usinagem
      • Fresamento convencional
      • Torneamento convencional
      • Corte à água e laser
      • Fresamento e CNC
    • Soldagem
      • Soldagem TIG
    • Impressão 3D
    • Ciência dos Materiais
      • Propriedades mecânicas dos materiais
      • Ensaio de Tração
        • Elasticidade
        • Rigidez
        • Dureza
          • Rigidez x Dureza
        • Resiliência
        • Ductilidade
        • Tenacidade
          • Ductilidade x Tenacidade
        • Tensão de escoamento
        • Tensão máxima
          • Fratura
      • Classificação Dos Materiais
        • Aços
        • Alumínio
        • Polímeros
      • Tratamento Térmico
        • Têmpera com Revenimento
        • Recozimento
        • Carbonitretação
      • Conclusão
    • Pedidos de materiais e serviços
      • Pedidos de aço
      • Pedidos de fibra de carbono
  • Gestão
    • Material de Divulgação Processo Seletivo
Powered by GitBook
On this page
  • SPI
  • I²C
  • USB
  • UART
  1. Eletrônica
  2. PCBs
  3. Conceitos Avançados

Comunicações Digitais

SPI

SPI significa Serial Peripheral Interface e é comumente utilizada para a comunicação de periféricos como sensores (IMU, barômetros etc.), cartões SD, outros processadores e outros. Normalmente, essa interface consegue atingir velocidades de clock de até 10 MHz, com 10 Mbits de taxa de dados. Além disso, diferentemente do I2C, não necessita de resistores de pull-up. É também uma interface com um mestre e vários escravos (periféricos). É uma interface de 4 conexões, ou seja, cada escravo possui 4 conexões envolvidas na comunicação. Os nomes delas são:

  • CLK ou SCK: Clock enviado pelo mestre, esta é uma conexão compartilhada por todos os periféricos.

  • COPI (MOSI ou SDO): (Controller Out Peripheral In) O output do controlador (mestre) e a entrada do periférico (escravo) também são compartilhados entre todos os periféricos.

  • CIPO (MISO ou SDI): (Controller In Peripheral Out) O input do controlador e a saída do periférico também são compartilhados entre todos os periféricos.

  • NCS ou CSB: Este é o chip select de qual periférico será selecionado para comunicação. Ele funciona com lógica invertida, ou seja, ativo quando 0. Normalmente um por periférico, não é compartilhado.

Maneiras de conexão

  • Ponto a ponto (Point to Point): Quando há somente um periférico.

  • Multi-subnó (Multi-Subnode): Vários periféricos, porém somente um NCS. Você envia o mesmo dado para todos os periféricos ao mesmo tempo.

  • Daisy chain: Vários periféricos e vários NCS, comunicação individual com cada um. Este modo de conexão possui algumas desvantagens, dentre elas, que a comunicação entre cada periférico é mais lenta e que você possui uma maior carga capacitiva nas trilhas.

Não se deve ter mais de um periférico ativo ao mesmo tempo, isso pode causar curto-circuitos, pois ambos tentam ter um output ao mesmo tempo.A capacitância no bus de SPI (ou seja, nas trilhas) não deve exceder o máximo especificado pelo componente. Normalmente, quanto maior a capacitância, menor as velocidades que você pode atingir na comunicação. Também existem opções de Quad SPI (QSPI) e Octo SPI (OSPI) que permitem atingir uma velocidade maior de transferência de dados.

É recomendado o uso de resistores de pull-up na linha de NCS de cada periférico para evitar que, durante o boot, ele não seja ligado quando não deve ser. O valor desses resistores não é de extrema importância, desde que sejam de mais de 10k. Use o que for mais comum no seu design (BOM menor).

Não é um problema específico do SPI, mas algumas memórias de QSPI podem assumir o estado de SPI e os pinos de QSPI se tornam pinos de proteção de escrita, então é bom utilizar resistores de pull-up nesse caso.

O SPI normalmente não precisa de controle de impedância, porém, se você tiver tempos de subida rápidos e trilhas longas, é útil utilizar um controle de impedância. Isso se deve ao fato de que podem haver reflexões no sinal ou perda da integridade do mesmo, além de aumentar as interferências eletromagnéticas. Se você estiver fazendo um design que já possui controle de impedância, não custa também utilizar no SPI com traços de 50Ω. Também é útil ter resistores nos outputs dos drivers para que você possa "tunar" a impedância de saída.

Caso o BUS de SPI vá sair da placa via um conector, é útil utilizar filtros e adicionar retornos de GND.

Também é útil utilizar um resistor de terminação na trilha de CLK, pelo menos.

Mantenha uma distância entre as trilhas de SPI de pelo menos 3 vezes o tamanho do seu dielétrico da placa. Mantenha traços pequenos e finos para evitar uma maior capacitância do bus. Não divida as trilhas no meio do caminho, passe entre os periféricos.

I²C

I²C é uma interface de comunicação entre múltiplos dispositivos. Ela é uma interface de dois fios, ou seja, com apenas duas trilhas. É útil para controle, como CODECs e sensores que não precisam de uma alta velocidade de comunicação. Ela possui 3 frequências de operação: a comum de 100 kHz, a rápida de 400 kHz e a rápida+ de 1000 kHz. Também é uma interface de dreno aberto, ou seja, precisa de resistores de pull-up para atingir o nível lógico alto, e para ir para 0, somente aciona um fet que está ligado ao 0V.

É importante também dizer que a capacitância no bus de comunicação também não pode exceder o spec máximo, pois isso afeta os rise times. É importante notar também que os tempos de subida no bus são mais lentos do que os tempos de descida, devido ao fato de ser basicamente um capacitor que carrega via o resistor de pull-up e, na descida, ele é basicamente um curto ao GND. O tempo de subida costuma então estar nas centenas de nanossegundos, enquanto os de descida entre 5-10 ns.

As duas linhas utilizadas são: SDA - utilizada para os dados SCL - utilizada para o clock.

É bom ter alguns valores meio abstratos como valores máximos também. Então podemos considerar que a capacitância típica de cada dispositivo é em torno de 10pF. Cada velocidade de comunicação também possui um valor máximo de subida, sendo:

Standart

Fast

Fast+

rise (ns)

1000

300

120

cap max (pF)

400

400

560

Mesmo assim, procure sempre a especificação do seu componente.

O valor do resistor de pull-up também é algo a ser considerado. Algumas observações são que o valor do seu resistor para a linha de SDA e para a linha de SCL devem ser os mesmos. É possível também montar uma tabela com o que deve fazer o valor do seu resistor aumentar ou diminuir:

Aumentar o R

Diminuir o R

+tensão de VDD

Velocidade de comunicação maior

menor consumo de corrente

maior capacitância no Bus de I²C

Em caso de a capacitância de bus ser muito grande, é útil utilizar buffers para mitigar o tempo de rise. Também podem ser utilizados level shifters para mudar a tensão de comunicação, a fim de fazer com que um aparelho que utilize 3V3 se comunique com um de 5V.

Também deve-se tomar cuidado para não colocar dispositivos que compartilham o mesmo endereço no mesmo bus. Uma opção para evitar problemas com isso é utilizar aparelhos que possuem pinos de chip select ou utilizar um bus separado de I²C. Também podem ser utilizados multiplexadores.

Quando rotear, siga basicamente a mesma regra de distância de 3 dielétricos que a comunicação SPI.

USB

Universal Serial Bus ou USB é um método de comunicação digital entre dois aparelhos. Existem diversos padrões para a comunicação usb, que por acaso tem nomes muito confusos, neste documento serão retratados somente os básicos do USB 2.0. O USB 2.0 pode transferir até 480Mbps permitindo uma transferência de dados com velocidade boa

O USB possui duas conexões essenciais D+ e D- que é um par diferencial. Isso significa que ambos os pinos transferem os mesmos dados, porém um invertido em relação ao outro. Ao rotear esses pinos é importante manter ambas as trilhas o mais próximo possível e devem possuir uma impedância de 90 ohms. O critério da impedância da trilha pode ser ignorado, no entanto caso o tamanho dela não ultrapasse o comprimento crítico que é 0,75 polegadas ou 19,05mm.

É importante notar que também a depender do seu componente podem ser necessários resistores de terminação perto do conector na linha de D+ e de D-, os valores desses resistores no entanto variam de componente a componente e devem ser conferidos no datasheet do mesmo.

UART

A comunicação uart é uma comunicação de dois fios que pode ser utilizada entre dois aparelhos, ela é extremamente útil para se fazer debug de circuitos, sistemas de log de dados ou comunicações simples entre aparelhos. A comunicação uart no ponto de vista de hardware é uma das mais simples por não ser tão rápida, não necessitar de nenhum componente externo, ter somente dois fios e fazer conexão entre somente dois aparelhos.

Os dois pinos presentes na comunicação são os TX e RX, transmit e receive. É importante notar que não se deve conectar os TX de dois componentes ou aparelhos entre si, deve se conectar sempre o TX ao RX de um e vice-versa.

Um outro traço importante deste protocolo é que ele é assíncrono, ou seja, os dois aparelhos não são sincronizados entre si por um sinal de clock. Deve-se então configurar ambos para que transmitam os seus dados no mesmo baud rate.

PreviousReguladoresNextSimulação de Sinais

Last updated 3 months ago