MCU.TEC I2C Proteção Inteligente para Barramentos I²C: Como Resistores em Série e Diodos Schottky Aumentam a Confiabilidade de Sistemas Embarcados

Proteção Inteligente para Barramentos I²C: Como Resistores em Série e Diodos Schottky Aumentam a Confiabilidade de Sistemas Embarcados


O barramento I²C é amplamente utilizado em sistemas embarcados pela sua simplicidade, baixo custo e capacidade de interligar múltiplos dispositivos utilizando apenas duas linhas: SDA (dados) e SCL (clock). No entanto, apesar de sua popularidade, o I²C é um barramento sensível a ruído, capacitância de cabos, falhas de dispositivos e travamentos ocasionados por curtos em um único módulo. Em aplicações reais — especialmente quando vários sensores estão distribuídos em cabos longos, ramificações (“stubs”) ou em ambientes eletricamente ruidosos — confiar no I²C sem mecanismos adicionais de proteção pode comprometer a integridade do sistema inteiro.

Para mitigar esses problemas, diversos projetistas implementam técnicas de robustez que vão além do básico. Entre elas, destaca-se a combinação de resistores em série e diodos Schottky, aplicada individualmente em cada ramificação de módulo. Essa técnica protege contra curtos, limita corrente, reduz interferências eletromagnéticas, desacopla capacitâncias parasitas e, sobretudo, isola falhas de forma que nenhum módulo pode travar o barramento completo.

A topologia analisada neste artigo é ilustrada no circuito abaixo, no qual um Arduino Uno R3 se comunica com quatro dispositivos I²C (U1 a U4). Cada dispositivo é conectado por meio de um resistor em série (R1 a R4) e um diodo Schottky (D1 a D4), formando uma estrutura de proteção individual por ramificação. Essa abordagem aumenta significativamente a confiabilidade do barramento, mesmo na presença de cabos longos, dispositivos de procedência variada ou ambientes sujeitos a picos eletromagnéticos.

Resistores em Série no Barramento I²C (R1–R4)

Quando olhamos para o esquema, vemos que cada módulo I²C (U1, U2, U3, U4) não está ligado “direto” ao barramento SDA/SCL. Em vez disso, há sempre um resistor em série (R1, R2, R3, R4) entre o barramento principal e o pino correspondente do módulo.
Isso não é um mero detalhe: é uma escolha de projeto importante para proteção, estabilidade de sinal e robustez do sistema.


1.1 Função básica: limitar corrente em falhas

O I²C é um barramento “open-drain/open-collector”:

  • Os dispositivos apenas puxam a linha para o nível baixo (0).
  • O nível alto é obtido por meio dos resistores de pull-up.

Se, por algum motivo, um módulo entrar em falha e curto-circuitar SDA ou SCL para GND (ou mesmo para VCC), sem resistor série a corrente seria limitada somente pela resistência interna dos transistores – o que pode facilmente danificar o módulo, o microcontrolador ou ambos.

Com o resistor série, a corrente máxima é aproximada por:

\[
I_{máx} \approx \frac{V_{CC}}{R_{série}}
\]

Exemplo típico:

  • \( V_{CC} = 5,\text{V} \)
  • \( R_{série} = 220,\Omega \)

\[
I_{máx} = \frac{5}{220} \approx 22{,}7,\text{mA}
\]

Esse valor é alto, mas muitíssimo menor do que dezenas ou centenas de miliampères que poderiam circular num curto direto.
Na prática, essa limitação:

  • Protege o driver de saída do Arduino.
  • Impede que uma falha em um único módulo destrua o barramento todo.
  • Dá tempo para o sistema detectar o problema (via watchdog, varredura de dispositivos, etc.) sem dano físico imediato.

1.2 Função de “damping”: redução de reflexões e ringing

Fisicamente, o conjunto fio + trilha + entrada do CI se comporta como um sistema RLC distribuído, com:

  • Resistência série (do fio e do driver)
  • Indutância parasita do cabo
  • Capacitância parasita entre condutores e para o terra

Quando o driver muda o nível lógico (especialmente em bordas rápidas), o sinal pode “oscilar” (ringing), produzir overshoot e undershoot, ou mesmo reflexões ao longo do cabo.

O resistor em série aumenta a resistência vista pelo circuito e, em conjunto com a impedância característica do cabo ((Z_0)), ajuda a amortecer essas oscilações:

  • sem resistor: \( R_{\text{total}} \approx R_{\text{driver}} \)
  • com resistor: \( R_{\text{total}} \approx R_{\text{driver}} + R_{série} \)

