collapse

* Posts Recentes

Bateria lipo para quadcopter/drone miniatura por jm_araujo
[Ontem às 21:27]


Meu novo robô por josecarlos
[Ontem às 20:25]


Super obsolescência super programada? por SerraCabo
[23 de Junho de 2022, 23:03]


Inside the WILD Lab of CuriousMarc por dropes
[23 de Junho de 2022, 22:22]


Componente N121 ??? por SerraCabo
[19 de Junho de 2022, 21:26]


Curso de Yew.rs, similar ao React, Angular ou Vue mas em Rust. por blabla
[19 de Junho de 2022, 10:21]


ptrace() - Algo muito poderoso, sobre o qual vale a pena saber mais. por blabla
[19 de Junho de 2022, 09:50]


Rust - Community Grants Program Awards Announcement por blabla
[18 de Junho de 2022, 22:59]


"Façanhas" por SerraCabo
[14 de Junho de 2022, 15:42]


Why Rust makes you feel like a GENIUS? por blabla
[09 de Junho de 2022, 09:19]

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

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

Offline SerraCabo

  • Mini Robot
  • *
  • Mensagens: 986
    • 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: 986
    • 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.