collapse

* Posts Recentes

Compilador C por SerraCabo
[Ontem às 17:27]


Transicão C ... C++ por Njay
[Ontem às 13:02]


PlatformIO, excelente vídeo por SerraCabo
[Ontem às 01:29]


GSM SIM900A por jm_araujo
[22 de Fevereiro de 2021, 16:39]


Problema com Tablet por senso
[20 de Fevereiro de 2021, 20:35]


I2C a 400KHz por SerraCabo
[17 de Fevereiro de 2021, 16:32]


Glitch em linha I2C por SerraCabo
[17 de Fevereiro de 2021, 16:24]


A Arduino rp2040 connect por zordlyon
[17 de Fevereiro de 2021, 13:13]


Protocolo multi-dispositivo, para barramento RS485 por KammutierSpule
[17 de Fevereiro de 2021, 08:42]


Coisa estranha com Botão por almamater
[13 de Fevereiro de 2021, 19:13]

Autor Tópico: I2C a 400KHz  (Lida 96 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline SerraCabo

  • Mini Robot
  • *
  • Mensagens: 914
    • Serra Cabo
I2C a 400KHz
« em: 17 de Fevereiro de 2021, 01:49 »
Olá.

Já alguém conseguiu pôr uma linha I2C a trabalhar a 400KHz?

A forma mais simples parece ser invocando, algures

Código: [Seleccione]
Wire.setClock(400000);
mas .. nicles-batatóides.

O controlador é o ATmega 2560 a 16MHz (Arduino Mega).

Abraço
SC

Offline SerraCabo

  • Mini Robot
  • *
  • Mensagens: 914
    • Serra Cabo
Re: I2C a 400KHz
« Responder #1 em: 17 de Fevereiro de 2021, 16:32 »
Encontrei a solução.

Durante a inicialização

Código: [Seleccione]
lcd.init();
a biblioteca do LCD faz

Código: [Seleccione]
Wire.begin();
deixando o sistema a 100KHz (provavelmente a velocidade por defeito). Logo após a inicialização, temos que reconfigurar a velocidade

Código: [Seleccione]
Wire.setClock(400000);
O resultado aumenta 4x a frequência do clock mas não tona mais curto o espaço entre pacotes (?). De qualquer forma, a velocidade aumenta para ligeiramente mais que o dobro.