Se fizermos:

\[
R_{\text{total}} ;\approx; Z_0
\]

o sistema tende a ficar criticamento amortecido, minimizando reflexões.

Não é preciso calcular (Z_0) exatamente em projetos simples, mas entender a ideia é importante: o resistor em série está “matando” parte da energia de alta frequência que causaria problemas de integridade de sinal.


1.3 Controle da constante de tempo RC por módulo

Cada ramificação do barramento possui sua capacitância própria:

  • Capacitância dos pinos SDA/SCL do CI
  • Capacitância do cabo local
  • Parasitismos de trilha e conector

Sem resistor série, toda essa capacitância é vista diretamente pelo barramento.
Com o resistor série, criamos um pequeno filtro RC:

\[
\tau_{\text{ramo}} = R_{série} \cdot C_{\text{ramo}}
\]

Exemplo:

  • \( R_{série} = 220,\Omega \)
  • \( C_{\text{ramo}} = 20,\text{pF} \)

\[
\tau_{\text{ramo}} = 220 \cdot 20\times10^{-12} = 4{,}4,\text{ns}
\]

Esse valor é desprezível frente ao tempo de subida típico em I²C padrão (ordem de centenas de nanosegundos a microssegundos). Ou seja:

  • Não atrapalha a velocidade de 100 kHz ou 400 kHz.
  • Ajuda a “desacoplar” capacitâncias de cada módulo, evitando que um único dispositivo com capacitância alta degrade todo o barramento.

Na prática, escolhemos (R_{série}) num compromisso:

  • Grande o suficiente para limitar corrente e amortecer ringing.
  • Pequeno o suficiente para não degradar o tempo de subida global do barramento.

Valores usuais: 100 Ω a 470 Ω por linha e por módulo.


1.4 Efeito sobre o tempo de subida do barramento

O tempo de subida do I²C é dominado pelos resistores de pull-up e pela capacitância total vista pelo barramento:

\[
t_r \approx 0{,}8473 \cdot R_{pullup} \cdot C_T
\]

onde:

  • \(C_T = C_{cabos} + \sum C_{entradas}\)

Os resistores em série quase não alteram diretamente essa equação, pois o pull-up continua ligado ao barramento principal.
O que eles fazem é:

  • Reduzir o quanto da capacitância de cada ramo é de fato “sentida” nas bordas rápidas.
  • Atuar como “isoladores suaves” entre o barramento comum e os módulos.

Resultado prático: maior número de módulos e cabos podem ser usados sem violar os tempos de subida especificados para o modo de operação (Standard, Fast, etc.).


1.5 Justificativa da escolha de valor (exemplo 220 Ω)

Vamos supor:

  • I²C a 100 kHz
  • VCC = 5 V
  • Pull-up de 4,7 kΩ
  • Múltiplos módulos, cada um com 20–30 pF
  • Cabos com 100–200 pF no total

Queremos:

  1. Corrente segura em falha
    • Com 220 Ω, vimos que o máximo é ~23 mA em curto.
    • Muitos CIs aguentam picos dessa ordem sem queimar instantaneamente.
  2. Damping razoável
    • 220 Ω + resistência do driver (~20–30 Ω) já é suficiente para amortecer a maioria dos cabos curtos/médios.
  3. Impacto mínimo na forma de onda em operação normal
    • O resistor só “aparece” quando há transição ou curto.
    • Durante nível estável, a queda de tensão é pequena, pois a corrente é baixa (corrente de pull-up).

Assim, o valor típico de 220 Ω é um bom compromisso entre:

  • Proteção
  • Integridade de sinal
  • Simplicidade de cálculo
  • Custo e disponibilidade (valor comercial padrão)

Diodos Schottky de Proteção no Barramento I²C (D1–D4)

Cada módulo I²C do circuito possui um diodo Schottky ligado entre o ramo individual do módulo e o barramento principal SDA/SCL.
O conjunto resistor série + diodo Schottky cria um mecanismo de proteção inteligente que aumenta a robustez do barramento, evitando travamentos e reduzindo efeitos de falhas.

Este capítulo explica em profundidade por que o diodo está ali, por que ele é do tipo Schottky, como ele se comporta eletricamente, e como sua escolha impacta a confiabilidade do sistema.


