terça-feira, 7 de outubro de 2025

Velocidade de escrita máxima no Raspberry PI PICO

     Olá! vamos verificar qual a velocidade máxima que alcançamos usando o RASPBERRY PI PICO , pois mesmo que o processador interno seja rápido, as portas logicas podem não acompanhar essa velocidade, que inclusive foi o que ocorreu com este teste.
     Assim mesmo que faça um overclock no microcontrolador ou microprocessador isso não necessariamente se traduz em ganho de velocidade, pois ao atingir a frequência máxima de chaveamento do dispositivo ele simplesmente ficara em determinado nível de tensão e não conseguirá ter um tempo de decaimento e acionamento de sinal que o faca alternar entre os extremos do nível baixo e alto.
     Para conseguir mais rapidez no Raspberry tive que recorrer a diretiva  "sio_hw->gpio_set" que
consegue ser mais rápido do que a "digitalWrite" vamosaos trecho que código com um clock
de 200MHZ, cheguei a fazer overclock mas o ganho foi pouco e o risco de alguns
periféricos não funcionar corretamente também aumenta.
Para o primeiro utilizei o pino 14 e fiz o teste:

for(;;)
  {
     digitalWrite(14, HIGH);
     digitalWrite(14, LOW);
}

o que deu um sinal de 403ns em nivel baixo e 423ns em nivel alto. prosseguindo para o próximo teste fiz:

void loop()

{

int conta =0;

for(;;)

  {
       conta++;
       if(conta==6)
       {
          sio_hw->gpio_set = 1ul << (14 & 0x1fu);//acessar diretamente o pino
       }
       if(conta>12)
       {
         sio_hw->gpio_clr = 1ul << (14 & 0x1fu); // faz operação E com o pino a ser acessado
         conta =0;
       }
}
}
Assim utilizei os ciclo de maquina como base de tempo mas os menores valores foram de 6 ciclos
menor que isso o sinal não alterna mais.
com isso consegui 208ns em nível baixo e 234ns em nível alto um ganho de aproximadamente
50%.
Se tiver alguma sugestão ou duvida deixe ai nos comentários.
Até a próxima!