Velocidade e confiabilidade mínimas do relógio I2C


12

Existe uma taxa de clock mínima especificada pelo I2C? Eu sei que a taxa de clock mais usada é 100kHz e existe um modo "rápido" de 400kHz suportado por alguns dispositivos, e um modo mais rápido ainda suportado por outros dispositivos (acho que 1MHz?). Como o sinal SCK é gerado pelo mestre, presumo que alguém possa operar a uma velocidade muito mais lenta do que qualquer um deles - existe um limite inferior na prática? Até que ponto os dispositivos escravos se preocupam com a taxa de clock (por exemplo, é comum que eles tenham tempos de espera curtos)? A razão pela qual estou perguntando é que estou pensando se poderia executar o I2C a uma distância maior (por exemplo, 20 pés) para programar EEPROMs do I2C de maneira confiável em uma configuração do testador de produção. Suponho que não funcione de forma confiável nessa distância nas taxas de dados padrão.


O modo de alta velocidade permite um relógio de 3,4 MHz no máximo. Capacitância de barramento de 100 pF.
12139 stevenvh

Respostas:


16

Não, não há frequência mínima, a frequência mínima do relógio é 0 ou DC. Veja a especificação , página 48.

Mas você terá que prestar atenção aos tempos de subida e descida. Esses são 1000 ns e 300 ns no máximo, resp. E um cabo mais longo, com alguma capacitância, influenciará as bordas, independentemente da frequência.

É essa capacitância, juntamente com as resistências de pull-up, que determinarão o tempo de subida. O tempo de queda não é um problema, porque o FET que puxa a linha para baixo tem uma resistência muito baixa e, em seguida, a constante de tempo de queda também será muito baixa. Então ficamos com o tempo de subida. Para obter um tempo de subida de 1000 ns em um cabo de 200 pF, os resistores pull-up não devem ser maiores que 2,2 kΩ. (tempo de subida para 90% do valor final.)

insira a descrição da imagem aqui

O gráfico mostra a resistência máxima à tração (em Ω) versus a capacitância do cabo (em pF) para obter arestas de 1000 ns. Observe que os dispositivos I2C não precisam afundar mais de 3 mA; portanto, a 3,3 V a capacitância do barramento não deve ser maior que cerca de 395 pF; caso contrário, a resistência à tração teria que ser menor que 1100 and e permitir mais que os 3 mA. Essas são as linhas tracejadas esverdeadas. Para operação de 5 V, a capacidade permitida é de até 260 pF, para um valor de 1667 Ω (as linhas tracejadas roxas).


Quem disse que o dispositivo I2C pode afundar no máximo 3mA? Meus dispositivos I2C têm VOL = 0,4 V para IOL = 20mA. Isso significa que ele pode afundar muito mais corrente, assim os resistores de pull-up podem ser menores. Isso faz com que mais capacitância possa ser manipulada. @stevenvh
Kono

Um exemplo são os escravos do Arduino. Eles podem afundar até 10mA antes de VOL = 0,4-0,5V. Isso significa que eles podem dirigir ônibus com carga muito maior.
Kono

A maioria dos dispositivos I2C pode realmente absorver apenas 3mA, mas atualmente existem muito mais dispositivos com mais recursos de dissipação. Por sorte!
Kono

4

Eu executei o I2C em cerca de 100Hz sem nenhum problema. Como o @stevenvh disse, apenas se preocupe com a velocidade máxima e a capacitância da linha.


2
Eu tenho o i2c de etapa única. Isso não garante que todos os dispositivos que você encontrar serão fabricados dessa maneira, mas não há nada tecnicamente para impedir que ele funcione "no DC".
Gbard # 12/07

4

Você deve resolver os problemas de comprimento de linha com uma seleção cuidadosa de drivers e correspondência de impedância.

Outra opção, supondo que o longo prazo faça parte da configuração e não do produto, pode ser usar algo que lide bem com a distância, como o RS422 (ou praticamente falando até o RS232) para conversar com um microcontrolador colocado no conector do chicote de teste, que então conversaria i2c a uma curta distância do alvo.

Ou você provavelmente poderia fazer isso sem a inteligência, usando uma pranchinha que unia um protocolo de sinalização diferencial com receptores de disparo Schmidt de e para a sinalização i2c no alvo.

Suas corridas provavelmente não são longas o suficiente para que os tempos de propagação do sinal (problemas ausentes na instalação) exijam taxas de clock particularmente lentas para evitar a troca de ônibus enquanto os dados antigos ainda estão em andamento.

Obviamente, você desejará fazer uma verificação de readback dos dados que você acabou de programar.

Apenas para fins de comparação, os monitores VGA IIRC possuem uma leitura de ID i2c (ou é semelhante a i2c), que provavelmente ainda funcionará se você adicionar um cabo de extensão de 1,8 m ao cabo padrão de 1,5 a 3 pés.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.