2.1 Motivação principal: evitar que um módulo defeituoso derrube o barramento inteiro

Em um barramento I²C padrão, se um único dispositivo entrar em falha e “grudar” SDA ou SCL em nível baixo (0 V), todo o sistema deixa de funcionar.
Isso é chamado de:

bus hanging ou bus lock

O diodo Schottky foi colocado justamente para impedir isso.

Suponha que o módulo U2 trave seu SDA em 0 V (falha interna).
Sem o diodo:

  • O 0 V se propaga diretamente para o barramento.
  • Todos os outros dispositivos ficam impedidos de enviar ou receber dados.
  • O Arduino perde o controle de todo o barramento.

Com o diodo Schottky na configuração típica (ânodo no módulo, cátodo no barramento):

módulo ---- R ----+---- barramento
                       |
                      D (Schottky)
                       |
                   GND (via módulo)

A linha do módulo pode cair a 0 V, mas o barramento só cai até a queda direta do diodo (~0,2 a 0,3 V).

Como o nível “LOW” em I²C é aceito até aproximadamente:

\[
V_{IL} \leq 0{,}3 \cdot V_{CC}
\]

E com Vcc=5 V:

\[
V_{IL} \leq 1{,}5,\text{V}
\]

Então, se o barramento cair para apenas 0,2 V, isso ainda é um LOW válido, e o master consegue recuperar o controle — especialmente se houver mecanismos como clock stretching ou re-varredura de dispositivos.

Em outras palavras:

A falha fica confinada apenas ao ramo do módulo defeituoso, e não contamina todo o barramento.


2.2 Como o Schottky atua eletricamente no instante da falha

Suponha:

  • O módulo trava SDA em 0 V.
  • O barramento está em nível alto (puxado por Rpull-up, ~5 V).
  • A linha do módulo (lado depois do resistor) vai instantaneamente a 0 V.

A diferença de tensão passa a ser:

\[
V_{barramento} – V_{ramo} = 5,\text{V}
\]

Quando:

\[
V_{barramento} – V_{ramo} > V_f
\]

Onde \(V_f\) (queda direta) é:

  • ~0,2–0,3 V (Schottky)
  • ~0,6–0,7 V (diodo de silício comum)

Assim que essa condição se estabelece, o diodo conduz imediatamente, drenando para o módulo grande parte da corrente que iria para o barramento — ou seja:

  • Protege o barramento
  • Protege os outros módulos
  • Minimiza a queda de tensão que o barramento sofre

O efeito prático é:

O barramento não vai a zero — fica “abaixo do ideal”, mas ainda dentro da faixa aceitável para LOW I²C.


2.3 Por que Schottky e não diodos comuns?

A escolha do Schottky é essencial por três características físicas:

1) Baixíssima queda de tensão direta ((V_f))

Enquanto um diodo de silício comum tem (V_f \approx 0{,}6) a 0,7 V:

\[
V_{f,\text{Si}} \approx 0.7,\text{V}
\]

O Schottky tem:

\[
V_{f,\text{Schottky}} \approx 0.2\text{–}0.3,\text{V}
\]

No contexto do I²C:

  • Uma queda de 0,7 V derrubaria o barramento para valores próximos de LOW marginal.
  • Já 0,2 V mantém o barramento operando dentro das margens elétricas com total segurança.

A norma I²C permite aproximadamente:

\[
V_{OL,max} = 0{,}4,\text{V}
\]

Portanto, o Schottky é a única escolha que garante operação dentro da especificação.


2) Corrente de saturação rápida e baixa capacitância

Schottys possuem:

  • Capacitância muito baixa
    Importante para não prejudicar o tempo de subida SDA/SCL.
  • Resposta extremamente rápida
    Essencial para proteger contra transientes.

Em I²C:

  • Bordas não são rápidas como SPI, mas ainda assim a transitória causada por ruído ou falha precisa ser drenada antes de causar erro de leitura ou travamento.

3) Corrente reversa maior, mas controlável

Schottkys têm corrente reversa (leakage) maior, porém esse valor é:

  • Da ordem de µA
  • Bem pequeno comparado às correntes naturais de pull-up
  • Completamente seguro dentro da operação I²C

O resistor série ajuda ainda a limitar qualquer efeito adverso dessa corrente reversa, tornando a combinação “R série + Schottky” ideal.


2.4 Análise matemática do efeito do diodo sobre o barramento

