Olá a todos.

Hoje resolvi fazer umas pesquisas sobre eventuais problemas que podem existir na comunicação i2c e spi, principalmente em relação a distância.

O drama, é que vi muitas respostas em muitos lugares. Alguns diziam que o spi e i2c (curiosidade) teriam que ficar, NO MAXIMO, a alguns centímetros, na própria PCB. Em outro canto, dizia que SPI suporta ate 20cm, i2c até 50cm. Em outro, diz que i2c suporta até 1m, e em outros, dizem que spi suporta ate 15m. Achei uma confusão danada afinal, de "grudado na pcb" para "15m" é muita coisa.

Alguém poderia me informar a distância máxima confiável para SPI? 

A titulo de informação, o cabo utilizado será o de ethernet (usado em rj45 - cabo azul ou preto, padrão) com uma distância de 1 metro.

Exibições: 1519

Responder esta

Respostas a este tópico

Bom dia,

Complementando o assunto sobre I2C.

Existem Extensores para a Interface I2C - até 30 metros! 

Differential I2C Bus Extender (PCA9615) Hookup Guide

https://learn.sparkfun.com/tutorials/qwiic-differential-i2c-bus-ext...

P82B715 I2C Bus Extender

https://www.ti.com/lit/ds/symlink/p82b715.pdf

Nesse artigo da Anaog Devices tem mais informações :

https://www.analog.com/en/technical-articles/isolated-spi-communica...

"Embora o método de comunicação SPI seja geralmente adequado para distâncias de até aproximadamente 10 m, para transpor distâncias mais longas, um repetidor geralmente é necessário devido à atenuação devido ao aumento da resistência da linha de cabos longos."

Como a interface SPI pode usar um clock de até 10 MHz, esses 10 metros vai depender da frequência do clock! 

Olá.

  O ponto é que um fio vira uma antena. Capta muita interferência.

  Os protocolos elétricos para distancia (por ex RS323 e RS485) atenuam os problemas usando métodos:

RS232: Trabalha com tensões mais altas, que faz com que mesmo que o sinal se perca com a distancia por resistencia no fio chegue ao outro lado ok, ou o suficiente. Vc coloca +12V ou -12V de um lado e qualquer +6V e -6V do outro já servem como sinal. Como trabalha com tensão alta e o ruído em geral é uma tensão pequena ele pouco afeta. É um protocolo meio que obsoleto mas muito funcional ainda.

RS485: Trabalha com corrente. A vantagem é que se vc injeta 100mA (exemplo) em um fio que vai e volta (loop) a corrente é de 100mA em qualquer ponto do fio, independente de sua resistencia. Assim se o fio tem 1m ou 1Km a corrente nele vai ser 100mA. No destino chegam 100mA. Para o transmissor o que muda é a tensão que ele precisa por no fio para gerar essa corrente. Enfim, é por corrente, que tem muitas vantagens que o sistema por tensão.

Quando o fabricante cria o integrado conversor insere elementos de proteção, coisa como diodos a GND, Diodos a VCC, coisas assim, para evitar que surtos de interferência queimem o integrado.

Já o I2C e o SPI são protocolos focados em uso dentro do próprio aparelho, entre integrados ou entre placas internas. 
A proposta é usar alguns pinos do microcontrolador, que não tem esse preparo (proteções) para longa distancia.

Claro que alguns fabricantes podem por essas proteções, podem entender que dá pra fazer essa comunicação, mas nunca foi o objetivo desse protocolo vencer grandes distancias, para isso tem os outros, ele foi criado para ser simples e barato. Tanto que se usava ele sem interface em hardware. Todos os primeiros projetos que vi eram com rotinas de I2C, coisa como um for() que mandava os bits e os clocks, nunca havia sido necessário ter uma interface em hardware, bastava uma interrupção ligada no clock. (tempo do Z80 e 8051). 
Baixando o clock certamente vc diminui perdas. Os fios tem capacitâncias internas (parasitas), elas atrapalham menos, colocando o pull up dos dois lados também pode ficar melhor. Assim sinais de alta impedância (interferencia) vão pro terra. Aih vc vai otimizando até que ele não mais se parecerá com o original, mas chega onde quiser.
É meio como perguntar qual o alcance máximo de uma canoa. O kra forçando ela vai de Cuba a Miami até, mas não foi feita pra isso. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço