collapse

* Posts Recentes

+ LASERs por dropes
[15 de Janeiro de 2025, 17:01]


B-52 Bomber Astro Tracker - Part 2 Power up and gyro-stabilization por jm_araujo
[08 de Janeiro de 2025, 15:23]


Meu novo robô por josecarlos
[06 de Janeiro de 2025, 20:24]


Alguém arranja motores? por SerraCabo
[20 de Dezembro de 2024, 17:12]


Sistema a LASER que será também capaz de matar moscas por jm_araujo
[11 de Dezembro de 2024, 12:35]


Nevadent - Não carrega por almamater
[22 de Novembro de 2024, 21:36]


Classmate Leap T304 não liga por almamater
[19 de Novembro de 2024, 07:13]


Dúvida com fonte de alimentação comutada por filjoa
[28 de Outubro de 2024, 21:57]


Motoserra Stihl 120C por dropes
[26 de Outubro de 2024, 19:01]


Shelly em jeito de watchdog por SerraCabo
[24 de Outubro de 2024, 19:24]

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

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

Offline SerraCabo

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