Suponha:

  • Barramento em nível alto: (5,\text{V})
  • Módulo em falha em (0,\text{V})
  • Diodo conduz com (V_f = 0{,}25,\text{V})
  • Resistor série em 220 Ω

A queda do barramento depende do divisor dinâmico formado por:

  • Rpull-up
  • Resistência efetiva do diodo (muito menor)
  • Resistência série

Quando o diodo conduz, ele apresenta uma resistência dinâmica (r_d) pequena (alguns ohms).
O barramento sente algo como um divisor:

\[
V_{barramento} \approx \frac{R_{pull-up}}{R_{pull-up} + r_d + R_{série}} \cdot V_{CC}
\]

Se tomarmos, por exemplo:

  • \(R_{pull-up} = 4700,\Omega\)
  • \(R_{série} = 220,\Omega\)
  • \(r_d = 5,\Omega\)

Então:

\[
V_{barramento} = \frac{4700}{4700 + 220 + 5} \cdot 5
= \frac{4700}{4925} \cdot 5
\approx 4{,}77,\text{V}
\]

O barramento praticamente não cai nada – a queda ocorre no ramo do módulo defeituoso.

Isso confirma matematicamente que:

O Schottky mantém o barramento íntegro mesmo com falha em um dos dispositivos.


2.5 Função adicional: proteção contra picos de tensão e ruído

Cabos longos, EMI e ESD podem gerar picos de tensão:

\[
V_{transiente} > V_{CC}
\]

O diodo Schottky, polarizado da forma como está, absorve excesso de tensão sempre que:

\[
V_{ramo} > V_{barramento} + V_f
\]

Ou seja, ele atua também como:

  • Clamper contra sobretensão local
  • Equalizador entre barramento e ramos
  • Proteção coletiva contra ruído em qualquer módulo

2.6 Como o diodo interage com o resistor série

O par R + Schottky forma um circuito de proteção complementar:

  1. O resistor limita corrente.
  2. O diodo define um caminho seguro de desvio.

Se o módulo entra em curto:

  • O resistor impede correntes destrutivas.
  • O diodo impede o módulo de derrubar o barramento.

Se há ruído ou transiente:

  • O diodo absorve picos.
  • O resistor suaviza a energia e amortiza pulsos rápidos.

Se há capacitância excessiva num módulo:

  • O resistor reduz o impacto no barramento.
  • O diodo mantém a integridade do barramento caso a capacitância gere oscilações.

Essa combinação é muito usada em:

  • Barramentos I²C industriais
  • Sensores distribuídos
  • Sistemas robustos tolerantes a falhas
  • Aplicações automotivas de baixa velocidade

Conclusão

Os diodos Schottky desempenham três funções fundamentais:

  1. Isolamento de falhas – evitando travamento total do barramento.
  2. Clamping de tensão – protegendo contra picos ou ruído.
  3. Proteção cooperativa com o resistor – mantendo o barramento íntegro.

Sua escolha é motivada por:

  • Baixa queda direta (essencial para I²C)
  • Alta velocidade
  • Baixa capacitância
  • Comportamento previsível em transientes

Essa estratégia permite que o sistema opere com vários módulos, longos cabos e falhas eventuais, sem travamento nem danos físicos.


Modelagem do Sistema, Síntese Técnica e Diretrizes de Dimensionamento

Tendo entendido separadamente o papel dos resistores em série e dos diodos Schottky, podemos agora consolidar o raciocínio em um modelo único que descreve matematicamente o comportamento do barramento, justificando cada escolha de componente e permitindo dimensionar adequadamente valores para aplicações reais. Este capítulo funciona como síntese técnica e guia de projeto.


3.1 Modelo elétrico equivalente de cada ramificação

Cada módulo I²C é visto pelo barramento principal através de três elementos:

  1. R_série (220 Ω típico)
  2. Diodo Schottky
  3. Capacitância parasita + carga do CI

Um modelo simplificado pode ser representado assim:

      ┌───────────── Barramento SDA/SCL

      R_série

      +─── C_módulo (entrada CI)

      D Schottky (ânodo no ramo, cátodo no barramento)

   GND (referência do módulo)

Sob operação normal, o diodo fica reversamente polarizado e praticamente invisível.
A comunicação ocorre através do RC formado por:

\[
\tau = R_{série} \cdot C_{módulo}
\]

Nas transições, esse pequeno RC desacopla a capacitância do módulo e melhora a integridade de sinal.

Sob falha, o diodo passa a conduzir, criando um caminho alternativo que impede o módulo de derrubar o barramento.


3.2 Análise dos três estados possíveis

Estado 1 – Operação normal

  • Correntes muito pequenas fluem no ramo.
  • O resistor série é praticamente transparente.
  • O diodo fica bloqueado.
  • O tempo de subida é dominado por:

\[
t_r = 0{,}8473 \cdot R_{pull-up} \cdot C_{total}
\]

e não por R_série.

Estado 2 – Transientes / ruído

Se o ramo sofre sobretensão:

\[
V_{ramo} > V_{barramento} + V_f
\]

O Schottky conduz e “equaliza” tensões, evitando picos, protegendo o CI e melhorando EMC.

Se o barramento sofre ruído negativo (undershoot), o resistor série limita a corrente e remove energia do pulso.

Estado 3 – Falha em módulo (curto para GND)

  • A linha do ramo fica em 0 V.
  • O barramento tentaria cair a 0 V, mas o diodo entra na condução reversa:

\[
V_{barramento} \approx V_f = 0{,}2 \sim 0{,}3 V
\]

Esse valor ainda é considerado LOW válido pela especificação I²C.

O resistor série limita a corrente:

\[
I = \frac{V_{CC}}{R_{série}}
\]

Impedindo danos e mantendo o barramento operável.


3.3 A queda de tensão no barramento durante falha (análise mais precisa)

Para entender exatamente o quanto o barramento abaixa em caso de curto, podemos modelar como um divisor entre:

  • Rpull-up
  • Resistência dinâmica do diodo (r_d, típica 3 a 10 Ω)
  • R_série

A tensão final é:

\[
V_{barr} \approx \frac{R_{pull-up}}{R_{pull-up}+R_{série}+r_d} \cdot V_{CC}
\]

Exemplo realista:

  • (R_{pull-up} = 4{,}7 k\Omega)
  • (R_{série} = 220 \Omega)
  • (r_d = 5 \Omega)
  • (V_{CC} = 5 V)
[
V_{barr} = \frac{4700}{4700 + 220 + 5} \cdot 5
\approx 4{,}77 V
]

Ou seja:

O barramento praticamente NÃO cai, mesmo com o módulo em curto!

E esta é a beleza da topologia: fixamos a queda no ramo, não no barramento.


3.4 Dimensão ideal dos resistores série

Regras práticas:

(1) Proteção contra falha

Para limitar a corrente a menos de 25 mA no pior caso:

\[
R_{série} \geq \frac{V_{CC}}{0{,}025}
\]

Para 5 V:

\[
R_{série} \geq 200\ \Omega
\]

Por isso 220 Ω é um valor tão comum.


(2) Impacto no tempo de subida

Para que o resistor série não atrapalhe a velocidade do I²C (até 400 kHz):

\[
R_{série} \cdot C_{entrada} \ll t_r
\]

Com:

  • \(C_{entrada} \approx 15\text{–}30 pF\)
  • \(t_r \approx 300\text{–}1000 ns\)

Então:

\[
R_{série} \ll \frac{t_r}{C_{entrada}}
\]

Exemplo:

\[
\frac{300 ns}{30 pF} = 10 k\Omega
\]

220 Ω está muito abaixo desse limite, logo não interfere no tempo de subida.


(3) Redução de ringing

Para cabos com:

  • \(L \approx 500 nH\)
  • \(C \approx 50 pF/m\)

Impedância característica aproximada:

\[
Z_0 \approx \sqrt{\frac{L}{C}}
\approx \sqrt{\frac{500 nH}{50 pF}}
\approx 100\ \Omega
\]

O resistor série deve ser da mesma ordem de grandeza.
Como o driver já oferece ~20–40 Ω internos, usamos:

\[
R_{série} \approx 100\Omega – R_{driver}
\]

E chegamos novamente a valores entre 100 e 220 Ω.


3.5 Dimensionamento ideal do diodo Schottky

Critérios:

(1) Baixa queda direta (V_f)

Deve atender:

\[
V_f < V_{OL,max}
\]

Na prática:

  • I²C admite até 0,4 V para LOW
  • Schottky típico oferece 0,2–0,3 V

(2) Capacitância baixa

Evitar impacto nas bordas:

\[
C_D < 20\ \text{pF}
\]

(3) Corrente de pico segura

Em falhas, a corrente é:

\[
I = \frac{V_{CC}}{R_{série}}
\approx 23 mA
\]

O diodo deve suportar isso confortavelmente, com folga.

(4) Tempo de resposta muito rápido

Absorver transientes antes que eles atinjam os CIs.

Diodos recomendados:

  • BAT54
  • 1N5819 (para correntes maiores, mas capacitância mais alta)
  • RB751
  • PMEG2010

3.6 Comparação com outras técnicas de proteção

TécnicaProtege contra curto?Protege contra ruído?Mantém barramento ativo?CustoComentário
Somente pull-upNãoNãoNãoBaixoPadrão básico, frágil
Somente R sérieParcialParcialNãoBaixoNão evita bus lock
Somente SchottkyNãoSimParcialMédioCorrente pode ser alta demais
R série + Schottky (este circuito)SimSimSimMédioMelhor relação custo/benefício
Buffer I²C dedicadoSimSimSimAltoSolução profissional para longas distâncias
Isolador digitalSimSimSimMuito altoAplicações industriais e alta EMC

A solução adotada no circuito analisado é uma das mais equilibradas para:

  • projetos maker,
  • sensores distribuídos,
  • robótica,
  • telemetria,
  • automação residencial,
  • painéis e cabos longos.

Diretrizes Práticas de Projeto, Recomendações de Uso e Exemplos de Dimensionamento

Este capítulo final reúne regras práticas, cenários de aplicação e exemplos concretos de cálculo para orientar o uso correto da topologia resistor série + diodo Schottky em projetos reais com barramento I²C.
Aqui é onde a teoria se traduz em procedimentos de engenharia aplicáveis ao dia a dia.


4.1 Quando essa topologia é recomendada

O uso de resistores série e diodos Schottky é extremamente útil quando o barramento I²C opera sob uma ou mais das seguintes condições:

✔ Múltiplos dispositivos distribuídos em cabos longos

Tipicamente mais de 30–40 cm por ramificação.

✔ Ambientes com ruído elétrico significativo

Como motores, solenoides, inversores, relés, rádios ou fontes chaveadas próximas.

✔ Alta confiabilidade é necessária

Sistemas que não podem parar caso um único módulo apresente falha.

✔ Uso de sensores ou placas com qualidade variável

Módulos de baixa procedência podem sofrer falhas de linha ou travamentos esporádicos.

✔ A topologia física contém ramificações (“stubs”) no barramento

Cada stub adiciona capacitância, reflexões e risco de travamento.

✔ Há troca frequente de módulos (plug and play)

Evita danos causados por ligações incorretas ou conexões intermitentes.


4.2 Quando não é necessário usar esta topologia

A solução é exagero se:

  • O barramento é muito curto (poucos centímetros).
  • O número de dispositivos é baixo (1 ou 2).
  • A aplicação é extremamente sensível ao tempo de borda (raríssimo em I²C ≤ 400 kHz).
  • Há buffers dedicados I²C (P82B96, TCA4311, PCA9515, etc.)

Em tais casos, resistores série podem até trazer pequenas vantagens, mas não são indispensáveis.


4.3 Guia completo para escolher o valor de R_série

A escolha correta depende de três fatores:
(1) corrente máxima aceitável,
(2) qualidade de sinal,
(3) capacitância do ramo.

4.3.1 Critério de segurança (corrente de curto)

Queremos:

\[
I_{máx} \le 25,mA
\]

Logo:

\[
R_{série} \ge \frac{V_{CC}}{0,025}
\]

Para:

VCCR_série mínimo
3,3 V≥ 132 Ω
5,0 V≥ 200 Ω

4.3.2 Critério de integridade de sinal (amortecimento)

Se o cabo do ramo tem:

  • Indutância típica: 500 nH/m
  • Capacitância típica: 40–60 pF/m

Impedância característica aproximada:

\[
Z_0 \approx \sqrt{\frac{L}{C}} \approx 100,\Omega
\]

O resistor deve ser próximo de:

\[
R_{série} + R_{driver} \approx Z_0
\]

Como o driver do microcontrolador já tem ~20–50 Ω, adicionamos:

\[
R_{série} \approx 100 – R_{driver} \approx 100 – 30 = 70,\Omega
\]

Mas como precisamos também do critério de segurança (≥200 Ω), optamos por:

✔ Valor ideal: 150 a 330 Ω

O valor clássico é 220 Ω pelo excelente compromisso.


4.3.3 Critério de atraso

O resistor não deve comprometer o tempo de subida:

[
R_{série} \cdot C_{ramo} \ll t_r
]

Com I²C Standard Mode (t_r ≈ 1000 ns) e C=30 pF:

[
R_{máx} \ll \frac{1000ns}{30pF} \approx 33k\Omega
]

Ou seja, 220 Ω está muito longe de prejudicar o desempenho.


4.4 Guia completo para escolher o diodo Schottky

Critérios fundamentais:

1) Queda direta deve ser menor que o LOW permitido

\[
V_f < 0{,}4,V
\]

Schottky típico: 0,2–0,3 V → atende perfeitamente.


2) Capacitância baixa

\[
C_D < 20\ pF
\]

Para não “roubar” corrente do pull-up e nem prejudicar bordas.


3) Corrente de pico suficiente

Suporta:

\[
I_{pico} \approx \frac{V_{CC}}{R_{série}} \approx 23,mA
\]

Qualquer Schottky padrão SMD atende.


4) Velocidade de comutação muito alta

Diodos comuns sofrem com recuperação reversa (reverse recovery), causando:

  • Overshoot
  • Oscilações
  • Correntes negativas

O Schottky não apresenta recuperação reversa — ideal para I²C.


4.4.1 Diodos recomendados

ModeloCapacitânciaV_fObservação
BAT5410 pF0.25 VMelhor custo/benefício
RB7515 pF0.22 VBaixíssima capacitância
PMEG201040 pF0.24 VCorrentes maiores
1N5819110 pF0.3 VServe, mas capacitância maior

Para I²C, BAT54 é o mais popular.


4.5 Exemplo completo de dimensionamento

Sistema hipotético:

  • 4 módulos I²C (cada um com 25 pF)
  • 1 metro de cabo por módulo (~50 pF/m)
  • Tensão de operação: 5 V
  • I²C a 100 kHz

1) Capacitância do ramo

\[
C_{ramo} = 25pF + 50pF = 75pF
\]

2) Resistência série (critério de segurança)

\[
R_{série} \ge \frac{5V}{25mA} = 200Ω
\]

Escolhemos 220 Ω.

3) Verificação de atraso:

\[
\tau = R_{série} \cdot C_{ramo}
= 220 \cdot 75pF = 16,5ns
\]

Muito menor que o limite (~1000 ns) → OK.

4) Verificação de amortecimento:

Impedância aproximada do cabo:

\[
Z_0 \approx 100Ω
\]

Com Rdriver ≈ 30 Ω:

\[
R_{total} = R_{driver} + R_{série}
= 30Ω + 220Ω
= 250Ω
\]

Acima de Z0 → subamortece levemente, o que é bom para ruído, sem risco de overshoot.

5) Escolha do diodo

Usamos BAT54:

  • V_f = 0.24 V
  • C_D = 10 pF
  • Isup ≈ 200 mA (muito acima dos 23 mA de falha)

Resultado

Sistema robusto, tolerante a falhas, com integridade de sinal excelente.


4.6 Recomendações profissionais finais

✔ Sempre usar resistores série ao conectar vários módulos distribuídos

Especialmente se os cabos forem longos ou de má qualidade.

✔ Usar Schottky de baixa capacitância

Evite modelos “gordos” como 1N5819 quando puder.

✔ Para cabos muito longos (>2 m), considerar buffers I²C

Como PCA9515 ou TCA9517.

✔ Evitar “estrelas” em alta velocidade

Barramentos com muitos stubs podem exigir resistência maior.

✔ Proteger fisicamente os cabos

Amarrar os pares SCL/SDA juntos reduz acoplamento de ruído.

✔ Sempre medir a forma de onda com osciloscópio

A validação visual das bordas é parte essencial do processo.


4.7 Conclusão Final

A arquitetura do circuito analisado — resistores em série combinados com diodos Schottky — representa uma solução elegante e eficiente para aumentar a robustez do barramento I²C sem elevar muito o custo ou a complexidade. Esse método protege contra:

  • Curto nos módulos
  • Picos de tensão
  • Capacitância excessiva
  • Falhas internas de CI
  • Ruído em cabos longos
  • Travamentos (bus lock)

E tudo isso com impacto mínimo no desempenho elétrico e no tempo de subida do barramento.

0 0 votos
Classificação do artigo
Inscrever-se
Notificar de
guest
0 Comentários
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários

Related Post

0
Adoraria saber sua opinião, comente.x